Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#22

Re: TLabel + taRightJustify = katastrophe?

  Alt 24. Okt 2007, 13:42
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
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat