Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TLabel.AutoSize spinnt (https://www.delphipraxis.net/85130-tlabel-autosize-spinnt.html)

berens 26. Jan 2007 12:14


TLabel.AutoSize spinnt
 
Hallo!

Ich habe das Problem, dass wenn ich von einer Instanz von TLabel die Eigenschaft Caption ändere (wobei AutoSize = True), die Höhe falsch berechnet wird.

Dies äußert sich in sofern, dass bei dem Text oben und unten eine Menge Platz ist (ca. erforderliche Höhe * 3) mit tlCenter oder nur unten eine Menge Platz bei tlTop.

Der Text kann mehrere Zeilen haben, und ist normalerweise mit Align=alTop, der Text ist Linksbündig und Layout ist tlTop oder tlCenter (was allerdings keinen Unterschied bei dem Fehler macht).

Folgendes habe ich bereits probiert, hilft aber nicht:

Delphi-Quellcode:
with Label1 do begin
    Align := alNone;
    Anchors := [];
    AlignWithMargins := False;

    Self.FlblText.AutoSize := true;
    Self.FlblText.AutoSize := false;
    Self.FlblText.AutoSize := true;
    Align := alTop;

    Invalidate;
    Repaint;
    Refresh;
    update;
end;
Wie bringe ich dem das bei?

berens 26. Jan 2007 15:26

Re: TLabel.AutoSize spinnt
 
Mit

Delphi-Quellcode:
    AutoSize := True;
    WordWrap := False;
klappt es.

Siehe Delphi-Hilfe "TCustomLabel.AdjustBounds Methode".

berens 27. Jan 2007 18:21

Re: TLabel.AutoSize spinnt
 
Öh, tja, nun wie ich selbst lesen kann klappt es zwar mit Einzeiligen Texten, bei den mehrzeiligen Texten besteht das Problem aber weiterhin. *aufreg*

Irgendwie ansatzweise irgendwer einen Tipp für mich?

Ich brauch ne feste Breite mit Wordwrap und der soll die Höhe korrekt berechnen. Das klappt nicht!

Edit: Ich stelle gerade fest (Keyword: Wordwrap), dass mein Problem hier anknüpft: http://www.delphipraxis.net/internal...light=wordwarp

berens 1. Feb 2007 14:45

Re: TLabel.AutoSize spinnt
 
Nur zur Info: Mit dem TLMDLaybel von LMD-Tools konnte ich das Problem mit nachträglichenm Befehl CorrectBounds lösen.

berens 15. Mär 2007 18:03

Re: TLabel.AutoSize spinnt
 
Jetzt hab ich das Problem mit einem Panel / TLMDPanelFill. Leider unterstützt dieses den Befehl CorrectBounds nicht. Wenn man das Fenster jedoch in der Größe ändert / Maximiert ist alles korrekt. Wie kann ich diesen "Maximieren" Befehl, bzw. die "Größe ändern" Nachricht nachstellen?

Edit: Problem ist wohl auch (speziell) die Panels, die in den Panels drinnen sind, geben bei Height einen falschen Wert an! Das Panel ist erwiesenermaßen (z.b. auch mit Clientheight) nur 20px hoch, wird aber mit 50px angegeben. Nach dem besagten vergrößern/verkleinern des Fensters ändert sich dieser Wert...


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz