Zeilenumbruch in einer Button1.Caption

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Hercules
Beiträge: 104
Registriert: Mi 2. Jun 2010, 17:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Zeilenumbruch in einer Button1.Caption

Beitrag von Hercules »

Schönen guten Tag und Hallo an alle!!
Wenn ich in einer Button1.Caption einen Zeilenumbruch machen will,
dann funktioniert das mit Delphi prima. Lazarus macht da leider nicht mit.
Weiß jemand Rat?
Ich wünsche allen noch einen schönen und sonnigen Tag.
Mit freundlichen Grüßen, Hercules.
Dateianhänge
Bild.gif

Eclipticon
Beiträge: 292
Registriert: Sa 5. Feb 2011, 20:38
OS, Lazarus, FPC: Windows XP VirtualBox (FPC 2.6.4, Laz 1.2.4)
CPU-Target: 32Bit
Wohnort: Wien

Re: Zeilenumbruch in einer Button1.Caption

Beitrag von Eclipticon »

Ich kann zwar bei Deiner Frage momentan nicht weiterhelfen, aber Du greifst hier aus der Deklaration eines Objekts (TForm1) schon auf eine konkrete Instanz dieses Objekts (Form1) zu ... ist das klug?

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Zeilenumbruch in einer Button1.Caption

Beitrag von Socke »

Eclipticon hat geschrieben:ist das klug?

Nein, Besser wäre Self.Button1.Caption := 'abvc und so weiter...';

Zum eigentlichen Thema: ich weiß nicht, woran es liegt, weil es bei mir einwandfrei funktioniert; Vielleicht versuchst du es mal damit, dass du deine Variable CrLf durch die Konstante "LineEnding" (Unit System -- ist also immer vorhanden) ersetzt. Ansonsten wären weitere Informationen zu den folgenden Punkten hilfreich:
  • Lazarus-Version
  • FPC-Version
  • Betriebssystem(-Version)
  • WidgetSet (Win32, GTK, GTK2, QT, Cocoa, usw.)
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Zeilenumbruch in einer Button1.Caption

Beitrag von Maik81ftl »

Ähmmm SChon mal an die Überlegung von Steuerzeichen gedacht:?:

vetrsuch mal dein glück mit

Code: Alles auswählen

Form.Button1.Caption:= 'Aktion' + #13 + 'anlegen';


ist grad aus der kalten geschrieben, hab zwar Larazus zur hand, aber im mom net den nerf, was zu machen.

ScheißUmzug.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Zeilenumbruch in einer Button1.Caption

Beitrag von Socke »

Maik81ftl hat geschrieben:Ähmmm SChon mal an die Überlegung von Steuerzeichen gedacht:?:

Schonmal daran gedacht, seinen Screenshot, der einen Quelltextausschnitt enthält, zu betrachten? Hab ich zuerst auch nicht gemacht, aber dann doch gesehen, dass Hercules daran gedacht hat.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Hercules
Beiträge: 104
Registriert: Mi 2. Jun 2010, 17:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Zeilenumbruch in einer Button1.Caption

Beitrag von Hercules »

Hallo und vielen Dank für Eure schnelle Reaktion. :)

Hallo Socke: Wie muß ich denn die Konstante LineEnding einsetzten?
Ich habe gesagt:

Code: Alles auswählen

procedure TForm1.FormCreate(Sender: TObject);
const LineEnding=#13#10;
begin
  Form1.Button1.Caption:='Aktion' + LineEnding + 'anlegen';
end;


Der Combiler meckert zwar nicht, aber es ist keine Wirkung da.
Liegt sicher daran, daß ich das nicht richtig anwende.
Ich habe das auch schon mit

Code: Alles auswählen

Self.Button1.Caption:='Aktion' + LineEnding + 'anlegen';


