![]() |
Text auf Button zweizeilig darstellen
Ich möchte einen langen Text auf einem Button zweizeilig darstellen.
Wer kann mir bei der Lösung helfen? |
Nimm einen TBitBtn und dann
Code:
Zweite Registrierkarte "Additional"(Englische Version) und dann erster Button!
bitbtn1.Caption:='Erste'+#13+#10+'Zweite';
|
Das könnte man z.b. so machen
Code:
Natürlich muss i noch deklariert werden
i := GetWindowLong(Button1.Handle, GWL_STYLE);
SetWindowLong(Button1.Handle, GWL_STYLE, i or BS_MULTILINE); Button1.Caption := 'Line1' + #13#10 + 'Line2'; |
ich sollte vielleicht auch mal auf Absenden klicken und nicht noch mit dem Posten warten.....
Aber meine Version müsste auch mit einem normalen Button gehen :mrgreen: |
Tut sie!
Aber meine ist wohl etwas einfacher zu verstehen!! Man müss ja nicht mit dem Panzer auf Spatzen schießen! Und wenn wir schon dabei sind dann mach es besser so:
Code:
Weil dann muss man i nicht deklarieren :wink:
SetWindowLong(Button1.Handle, GWL_STYLE, GetWindowLong(Button1.Handle, GWL_STYLE) or BS_MULTILINE);
Button1.Caption := 'Line1' + #13#10 + 'Line2'; |
dann ist es aber noch schwerer zu verstehen, da unübersichtiger. Man kann sich ja ne Funktion daraus machen (lohnt zwar fast gar nicht, aber nun ja), wenn man es öfter braucht.
|
Da man es in der Tat öfters brauchen kann, hab ich mal eine Funktion geschrieben:
Code:
function TwoLines(but:TButton;First,Second:String):Boolean;
begin if SetWindowLong(but.Handle, GWL_STYLE, GetWindowLong(but.Handle, GWL_STYLE) or BS_MULTILINE)> 0 then begin but.Caption :=First + #13#10 + Second; result :=True; end else result := false; end; |
Moin Roman,
warum dann nicht gleich mit beliebig vielen Zeilen?
Code:
Jetzt könnte man noch eine automatische Grössenanpassung mit einbauen, damit's auch passt. (ist vorbereitet)
[b]function[/b] SetMultiLineCaption([b]const[/b] p_Button : TButton;[b]const[/b] p_sCaption : [b]String[/b];[b]const[/b] p_fAutoAdjust : Boolean = false) : Boolean;
[b]begin[/b] Result := false; [b]if[/b] SetWindowLong(p_Button.Handle, GWL_STYLE, GetWindowLong(p_Button.Handle, GWL_STYLE) [b]or[/b] BS_MULTILINE)> 0 [b]then[/b] [b]begin[/b] p_Button.Caption := p_sCaption; Result := true; [b]end[/b]; [b]end[/b]; [b]procedure[/b] TForm1.Button1Click(Sender: TObject); [b]begin[/b] SetMultiLineCaption(self.Button1,'Und'#13#10'noch'#13#10'mehr'#13#10'Zeilen',true); [b]end[/b]; |
naja jetzt ist aber die perfekte Lösung :mrgreen:
|
Hi SmileyInkognito,
Neuen Beitrag hinzufügen, bezieht sich nur auf die Library. Normale Fragen bitte auch in den normalen Sparten. Dort bitte nur was schreiben, wenn ein Eintrag in die Library aufgenommen werden soll. Ab nach OP. Grüsse, Daniel :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:23 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