Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zeilenumbruch im Button (https://www.delphipraxis.net/7835-zeilenumbruch-im-button.html)

Die Muhkuh 22. Aug 2003 14:26


Zeilenumbruch im Button
 
Kann man im Button,Label,Panel... einen Zeilenumbruch machen?

In einer Message gehts ja.

Assarbad 22. Aug 2003 14:38

Re: Zeilenumbruch im Button
 
TButton und TLabel ja, beim TPanel weiss ich nicht.

TLabel wird eh nur gezeichnet.

blackdrake 22. Aug 2003 14:38

Re: Zeilenumbruch im Button
 
Ja. Wenn du EldoS hast, kannst du das direkt machen. Sonst so:

Code:
Label1.Caption := '1ste Zeile'+#13#10+'2te Zeile';

Daniel B 22. Aug 2003 15:51

Re: Zeilenumbruch im Button
 
Beim Label siehe noch WordWarp und AutoSize.

Luckie 22. Aug 2003 15:53

Re: Zeilenumbruch im Button
 
Und beim Button vorher mit SetWindowLong BS_MULTILINE setzen.

Die Muhkuh 22. Aug 2003 19:07

Re: Zeilenumbruch im Button
 
THX, ich probs mal aus

Alexander 22. Aug 2003 19:31

Re: Zeilenumbruch im Button
 
Zitat:

Und beim Button vorher mit SetWindowLong BS_MULTILINE setzen.
Das brauch man aber gar nciht zu machen. Das macht Delphi von alleine, soweit ich weiß und zumindest unter D6 ;-)

Stanlay Hanks 22. Aug 2003 20:06

Re: Zeilenumbruch im Button
 
Also bei Panels geht das glaub ich nicht...Ich wollte das mal machen, aber ging nicht.

man liest sich, Stanlay :hi:

toms 22. Aug 2003 20:16

Re: Zeilenumbruch im Button
 
GooglePAQ:

" ist es irgendwie möglich, mehrzeilig in Panel.Caption
reinzuschreiben? So wie in einem Label."

Nicht direkt. Panels sind keine Standard Windows Controls. Die hat sich Borland ausgedacht und selbst implementiert. Das Zeichnen findet also im Delphi Quellcode statt, und zwar in TCustomPanel.Paint.

Lösung: Platziere ein Label auf dem Panel.
Alternativ leitest du eine eigen TPanel-Klasse ab und
überschreibst die Paint-Methode.

Luckie 22. Aug 2003 23:07

Re: Zeilenumbruch im Button
 
Zitat:

Zitat von alexander
Zitat:

Und beim Button vorher mit SetWindowLong BS_MULTILINE setzen.
Das brauch man aber gar nciht zu machen. Das macht Delphi von alleine, soweit ich weiß und zumindest unter D6 ;-)

Also, wenn ich das mache:
Delphi-Quellcode:
Button1.Caption := 'Zeile1'+#13#10+'Zeile2';
...ist alles in einer Zeile durch zwei senkrechten Balken getrennt.

blackdrake 22. Aug 2003 23:41

Re: Zeilenumbruch im Button
 
Dann geht es auf diese Weiße nicht. Funktionieren tut es mit allem, aber für Buttons scheint das wohl nicht gedacht zu sein... Die Balken sind ungültige Zeichen...

Möglichkeiten wären auch
#13 oder #10 oder #10#13, aber eigentlich ist es #13#10

Alexander 23. Aug 2003 09:43

Re: Zeilenumbruch im Button
 
Luckie hat doch recht du musst den Button erst auf Multiline stellen.
Das machst du so - wie Luckie es gesagt hat - mit SetWindowLong.
Um allerdings die alten Infos vom Button beizubehalten musst du sie noch mit GetWindowLong ermitteln...
Hier ein kleines Beispiel:
Delphi-Quellcode:
  SetWindowLong(Button1.Handle, GWL_STYLE,GetWindowLong(Button1.Handle, GWL_STYLE) or BS_MULTILINE);
  Button1.Caption := 'Line1' + #13#10 + 'Line2';

Nimoee 23. Aug 2003 10:05

Re: Zeilenumbruch im Button
 
Hallo Leute,

bei Tlabel funktionierts, bei Tbutton funktionierts nicht.
Das gilt für D5 und D7 und für alle Versuche die angegeben wurden.
Warum probiert ihrs nicht erst aus und stellts dann ins Forum?

nimoee

