![]() |
Label in Bevel zentrieren
Hi,
ich habe ein TextFeld variabler Länge welches ich in einem Bevel zentrieren möchte. Das Problem ist, dass ich das Label nicht rechnerisch zentrieren kann, da jeder Zeichensatz eine andere Pixelbreite hat. Gibts da nich irgenein Befehl ? devnull |
Re: Label in Bevel zentrieren
Hallo devnull,
setze AutoSize bei deinem Label auf FALSE und Alignment auf taCenter. Jetzt brauchst du nur noch die linke und rechte Seite des Label zum Rand des Bevel zu ziehen. ![]() |
Re: Label in Bevel zentrieren
Das ist so, dass das Bevel während der Laufzeit erstellt wird:
Bevel1 ist HauptBevel !!
Delphi-Quellcode:
Nun das TextFeld:
NewBevel := TBevel.Create(OkBottomDlg);
with NewBevel do begin Parent := OkBottomDlg; Left := 13; Top := 13; Height := 16; // Das hier soll das NewBevel 5 Pixel jeweils von links und rechts // bringen Width := Bevel1.Width - 10; end;
Delphi-Quellcode:
TextFeld := TLabel.Create(OkBottomDlg);
with TextFeld do begin Parent := OkBottomDlg; Caption := 'TEXTZEILE'; Top := 14; // DAS SOLLTE DAS TEXTFELD IM BEVEL ZENTRIEREN Left := (Bevel1.Width - 10) div 2 - length('TEXTZEILE')*6 div 2; // Schlau wie ich bin, hab ich mal Courier genommen Font.Color := clWindowText; Font.Height := -11; Font.Name := 'Courier New'; Font.Style := []; end; Das mit AutoSize geht jetzt doch nich mehr, weil erst während Laufzeit erstellt wird ?!??! devnull |
Re: Label in Bevel zentrieren
Die Werte im OI kann man doch auch zur Laufzeit noch zuweisen.
Delphi-Quellcode:
TextFeld := TLabel.Create(OkBottomDlg);
With TextFeld do Begin Parent := OkBottomDlg; AutoSize := False; {} Alignment := taCenter; {} Top := 14; {NewBevel.Top + 1} Left := 14; {NewBevel.Left + 1} Width := Bevel1.Width - 12; {NewBevel.Width - 2} Caption := 'TEXTZEILE'; Font.Color := clWindowText; Font.Height := -11; Font.Name := 'Courier New'; Font.Style := []; End; |
Re: Label in Bevel zentrieren
Nein, das geht nicht.
Wenn ich nur AutoSize eingebe, dann weis Delphi ja net, auf was es zentrieren soll. Das Problem ist, dass "Parent := OkBottomDlg;" ist und nicht "Parent := OkBottomDlg.Bevel1;". Das geht nicht !? devnull |
Re: Label in Bevel zentrieren
Es wird nicht das Label zentriert, sonder der Text im Label. :idea:
Wenn also das Label in das Bevel eingepasst wird und der Text im Label zentriert ist, ist er natürlich auch im Bevel zentriert. :warn: in meinem Bildchen da oben ist der Text ja auch nicht im Bevel zentriert. Dort ist Label1.Parent nicht Bevel1 sondern Form1; |
Re: Label in Bevel zentrieren
:cheers: @Himitsu:
Danke, jetzt klappt es so, wie es gedacht war. Habs so gemacht, wie du in deinem Beispiel. devnull |
Re: Label in Bevel zentrieren
:cheers: @Himitsu:
Danke, jetzt klappt es so, wie es gedacht war. Habs so gemacht, wie du in deinem Beispiel. devnull |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz