Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi memo.text:='text1'+#10#13+'text2'; klappt nicht. (https://www.delphipraxis.net/59539-memo-text-%3Dtext1-10-13-text2%3B-klappt-nicht.html)

3_of_8 23. Dez 2005 21:28


memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Hallo!
Ich rufe folgenden Code auf:

Delphi-Quellcode:
memo.text:='text1'+#10#13+'text2';
Das Problem ist, dass #10#13 und auch #10 oder #13 einzeln werden nicht als Zeilenumbrüche erkannt, sondern der macht mir einfach nur ein schwarzes kleines Rechteck hin.

Khabarakh 23. Dez 2005 21:31

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
CRLF ist #13#10 :wink: .

PierreB 23. Dez 2005 21:33

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Wie wärs mit
Delphi-Quellcode:
memo.lines.add('text1');
memo.lines.add('text2');
Oder was willst du machen ? :gruebel:

Chrissi91 23. Dez 2005 21:34

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Beim Richedit gehts auch so, aber fragt mich nicht, warum :lol:

Delphi-Quellcode:
richedit.text:='text1'+#10+'text2';

3_of_8 23. Dez 2005 21:37

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Ich dachte immer, crlf ist #10#13?

Und mit .add gehts ned, weil mein Text eine konstante ist.

EDIT: Mit #13#10 gehts, danke.

Matze 23. Dez 2005 21:39

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Zitat:

Zitat von 3_of_8
Ich dachte immer, crlf ist #10#13?

Nein, es ist definitiv #13#10.

Luckie 23. Dez 2005 21:44

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Zitat:

Zitat von 3_of_8
Und mit .add gehts ned, weil mein Text eine konstante ist.

Dann müssen sie im D7 Kompiler was kaputt gemacht haben bei Borland, weil mit D6 geht es noch:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  TEXT1 = 'Text1';
  TEXT2 = 'Text2';
begin
  Memo1.Lines.Add(TEXT1);
  Memo1.Lines.Add(TEXT2);
end;

Matze 23. Dez 2005 21:45

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Zitat:

Zitat von Luckie
Dann müssen sie im D7 Kompiler was kaputt gemacht haben bei Borland, weil mit D6 geht es noch [...]

Das geht auch mit allen Folgeversionen.

Luckie 23. Dez 2005 21:47

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Zitat:

Zitat von Matze
Zitat:

Zitat von Luckie
Dann müssen sie im D7 Kompiler was kaputt gemacht haben bei Borland, weil mit D6 geht es noch [...]

Das geht auch mit allen Folgeversionen.

;) Hätte mich auch gewundert, wenn nicht. :mrgreen:

3_of_8 23. Dez 2005 21:50

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Nein, das ist so:

Delphi-Quellcode:
TEXT='blablabla'+#10#13+
     'blablabla';
Wie soll ich da add aufrufen?

fkerber 23. Dez 2005 21:51

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Hi!

Zitat:

Zitat von 3_of_8
Nein, das ist so:

Delphi-Quellcode:
TEXT='blablabla'+#10#13+
     'blablabla';
Wie soll ich da add aufrufen?

Delphi-Quellcode:
Memo1.Lines.Add('blablabla');
Memo1.Lines.Add('blablabla');

Ciao Frederic

PierreB 23. Dez 2005 21:52

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Ähm warum schreibst du die beiden Texte nicht ganz einfach in zwei Konstanten, so wie in Luckie's Beispiel geschrieben ? :gruebel:

3_of_8 23. Dez 2005 21:53

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Weil es insgesamt eher 10 sind.

Delphi-Quellcode:
TEXT_LINE1='blablabla';
TEXT_LINE2='blablabla';
TEXT_LINE3='blablabla';
//...
TEXT_LINE10='blablabla';
Wäre etwas unhandlich, oder? Aber wiegesagt, so geht es jetzt ja:

Delphi-Quellcode:
TEXT='blablabla'+#13#10+'blablabla';

PierreB 23. Dez 2005 21:59

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Das wäre noch ne Möglichkeit, aber eigentlich ist es ja egal wie du es machst.
Delphi-Quellcode:
var
  Data : array [1..10] of String;

procedure TForm1.FormCreate(Sender: TObject);
begin
Data[1]:='bla';
Data[2]:='blu';
Data[3]:='bli';
//etc.
end;

procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer;
begin
for i := 0 to 9 do
memo1.lines.add(Data[i]);
end;