Alexander 23. Aug 2003 10:58

Re: Zeilenumbruch im Button
 
So ich habe den Code, den ich gerade gepostet habe, ausprobiert, und was soll ich sagen er funktioniert :mrgreen:
Er fügt einen Zeilenumbrüche hinzu...

Nimoee 23. Aug 2003 11:30

Re: Zeilenumbruch im Button
 
bei Tbutton nicht. Bei speedbutton gehts!
Win2000?
nimoee

Alexander 23. Aug 2003 11:32

Re: Zeilenumbruch im Button
 
Nö, bei TButton funktioniert dass auch bei mir, habe XP....

Nimoee 23. Aug 2003 11:39

Re: Zeilenumbruch im Button
 
hallo,

lieber Alexander, da ich proffesionell programmiere, ist es wichtig zu wissen wo wie was geht.
Bitte: Betriebssystem, Delphiversion
Wir können mit etwas, was mal geht und mal nicht nichts anfangen.
nimoee

Luckie 23. Aug 2003 11:53

Re: Zeilenumbruch im Button
 
Delphi-Quellcode:
SetWindowLong(Button1.Handle, GWL_STYLE,GetWindowLong(Button1.Handle, GWL_STYLE) or BS_MULTILINE);
  Button1.Caption := 'Line1' + #13#10 + 'Line2';
D6, Windows2000 geht.

Wenn du professionell programmierst, wie die behauptest, dann solltest du eventuell auch dein Ton anpassen! Dies ist nicht der Umgangston, den wir hie rin diesem Forum haben wollen.

Alexander 23. Aug 2003 11:57

Re: Zeilenumbruch im Button
 
Zitat:

hallo,

lieber Alexander, da ich proffesionell programmiere, ist es wichtig zu wissen wo wie was geht.
Bitte: Betriebssystem, Delphiversion
Wir können mit etwas, was mal geht und mal nicht nichts anfangen.
nimoee
Ich verstehe nicht ganz, was du willst....
Ich habe dir doch BEtriebssystem genannt und Delphi-Version steht doch rechts vom Text hier oder direkt im Profil...

Wenn keiner darauf achtet, hätte man sich diese Angaben echt sparen können...

Danke Luckie ;-)

ecHo89 21. Jul 2009 11:28

Re: Zeilenumbruch im Button
 
bei mir funzt es einwandfrei mit SetWindowLong, danke

shmia 21. Jul 2009 13:44

Re: Zeilenumbruch im Button
 
Liste der Anhänge anzeigen (Anzahl: 1)
Es gibt da übrigens einen IDE Experten, mit dem man schon zur Entwicklungszeit ganz bequem die Zeilenumbrüche einfügen kann.
Im Objektinspektor erscheint dann neben der Caption ein kleiner Button mit 3 Punkten;
klickt man drauf, geht ein Editorfenster auf.

himitsu 21. Jul 2009 14:12

Re: Zeilenumbruch im Button
 
Zitat:

Zitat von shmia
Es gibt da übrigens einen IDE Experten, mit dem man schon zur Entwicklungszeit ganz bequem die Zeilenumbrüche einfügen kann.

ich hab das bisher via Copy&Paste oder direkt in der DFM gemacht,
aber es muß natürlich auch das Control unterstützen ... es bringt nix, wenn man im Text einen Teilenumbruch hat, aber dieser nicht vom Control ausgewertet wird.

so daß prakisch hier noch das SetWindowLong noch nötig ist.

Bernhard Geyer 21. Jul 2009 14:15

Re: Zeilenumbruch im Button
 
Zitat:

Zitat von Alexander
... und Delphi-Version steht doch rechts vom Text hier oder direkt im Profil...

Wenn keiner darauf achtet, hätte man sich diese Angaben echt sparen können...

Viele User haben mehere Delphi-Versionen im Einsatz so das diese Angabe im Profil nur die Hauptversion (oder neueste Vesion) darstellt. Und auch nicht alle User haben überhaupt diese Angabe gepflegt.

shmia 21. Jul 2009 14:18

Re: Zeilenumbruch im Button
 
Zitat:

Zitat von himitsu
aber es muß natürlich auch das Control unterstützen

Das passt schon; der Property Editor ist nur für *.Hint, TBitBtn.Caption, TSpeedButton.Caption, TLabel.Caption und TStaticText.Caption registriert.
Es ist übrigens kein Experte wie ich oben geschrieben sondern ein Property Editor.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:38 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