Version 2004
SET FORM SIZE ({Objekt; }Horizontal; Vertikal{; *})
Parameter | Typ | Beschreibung | |
Objekt | String | Objektname mit Angabe der Formulargrenzen | |
Horizontal | Lange Ganzzahl | Mit *: Horizontaler Rand (Pixel) | |
Ohne *: Breite (Pixel) | |||
Vertikal | Lange Ganzzahl | Mit *: Vertikaler Rand (Pixel) | |
Ohne *: Höhe (Pixel) | |||
* | * | Mit *: Fügt Ränder hinzu, definiert durch | |
Horizontal und Vertikal (Größe automatisch | |||
oder basierend auf Objekt, sofern übergeben | |||
Ohne Stern: Verwendet Horizontal und | |||
Vertikal als Breite und Höhe des Formulars |
Beschreibung
Mit dem Befehl SET FORM SIZE können Sie die Größe des aktuellen Formulars per Programmierung ändern. Die neue Größe wird für den aktuellen Prozess definiert; sie wird nicht mit dem Formular gespeichert. Analog zur Designumgebung können Sie diesen Befehl zum Setzen der Formulargröße folgendermaßen verwenden:
Automatisch 4D bestimmt die Größe des Formulars so, dass alle Objekte sichtbar sind und fügt evtl. einen horizontalen und vertikalen Rand hinzu.
An der Stelle, wo ein Formularobjekt gefunden wird, dem ein horizontaler und vertikaler Rand hinzugefügt werden kann.
Durch Eingeben "fester" Größen (Breite und Höhe).
Weitere Informationen zum Anpassen von Formularen finden Sie im Handbuch 4D Designmodus.
Automatische Größe
Um die Größe des Formulars automatisch zu setzen, verwenden Sie folgende Syntax:
SET FORM SIZE(Objekt; horizontal; vertikal;*)
In diesem Fall übergeben Sie in Horizontal und Vertikal die Ränder in Pixel, die Sie im Formular rechts und unten hinzufügen wollen.
Objekt-basierte Größe
Um die Größe des Formulars objektbezogen zu setzen, verwenden Sie folgende Syntax:
SET FORM SIZE(horizontal; vertikal)
In diesem Fall übergeben Sie in Horizontal und Vertikal die Ränder in Pixel, die Sie im Formular rechts und unten hinzufügen wollen.
Feste Größe
Um die Größe des Formulars mit fester Größe einzurichten, verwenden Sie folgende Syntax:
SET FORM SIZE(horizontal; vertikal)
In diesem Fall übergeben Sie in Horizontal und Vertikal die Breite und Höhe (in Pixel) des Formulars.
SET FORM SIZE verändert die Größe des Formulars, berücksichtigt aber auch die Eigenschaften zum Anpassen. Ist z.B. für ein Formular als Mindestbreite 500 Pixel angegeben und setzt der Befehl die Breite auf 400 Pixel, wird die neue Formularbreite auf 500 Pixel gesetzt.
Beachten Sie auch, dass dieser Befehl nicht die Größe des Formularfensters verändert. (Sie können ein Formular ohne Verändern der Größe und umgekehrt anpassen). Um die Größe des Formulars anzupassen, verwenden Sie den Befehl RESIZE FORM WINDOW.
Beispiel
Folgendes Beispiel zeigt, wie ein Fenster vom Typ Explorer eingerichtet wird. In der Designumgebung wird folgendes Formular erstellt:
Die Größe des Formulars ist "automatisch".
Das Fenster wird über folgenden Code angezeigt:
$ref:=Open form window([Table 1];"Form1";Standard form window; Horizontally centered; Vertically centered;*) DIALOG([Table 1];"Form1")
Sie können den rechten Teil des Fensters über das Kontrollkästchen am unteren Rand ein- bzw. ausblenden:
Die dazugehörige Objektmethode lautet:
Case of : (Form event=On load) C_BOOLEAN(b1;<>zugeklappt) C_LONGINT(margin) margin:=15 b1:=<>zugeklappt If (<>zugeklappt) SET FORM HORIZONTAL RESIZING(False) SET FORM SIZE("b1";margin;margin) Else SET FORM HORIZONTAL RESIZING(True) SET FORM SIZE("tab";margin;margin) End if : (Form event=On click) <>collapsed:=b1 If (b1) `zugeklappt 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+margin;$tf+$b+margin; Current form window) SET FORM HORIZONTAL RESIZING(False) SET FORM SIZE("b1";margin;margin) Else `aufgeklappt 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+margin;$tf+$b+margin; Current form window) SET FORM HORIZONTAL RESIZING(True) SET FORM SIZE("tab";margin;margin) End if End case
Referenz
SET FORM HORIZONTAL RESIZING, SET FORM VERTICAL RESIZING.