Delphi-PRAXiS
Seite 1 von 2  1 2      

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

fr0g 7. Feb 2007 13:04


Zeilenumbruch?
 
Guten Tag

Ich sende ein text an ein Memofeld. Dort soll der erste Teil in die erste Zeile udn der Zweite in die Zweite.
Bei Message Dlg ist ja eine neue Zeile der Befehl +#10#13+

Gibt es sowas auch für ein Memofeld oder RichEditfeld? Wnen nicht wie mach ich es dann?
Und wie könnte ich dann gleichzeitig Regeln das der erste Teil dick geschrieben ist und der Rest wieder normal?

Vielen Dank. mfg fr0g

Jürgen Thomas 7. Feb 2007 13:09

Re: Zeilenumbruch?
 
Für Memo und RTF gibt es:
Delphi-Quellcode:
Memo1.Lines.Add("Dein Text");
Für die Formatierung bei RTF musst Du jeweils mit Delphi-Referenz durchsuchenDefAttributes oder Delphi-Referenz durchsuchenSelAttributes arbeiten.

Gruß Jürgen

Nachtrag: Die Addition von Zeilen mit #13#10 (d.h. CR/LF) funktioniert grundsätzlich ebenso. Dann kann Delphi/Windows aber Delphi-Referenz durchsuchenLines.Count nicht immer richtig bestimmen. Deshalb sind Delphi-Referenz durchsuchenLines.Add und Delphi-Referenz durchsuchenLines.AddStrings vorzuziehen.

inherited 7. Feb 2007 13:45

Re: Zeilenumbruch?
 
Zitat:

Zitat von fr0g
Guten Tag
Bei Message Dlg ist ja eine neue Zeile der Befehl +#10#13+

Falsch, es ist #13#10

oki 7. Feb 2007 14:35

Re: Zeilenumbruch?
 
Zitat:

Zitat von Jürgen Thomas
Die Addition von Zeilen mit #13#10 (d.h. CR/LF) funktioniert grundsätzlich ebenso. Dann kann Delphi/Windows aber Delphi-Referenz durchsuchenLines.Count nicht immer richtig bestimmen. Deshalb sind Delphi-Referenz durchsuchenLines.Add und Delphi-Referenz durchsuchenLines.AddStrings vorzuziehen.

Hallo Jürgen. Wie kommst du darauf,dass Delphi/windows mit #13#10 nicht klar kommt. Mit Lines.Add wird auch nur der String + #13#10 angefügt.

Nehme einen mehrzeiligen Text(mit Texteditor erstellt) und weise diesen der Eigenschaft Text zu. Du wirst sehen, dass jede Zeile bis zum #13#10 eine Line repräsentiert.

Gruß oki

Jürgen Thomas 7. Feb 2007 14:44

Re: Zeilenumbruch?
 
Zitat:

Zitat von oki
Hallo Jürgen. Wie kommst du darauf,dass Delphi/windows mit #13#10 nicht klar kommt. Mit Lines.Add wird auch nur der String + #13#10 angefügt.

Nehme einen mehrzeiligen Text(mit Texteditor erstellt) und weise diesen der Eigenschaft Text zu. Du wirst sehen, dass jede Zeile bis zum #13#10 eine Line repräsentiert.

Insofern hast Du völlig recht. Bei meinem o.g. Nachtrag bezog ich mich auf folgende Situation:
Delphi-Quellcode:
Memo1.Lines.Clear;
Memo1.Lines.Add('Zeile 1');
Memo1.Lines.Add('Zeile 2' + #13 + #10 + 'Zeile 3');
Memo1.Lines.Add('Zeile 4');
In diesem Fall habe ich als Ergebnis oft Memo1.Lines.Count = 3 (nicht 4) erhalten. Es ging mir nur um die u.U. "fehlerhafte" Anzeige der Zeilenzahl. Die Inhalte der Zeilen werden selbstverständlich korrekt verarbeitet, aber sie enthalten eben teilweise das CR/LF.

Jürgen

fr0g 7. Feb 2007 14:45

Re: Zeilenumbruch?
 
Also Leutz. Das mit +#13#10+ hat funktioniert. Dafür erstmal Vielen Dank.

Aber seltsam finde ich das ich bei einem Message Dlg +#10#13+ verwendet habe. Und das hat funktioniert. Aber nur bei dem MessageDlg....


Jedenfalls hätte ich jetzt nur noch die Frage wie ich es schaffe das dann der erste Teil FETT geschrieben ist? Gibt es dafür auch eine Zeichenfolge?

mfg fr0g

phreax 7. Feb 2007 14:52

Re: Zeilenumbruch?
 
Zitat:

Aber seltsam finde ich das ich bei einem Message Dlg +#10#13+ verwendet habe. Und das hat funktioniert. Aber nur bei dem MessageDlg....
Das geht weil die Dialogs auch nur mit #10 neue zeilen (Linux Zeilenumbruch) anfangen ist ganz nett wenn man schreibfaul ist. ;)

mfg phreax

oki 7. Feb 2007 14:54

Re: Zeilenumbruch?
 
Hi Jürgen.

Die von dir beschriebene Erscheinung hatte ich noch nicht. Hab so aber auch nie eine Zeile hinzugefügt. :mrgreen: Normal müßte das aber 4 Zeilen ergeben.

@frog: eigentlich ist #13 der Zeilenumbruch (neue Zeile) und #10 der Zeilenvorschub (an den Anfang der Zeile). Kommt so noch von den alten Schreibmaschinen. Manchen Elementen reicht der Zeilenumbruch. die Bündigkeit erfolgt dann an Hand der Formatvorgabe (links, rechts ...). Manche möchten aber auch beides. Einige wiederum verstehen nichts von #13#10 und machen nur zwei schwarze senkrechte Zeichen.

Gruß oki

fr0g 7. Feb 2007 15:02

Re: Zeilenumbruch?
 
Alles klar. Und wieder um ein Stückchen schlauer geworden.... Man lernt ja auch nie aus.

Ich hab mir jetzt mal angeguckt wie ich Teile verschieden farbig machen kann oder FETT etc. Hab aber nur Sachen gefunden die für RichEdit Felder sind. Mit Memofeldern funktioniert das nämlich nicht so. oder?

Es geht nämlcih um ein Chatprogramm udn da soll es dnan so aussehen

fr0g:
Hallo!
User:
Hallo zurück!

thx schonmal!

Martin K 7. Feb 2007 15:06

Re: Zeilenumbruch?
 
Ein TMemo kann keinen formatierten Text darstellen, das ist wie beim notepad.
Da musst Du schon ein TRichEdit verwenden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:48 Uhr.
Seite 1 von 2  1 2      

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