3_of_8 23. Dez 2005 22:18

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Dann isses aber keine KONSTANTE mehr. :]

PierreB 23. Dez 2005 22:20

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Zitat:

Zitat von 3_of_8
Dann isses aber keine KONSTANTE mehr. :]

Wie gesagt, war ja nur ein Vorschlag, mach doch was du willst. :P

3_of_8 23. Dez 2005 22:22

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Danke. ;)

Luckie 23. Dez 2005 22:23

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Zitat:

Zitat von 3_of_8
Nein, das ist so:

Delphi-Quellcode:
TEXT='blablabla'+#10#13+
     'blablabla';
Wie soll ich da add aufrufen?

Wie waäre es so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  TEXT='blablabla'+#13#10+
     'blablabla';
begin
  Memo1.Lines.Add(TEXT);
end;
Ergibt zwei Zeilen im Memo.

Zeig doch einfach mal etwas Eigeninitiative und probier es mal aus. :roll:

3_of_8 23. Dez 2005 22:36

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
So mache ich es doch eh! Bloß, dass ich nicht add aufrufe sondern text:=

So finde geht es ja auch.

alcaeus 23. Dez 2005 22:38

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Zitat:

Zitat von 3_of_8
So mache ich es doch eh! Bloß, dass ich nicht add aufrufe sondern text:=

So finde geht es ja auch.

Es geht auch, aber du musst halt wissen was du brauchst.
Delphi-Quellcode:
Memo.Text := 'foo';
ueberschreibt das, was bisher im Memo stand,
Delphi-Quellcode:
Memo.Lines.Add('foo');
laesst den Inhalt unberuehrt und haengt 'foo' in einer neuen Zeile an ;)

Ergo: ersteres ist aequivalent zu
Delphi-Quellcode:
Memo.Lines.Clear();
Memo.Lines.Add('foo');
;)

Greetz
alcaeus

Luckie 23. Dez 2005 22:40

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Zitat:

Zitat von 3_of_8
So mache ich es doch eh! Bloß, dass ich nicht add aufrufe sondern text:=

Also machst du es doch nicht so. Und ich wollte dir nur zeigen, dass es eben doch geht mit Add entgegen deiner Behauptung.

3_of_8 23. Dez 2005 22:42

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Ja schon, aber nicht mit Add ohne wieder ein #13#10 einzubauen.

Flocke 23. Dez 2005 22:51

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
... und um noch einmal alle Klarheiten zu beseitigen:
Delphi-Quellcode:
const
  BS = #8; // BackSpace
  HT = #9; // Horizontal Tabulator
  LF = #10; // LineFeed
  VT = #11; // Vertical Tabulator
  FF = #12; // FormFeed
  CR = #13; // Carriage Return
daraus folgt: CR/LF = #13#10 und nicht umgekehrt (wobei dies alles eigentlich Terminal-Steuercodes sind).

Aus alten Schreibmaschinen-Zeiten:
CR = Wagenrücklauf (geht zum Anfang der Zeile bzw. zur ersten Spalte)
LF = Zeilenvorschub (geht eine Zeile nach unten bzw. zur nächsten Zeile)

Unix-Konvention ist aber, dass #10 allein schon beides macht - daher akzeptiert z.B. ein RichEdit-Control #10 als vollwertigen Zeilenwechsel.

Luckie 23. Dez 2005 22:55

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Zitat:

Zitat von 3_of_8
Ja schon, aber nicht mit Add ohne wieder ein #13#10 einzubauen.

Das verstehe ich jetzt nicht. Du willst zwei und mehr Zeilen in ein Memo einfügen. Diese Zeilen sind als eine Konstante mit Zeilenumbrüchen deklariert. Und dann hast du behauptet, das könne man nicht mit der Methode Add einfügen. Und ich habe geziegt, dass er sehr wohl geht. Das war alles.

3_of_8 23. Dez 2005 23:17

Re: memo.text:='text1'+#10#13+'text2'; klappt nicht.
 
Jaa, aber das mit dem #10#13 hat halt nicht geklappt (ganz verständlich) und ich wollte alternativen. Jemand hat gesagt, ich sollte die einzelnen Zeilen mit Add einfügen, und ich habe gesagt, dass es so nicht geht.

Dass man den ganzen Text, in dem schon Zeilenumbrüche enthalten sind einfügen kann ist völlig klar.


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