Verweis: | Align AutoSize |
Uses: | StdCtrls |
Eingabe: | Ganzzahl:Integer |
Ausgabe: | Begrenzung in Bildpunkten |
Funktion: | Minimal- und Maximalbegrenzung der Komponente der Höhe und Breite. |
Beispiel 1
Vorbereitung: Erstellen sie eine IDE Anwendung und ziehen Sie drei TLabel auf die Form. Wenn sie nicht wissen wie man mehrere Komponenten des gleichen Typs auf die Form bringt, dann schauen sie bitte hier. Erstellen Sie zusätzlich ein OnActivate-Ereignis.
procedure TForm1.FormActivate(Sender: TObject);
begin
//Abmaße des Fensters
Form1.Width := 400;
Form1.Height := 300;
//Linke Seite der Label auf 0
Label1.Left := 0;
Label2.Left := 0;
Label3.Left := 0;
//Label zur Anschauung einfärben
Label1.Color := clAqua;
Label2.Color := clFuchsia;
Label3.Color := clLime;
//Label Abmaße
Label1.Align := alTop;
Label1.Constraints.MaxWidth := 200;
Label2.Align := alRight;
Label2.Constraints.MinWidth := 180;
Label3.Top := 100;
Label3.Constraints.MinWidth := 150;
Label3.Constraints.MinHeight := 150;
Label3.AutoSize := True;
end;
In unserem Beispiel legen wir zunächst die Maße des Fensters mit 400×300 Bildpunkte fest. Danach schalten wir zunächst alle Label mit Left:=0 zum Fenster linksbündig. Das Einfärben der Label mit color erhöht die Aussagekraft des Programms.

Label1
Nun kommen wir zu dem Thema Constraints. Normalerweise erstellt die Eigenschaft Align:=alTop ein Label mit voller breite des Clients (hier das Fanster). Dies wurde jedoch durch Constraints.MaxWidth := 200 verhindert.
Label2
Die Eigenschaft Align:=alLeft lässt das Label 2 rechtsbündig abschließen. Dadurch wir die Einstellung Left:=0 ignoriert. Durch die Einstellung von Constraints.MinWidth := 180 sagen wir, dass wir eine Mindestbreite von 180 Pixeln haben. Dabei interessiert es nicht ob wir das Label2 vorhe auf Autosize:=True gestellt haben. Solange der Text von Label2 kleiner als 180 Pixel ist, tritt AutoSize nicht in Aktion. Des weiteren werden Sie sich wohl wundern, dass der pinkfarbene Bereich nicht bis nach oben zum Fensterrand geht. Obwohl das Label1 begrenzt ist, scheint die Eigenschaft Align:=alTop doch den gesamten oberen Bereich des Fenster in Anspruch zu nehmen. Wenn auch hier nur auf Mausklicks im Label1 (Aquafarbe) reagiert wird.
Label3
Bei Label3 haben wir die Mindesthöhe und -breite auf 150 gesetzt. Selbst wenn wir dann im Anschluss AutoSize auf true setzen bleiben die Einstellungen von Constraints erhalten. Er wenn die Größe des Textes die 150×150 Bildpunkte übersteigt wird AutoSize aktiv. So lange wir dies nicht mit der Constraints-Eigenschaft MaxWidth oder MaxHeight beschränken.
Objektexplorer-Einstellungen
Alle Angaben im Quelltext, können Sie auch bequem über den Objektinspektor eingeben. Damit entfällt der Quelltext.

Um das untergeordnete Menü zu erreichen, klicken Sie auf den Pfeil im blauen Rahmen.

Bei den 4 Abmaßen sind ganze Werte zwischen 0 und 2147483647 (Integer) erlaubt. Wenn Sie z.B. für MinWidth einen höheren Wert wie für MaxWidth angeben, dann wird Ihr Eingegebener Wert auch für MaxWidth übernommen. Das Gleiche gilt auch für MaxHeight, sowie in Richtung Minimum. Der Wert 0 ist default (Standard) und schaltet die Begrenzung aus.
Automatische Werteübernahme
Die nächste Funktion könnte für Sie unter der Prämisse sinnvoll sein, wenn Sie ein Label haben ohne dies auf AutoSize zu stellen. Hiermit haben Sie die Möglichkeit das Label von den Abmaßen auf Ihre WuDie nächste Funktion könnte für Sie unter der Prämisse sinnvoll sein, wenn Sie ein Label haben ohne dies auf AutoSize zu stellen. Hiermit haben Sie die Möglichkeit das Label von den Abmaßen auf Ihre Wunschgröße im Entwurf einzustellen. Wenn Sie nun wollen das Ihr Label auf keinen Fall größer wird dann, klicken Sie mit der rechten Maustaste auf den Eintrag Constraints im Objektexplorer.

Hier können Sie nun die maximalen Werte von Ihrem Label übertragen. Nach der Aktion ist width=MaxWidth und height=MaxHeight. Wenn Sie nun AutoSize auf True setzen, dann wird die Größe Ihres Labels nicht überschritten. Es handelt sich hierbei um eine Eingabehilfe, so brauchen Sie die Zahlenwerte nicht mühselig übertragen.