versión 2004
SET FORM SIZE ({objeto; }horizontal; vertical{; *})
Parámetro | Tipo | Descripción | |
objeto | Cadena | Nombre del objeto que indica los límites del formulario | |
horizontal | Entero largo | Si se pasa *: margen horizontal (píxeles) | |
Si se omite *: ancho (píxeles) | |||
vertical | Entero largo | Si se pasa *: margen vertical (píxeles) | |
Si se omite *: altura (píxeles) | |||
* | * | 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 |
Descripción
El comando SET FORM 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.
Tamaño automático
Si quiere que el tamaño del formulario se defina de manera automática, debe utilizar la siguiente sintaxis:
SET FORM 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:
SET FORM 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.
Tamaño fijo
Si quiere tener un tamaño de formulario fijo, debe utilizar la siguiente sintaxis:
SET FORM SIZE(horizontal; vertical)
En este caso, debe pasar el ancho y la altura (en píxeles) del formulario en horizontal y vertical.
El comando SET FORM 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) C_BOOLEAN(b1;<>contraido) C_LONGINT(margen) margen:=15 b1:=<>contraido If (<>contraido) SET FORM HORIZONTAL RESIZING(False) SET FORM SIZE("b1";margen;margen) Else SET FORM HORIZONTAL RESIZING(True) SET FORM SIZE("tab";margen;margen) End if : (Form event=On clicked) <>contraido:=b1 If (b1) `contraido GET OBJECT RECT(*;"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) SET FORM HORIZONTAL RESIZING(False) SET FORM SIZE("b1";margen;margen) Else `expandido GET OBJECT RECT(*;"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) SET FORM HORIZONTAL RESIZING(True) SET FORM SIZE("tab";margen;margen) End if End case
Ver también
SET FORM HORIZONTAL RESIZING, SET FORM VERTICAL RESIZING.