Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - returns in Delphis Format-Funktion


Geri - Di 18.08.09 17:54
Titel: returns in Delphis Format-Funktion
Hallo zusammen

Ist es möglich die Format-Funktion so anzuwenden, dass ein Text in einer TMemo-Komponente Zeilenumbrüche erhält?


Beispiel:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
Procedure FormatTest();
var s:String;
Begin
  s:='Return ein?ß;
  memo1.lines.add(Format('
Wie baut man hier \r ein',[s]));
End;


gewünschte Ausgabe:

Wie baut man hier
ein Return ein?

Habe es auch mit Memo1.text:=Format(....); versucht

Vielen Dank für Tipps

Geri


jakobwenzel - Di 18.08.09 18:01

So sollte es gehen:

Delphi-Quelltext
1:
Memo1.Text:='1. Zeile'+#13#10+'2. Zeile';                    


Delete - Di 18.08.09 18:04

Ich würde eher die Konstante sLineBreak verwenden, dafür ist sie da ;)


Lannes - Di 18.08.09 18:39

Hallo,

mit Format würde es dann so aussehen:

Delphi-Quelltext
1:
Memo.Text := Format('%1:s%0:s%2:s%0:s%2:s',[sLineBreak,'Erste Zeile','weitere Zeile']);                    


Das ergibt dann z.B. im Memo:

Quelltext
1:
2:
3:
Erste Zeile
weitere Zeile
weitere Zeile


Geri - Di 18.08.09 19:50

Hallo Lannes, Jakob und DeddyH

Vielen Dank für eure rasche Hilfe!

Die Lösung mit #13 habe ich bereits gekannt.

Die Formatanweisung dünkt mich etwas flexibler, gerade wenn man später z.B. mit Hilfe von gnugettext Strings mit Variablen extrahiert. Man muss dann einen Satz nicht in mehrer Teile unterteilen - der Übersetzer tut sich dann etwas leichter. Je nach Sprache variiert auch die Satzlänge und man möchte dann übersetzungsspezifisch Zeilenumbrüche einfügen.
Bestimmt gibt es auch noch andere Anwendungsfälle bei denen dieser Weg praktisch ist.

Besten Dank nochmals und freundliche Grüsse

Geri