Label Länge in Create falsch

Rund um die LCL und andere Komponenten
Antworten
Mathias
Beiträge: 5084
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Label Länge in Create falsch

Beitrag von Mathias »

Beim Create des Forms, ist Label.Width 65, obwohl Width viel kürzer ist.
Beim späteren Klicken auf den Button, ist die Länge korrekt.
Wieso ?

Code: Alles auswählen

var
  l: TLabel;

procedure TForm1.FormCreate(Sender: TObject);
begin
  l := TLabel.Create(Self);
  l.Parent := Self;
  l.Caption := '1';             // Sehr kleines Label
  Caption := l.Width.ToString;  // Width = 65
end; 

procedure TForm1.Button1Click(Sender: TObject);
begin
  l.Caption := l.Caption + 'abcabc';
  Caption := l.Width.ToString;  // Länge ist korrekt
end; 
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

wennerer
Beiträge: 220
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 19.3 Cinnamon, Lazarus Stable 2.0.10 r63673M FPC 3.2.0
CPU-Target: x86_64-linux-gtk2

Re: Label Länge in Create falsch

Beitrag von wennerer »

Hallo Mathias,
ist zwar nicht die Antwort auf deine Frage aber wenn du es in die Show Methode packst gehts.
Vielleicht muss Create komplett durchlaufen sein damit es passt?

Code: Alles auswählen

procedure TForm1.FormShow(Sender: TObject);
begin
 Caption := l.Width.ToString;  // Länge ist korrekt
end;  
Viele Grüße
Bernd

Antworten