versucht, aber auch ohne Erfolg. :(

Ich habe mir gestern mal Lazarus Version 0.9.30 runtergeladen.
Vielleicht bringt das was. :?:
Zuletzt geändert von Lori am Do 19. Mai 2011, 22:14, insgesamt 1-mal geändert.
Grund: Highlighter

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2640
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Zeilenumbruch in einer Button1.Caption

Beitrag von m.fuchs »

Hercules hat geschrieben:Hallo Socke: Wie muß ich denn die Konstante LineEnding einsetzten?

Code: Alles auswählen

const LineEnding=#13#10;


Das ist nicht nötig, LineEnding ist bereits definiert, du musst sie nur benutzen.

ABER: Ich bekomme trotzdem das gewünschte nicht hin.
@Socke: Kannst du mal deinen Quellcode posten? Zumindest hier mit Lazarus 0.9.30 unter Windows geht es jedenfalls so nicht:

Code: Alles auswählen

Button1.Caption := 'Hallo' + LineEnding + 'Test';

Aber vielleicht bin ich auch zu doof.

mfg
Micha
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Hercules
Beiträge: 104
Registriert: Mi 2. Jun 2010, 17:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Zeilenumbruch in einer Button1.Caption

Beitrag von Hercules »

Hallo Micha, ich weiß nicht, ob ich mich angesprochen fühlen soll,
oder Socke. :?:
Den Quellcode findest Du im Anhang,
ich hoffe, daß man den lesen kann.
MfG Hercules.
Dateianhänge
Bild2.gif

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2640
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Zeilenumbruch in einer Button1.Caption

Beitrag von m.fuchs »

Nein, in dem Fall war schon Socke gemeint. Er hat es ja geschafft dass es geht.

Übrigens: kennst du schon die Highlighter-Funktion? Oben einfach da wo "Highlighter" steht die gewünschte Programmiersprache auswählen und dann kannst du Quellcode hier direkt einfügen.
Ist besser als ein Bildanhang.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Zeilenumbruch in einer Button1.Caption

Beitrag von Socke »

Man nehme also ein leeres Lazarus-Projekt des Typs "Anwendung" bzw. Application und platziere dort eine Schaltfläche und vergrößere sie so, dass der gewünschte Text problemlos auf mehrere Zeilen verteilt werden könnte:

Code: Alles auswählen

procedure TForm1.FormCreate(Sender: TObject);
begin
  Self.Button1.Caption := 'Erste Zeile' + LineEnding + 'Zweite Zeile';
end;

Wie schon gesagt: die Konstante LineEnding ist bereits in der Unit System definiert. Die wird in jeder anderen Unit automatisch eingebunden. Du musst die Konstante also nicht selbst noch einmal definieren.

Bisher steht es hier zwei zu eins. Ich verwende hier Lazarus aus SVN und Linux mit GTK 2; ich könnte mir also vorstellen, dass es ein Fehler in Lazarus ist, der nur unter Windows zu Tragen kommt, da es unter Delphi anscheinend funktioniert.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Lannes
Beiträge: 13
Registriert: Mo 16. Nov 2009, 22:14
OS, Lazarus, FPC: Windows XP, D3..D2010, Lazarus
CPU-Target: 32 Bit

Re: Zeilenumbruch in einer Button1.Caption

Beitrag von Lannes »

Socke hat geschrieben:... da es unter Delphi anscheinend funktioniert.


das funktioniert auch in Delphi 3 und 2010(die anderen habe ich nicht getestet) nicht mit TButton, funktionieren tut es mit dem TSpeedButton.

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Zeilenumbruch in einer Button1.Caption

Beitrag von MAC »

Ich würde mal ganz stark vermuten das es nicht ein fehler von Lazarus unter Windows ist.
Es ist ganz offensichtlich ein Fehler von Windows...

getestet unter Win7 Lazarus 0.9.31 30229 2.4.3

Code: Alles auswählen

// Neu-->Anwendung
// TButton :Button1
// TSpeedButton:SpeedButton1
// TMemo: Memo1
 
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Caption:= Memo1.Caption;
end;
 
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
SpeedButton1.Caption:= Memo1.Caption;
end;


--> Ergebnis : Button funktioniert nicht - SpeedButton klappt.

Code: Alles auswählen

Signatur := nil;

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Zeilenumbruch in einer Button1.Caption

Beitrag von Maik81ftl »

Socke hat geschrieben:
Maik81ftl hat geschrieben:Ähmmm SChon mal an die Überlegung von Steuerzeichen gedacht:?:

Schonmal daran gedacht, seinen Screenshot, der einen Quelltextausschnitt enthält, zu betrachten? Hab ich zuerst auch nicht gemacht, aber dann doch gesehen, dass Hercules daran gedacht hat.


hab ich beachtet. kommst mir nur arg komisch vor, das er mit der konst probleme hat. ich verwende die bei Meldungen und das reicht mir mit dem Zeilenumbruch.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Eclipticon
Beiträge: 292
Registriert: Sa 5. Feb 2011, 20:38
OS, Lazarus, FPC: Windows XP VirtualBox (FPC 2.6.4, Laz 1.2.4)
CPU-Target: 32Bit
Wohnort: Wien

Re: Zeilenumbruch in einer Button1.Caption

Beitrag von Eclipticon »

Maik81ftl hat geschrieben:ich verwende die bei Meldungen und das reicht mir mit dem Zeilenumbruch.


Auch wenn's vielleicht funktioniert ... solltest Du nicht lieber den auf dem Betriebssystem deines Vertrauens ueblichen EOL-Marker LF verwenden?

Lannes
Beiträge: 13
Registriert: Mo 16. Nov 2009, 22:14
OS, Lazarus, FPC: Windows XP, D3..D2010, Lazarus
CPU-Target: 32 Bit

Re: Zeilenumbruch in einer Button1.Caption

Beitrag von Lannes »

MAC hat geschrieben:Es ist ganz offensichtlich ein Fehler von Windows...

Eine nicht vorgesehene Funktionalität ist kein Fehler :wink:
(Nichts ist nicht Nichts) and (''<>nil)and(Pointer('')=nil)and(@('')<>nil)

Antworten