AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TLabel + taRightJustify = katastrophe?

Ein Thema von xZise · begonnen am 24. Okt 2007 · letzter Beitrag vom 24. Okt 2007
Antwort Antwort
Seite 3 von 3     123   
jottkaerr

Registriert seit: 2. Jul 2007
Ort: Tuttlingen
81 Beiträge
 
Delphi 10.1 Berlin Professional
 
#21

Re: TLabel + taRightJustify = katastrophe?

  Alt 24. Okt 2007, 12:38
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
Jürgen Krämer
Sometimes I think the surest sign that intelligent life exists elsewhere
in the universe is that none of it has tried to contact us. (Calvin)
  Mit Zitat antworten Zitat
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, 12: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
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:03 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