FORM SET SIZE
FORM SET SIZE ( {objeto ;} horizontal ; vertical {; *} )
Parámetro | Tipo | Descripción | |
---|---|---|---|
objeto | Text | → | Nombre del objeto que indica los límites del formulario |
horizontal | Integer | → | Si se pasa *: margen horizontal (píxeles) Si se omite *: ancho (píxeles) |
vertical | Integer | → | Si se pasa *: margen vertical (píxeles) Si se omite *: altura (píxeles) |
* | Operador | → | • Si se pasa: añadir las márgenes definidas por los parámetros horizontal y vertical (tamaño automático o basado en un objeto, si se pasa un objeto) • Si se omite: utilizar horizontal y vertical como ancho y altura del formulario |
Este comando no es hilo seguro, no puede ser utilizado en código apropiativo.
Descripción
El comando FORM SET SIZE le permite cambiar el tamaño del formulario actual por programación. El nuevo tamaño es definido por el proceso actual; no está almacenado con el formulario.
Como en el entorno Diseño, puede utilizar este comando para definir el tamaño del formulario de tres maneras:
- Automáticamente, 4D determina el tamaño del formulario basado en la noción de que todos los objetos deben ser visibles y eventualmente añadiendo una margen horizontal y vertical,
- Basado en la ubicación de un objeto del formulario, al cual se añaden eventualmente una margen horizontal y una margen vertical,
- Introduciendo tamaños “fijos” (ancho y altura).
Para mayor información sobre los posibles redimensionamientos de los formularios, consulte el Manual de Diseño de 4D.
- Tamaño automático Si quiere que el tamaño del formulario se defina de manera automática, debe utilizar la siguiente sintaxis:
FORM SET SIZE(horizontal;vertical;*)
En este caso, debe pasar las márgenes (en píxeles) que quiere añadir a la derecha y en la parte inferior del formulario en horizontal and vertical.
- Tamaño basado en un objeto Si quiere que el tamaño del formulario esté basado en un objeto, debe utilizar la siguiente sintaxis:
FORM SET SIZE(objeto;horizontal;vertical)
En este caso, debe pasar las márgenes (en píxeles) que quiere añadir a la derecha y en la parte inferior del objeto en horizontal y vertical. No puede pasar el parámetro *.
- Tamaño fijo Si quiere tener un tamaño de formulario fijo, debe utilizar la siguiente sintaxis:
FORM SET SIZE(horizontal;vertical)
En este caso, debe pasar el ancho y la altura (en píxeles) del formulario en horizontal y vertical.
El comando FORM SET SIZE cambia el tamaño del formulario, pero también tiene en cuenta las propiedades de redimensionamiento. Por ejemplo, si el ancho mínimo de un formulario es 500 píxeles y si el comando define un ancho de 400 píxeles, el nuevo ancho del formulario será de 500 píxeles.
Igualmente note que este comando no cambia el tamaño de la ventana del formulario (puede redimensionar un formulario sin cambiar el tamaño de la ventana y viceversa). Para cambiar el tamaño de la ventana del formulario, consulte el comando RESIZE FORM WINDOW.
Ejemplo
El siguiente ejemplo muestra cómo colocar una ventana de tipo Explorador. El siguiente formulario se crea en el entorno Diseño:
El tamaño del formulario es “automático”.
La ventana se visualiza utilizando el siguiente código:
$ref:=Open form window([Tabla 1];"Form1";Standard form window;Horizontally centered;Vertically centered;*)
DIALOG([Tabla 1];"Form1")
CLOSE WINDOW
La parte de la derecha de la ventana puede mostrarse u ocultarse haciendo clic en la opción agrandar/reducir:
El método de objeto asociado con este botón es el siguiente:
Case of
:(FORM Event=On Load)
var b1;<>contraido : Boolean
var margen : Integer
margen:=15
b1:=<>contraido
If(<>contraido)
FORM SET HORIZONTAL RESIZING(False)
FORM SET SIZE("b1";margen;margen)
Else
FORM SET HORIZONTAL RESIZING(True)
FORM SET SIZE("tab";margen;margen)
End if
:(FORM Event=On Clicked)
<>contraido:=b1
If(b1)
//contraido
OBJECT GET COORDINATES(*;"b1";$l;$t;$r;$b)
GET WINDOW RECT($lf;$tf;$rf;$bf;Current form window)
SET WINDOW RECT($lf;$tf;$lf+$r+margen;$tf+$b+margen;Current form window)
FORM SET HORIZONTAL RESIZING(False)
FORM SET SIZE("b1";margen;margen)
Else
//expandido
OBJECT GET COORDINATES(*;"tab";$l;$t;$r;$b)
GET WINDOW RECT($lf;$tf;$rf;$bf;Current form window)
SET WINDOW RECT($lf;$tf;$lf+$r+margen;$tf+$b+margen;Current form window)
FORM SET HORIZONTAL RESIZING(True)
FORM SET SIZE("tab";margen;margen)
End if
End case