AGB  ·  Datenschutz  ·  Impressum  







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

Text auf Button zweizeilig darstellen

Ein Thema von SmileyInkognito · begonnen am 2. Okt 2002 · letzter Beitrag vom 3. Okt 2002
Antwort Antwort
SmileyInkognito

Registriert seit: 2. Okt 2002
1 Beiträge
 
#1

Text auf Button zweizeilig darstellen

  Alt 2. Okt 2002, 14:33
Ich möchte einen langen Text auf einem Button zweizeilig darstellen.
Wer kann mir bei der Lösung helfen?
  Mit Zitat antworten Zitat
Benutzerbild von RomanK
RomanK

Registriert seit: 7. Jun 2002
Ort: Kirchheim unter Teck
1.036 Beiträge
 
Delphi 7 Personal
 
#2
  Alt 2. Okt 2002, 14:39
Nimm einen TBitBtn und dann
Code:
bitbtn1.Caption:='Erste'+#13+#10+'Zweite';
Zweite Registrierkarte "Additional"(Englische Version) und dann erster Button!
Roman Keller
Krieg ist Gottes Art den Amerikanern Geographie beizubringen!
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#3
  Alt 2. Okt 2002, 14:45
Das könnte man z.b. so machen
Code:
  i := GetWindowLong(Button1.Handle, GWL_STYLE);
  SetWindowLong(Button1.Handle, GWL_STYLE, i or BS_MULTILINE);
  Button1.Caption := 'Line1' + #13#10 + 'Line2';
Natürlich muss i noch deklariert werden
Alexander
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#4
  Alt 2. Okt 2002, 14:47
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
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von RomanK
RomanK

Registriert seit: 7. Jun 2002
Ort: Kirchheim unter Teck
1.036 Beiträge
 
Delphi 7 Personal
 
#5
  Alt 2. Okt 2002, 14:57
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:
SetWindowLong(Button1.Handle, GWL_STYLE, GetWindowLong(Button1.Handle, GWL_STYLE) or BS_MULTILINE);
  Button1.Caption := 'Line1' + #13#10 + 'Line2';
Weil dann muss man i nicht deklarieren
Roman Keller
Krieg ist Gottes Art den Amerikanern Geographie beizubringen!
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#6
  Alt 2. Okt 2002, 15:01
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.
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von RomanK
RomanK

Registriert seit: 7. Jun 2002
Ort: Kirchheim unter Teck
1.036 Beiträge
 
Delphi 7 Personal
 
#7
  Alt 2. Okt 2002, 15:13
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;
Roman Keller
Krieg ist Gottes Art den Amerikanern Geographie beizubringen!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#8
  Alt 2. Okt 2002, 15:24
Moin Roman,

warum dann nicht gleich mit beliebig vielen Zeilen?

Code:
[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];
Jetzt könnte man noch eine automatische Grössenanpassung mit einbauen, damit's auch passt. (ist vorbereitet)
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#9
  Alt 2. Okt 2002, 16:34
naja jetzt ist aber die perfekte Lösung
Alexander
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#10
  Alt 3. Okt 2002, 18:01
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
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:37 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