Zitat von
mkinzler:
Weil man im onCreate keine Eigenschaften von Objekten setzen sollte, welche auch in der
Dfm stehen, da diese dann mit denen überschrieben werden.
Naja
Aber der unterschied zwischen der
DFM und dynamischen ist, dass niemals beides gleichzeitig ist
Zitat von
jottkaerr:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
l := tLabel.Create(self);
l.Left := 300;
l.Alignment := taRightJustify;
l.Parent := Self;
l.Top := 3;
Showmessage('Left: ' + IntToStr(l.Left) + ' Width: ' + IntToStr(l.Width));
l.Caption := 'Hallo Welt';
Showmessage('Left: ' + IntToStr(l.Left) + ' Width: ' + IntToStr(l.Width));
end;
die erste Ausgabe ergibt "Left: 300 Width: 65". "65" ist also die Default-Breite eines (leeren) Labels. Wenn Du jetzt l.Caption den neuen Text zuweist, erhältst Du "Left: 316 Width: 49". Der Text ist als kürzer als die bisherige Breite, und daher wird (bei rechtsbündiger Ausrichtung) der Anfang des Labels nach rechts verschoben.
jkr
Hmmm
Ich hatte es schon mal mit
.Width := 0 versucht, aber da hatte es auch nicht hingehauen, aber jetzt funzts
Danke!
MfG
xZise