![]() |
Memo.Lines[irgendwas] - enthält Zeilenumbruch oder nicht?
Hallo!
Ein leidiges Thema, denke ich, aber ohne das zu wissen komme ich nicht weiter: In einem Memo wird ja automatisch Zeilenumbruch gemacht, wenn ein Absatz eben über die Breite des Memos geht. Wennnun über die Lines-Eigenschaft eine Zeile x angesprochen wird, so wird nicht etwa der ganze Absatz zurückgegeben, sondern nur die Zeile, wie sie im Memo steht - bis zum Umbruch. Nun ist dadurch nicht herauszufinden, ob Memo.Lines[x] Am Ende einen Umbruch hat oder nicht, da die Steuerzeichen nicht mit in dem String Memo.Lines[x] gespeichert sind (hab ich mal ausprobiert; einfach, da mit Length(string) auch Steuerzeichen erfasst werden)... Wie kann ich nun herausfinden, ob nach einer besimmten Zeile eines Memos ein Zeilenumbruch folgt? Danke! |
Re: Memo.Lines[irgendwas] - enthält Zeilenumbruch oder nicht
du meinst, ob das memo da automatisch umbricht?
dazu musst du wohl selber nachrechnen. -> ![]() |
Re: Memo.Lines[irgendwas] - enthält Zeilenumbruch oder nicht
Hi!
Auf was wende ich diese Funktion an? Und was liefert sie zurück? (Die Länge des Absatzes? käme mir komisch vor, da dann aj für mehrere Zeilen ein und derselbe Wert zurückgegeben wird) Danke schonmal. |
Re: Memo.Lines[irgendwas] - enthält Zeilenumbruch oder nicht
Die Zeilen eines Memos enthalten keine Zeilenumbrüche, einfach deshalb, weil die Zeilen einer StringList es auch nicht tun.
|
Re: Memo.Lines[irgendwas] - enthält Zeilenumbruch oder nicht
Die Antwort eines Mathematikers: Hat ewig gedauert, ist vollkommen exakt, und bringt niemandem was :)
@simlei: damit berechnest du, wie viel platz die zeile bräuchte. wenns mehr ist, als das memo breit ist, weißt du: da wird umgebrochen. |
Re: Memo.Lines[irgendwas] - enthält Zeilenumbruch oder nicht
Das kommt davon, wenn man den Topic-Titel liest und dann den Text überfliegt, kombiniert mit akutem Koffeinmangel
|
Re: Memo.Lines[irgendwas] - enthält Zeilenumbruch oder nicht
Aha... Ich wende diese Funktion also auf zB Memo1.Lines[3] an. Aber da doch er Umbruch schon erfolgt ist und ich mit Memo1.Lines[3] nur einen Teil des gesamten Absatzes erhalte (so er denn automatisch umgebrochen ist), würde doch dieser String immer hinein passen (Da schon passend umgebrochen). Hab ich das jetzt falsch verstanden oder ganz falscher Ansatz?
|
Re: Memo.Lines[irgendwas] - enthält Zeilenumbruch oder nicht
Nö.
TextTextTextTextTextTextTextText[Enter] TextTextTextTextTextTextTextTextTextText <--- automat. Umbruch TextTextTextText[Enter] wenn dein memo so aussieht, ist Lines.Count = 2. Du verstehst, was ich dir sagen will...? |
Re: Memo.Lines[irgendwas] - enthält Zeilenumbruch oder nicht
Hallo,
werfe mal folgendes in die nette Unterhaltung :mrgreen: : In Lines[x] ist der Zeilenumbruch nicht enthalten, den kann man aber aus Memo.Text auslesen. :arrow: Feststellen bei welchem Zeichen die nächste Zeile anfängt, dann aus .Text die Zeichen davor prüfen.
Delphi-Quellcode:
function IsWordWrap(M: TMemo;iLine: Integer): Boolean;
var i : Integer; begin Result := False; i := M.Perform(EM_LINEINDEX, iLine+1, 0); if ord(M.Text[i-1]) <> 13 then Result := True; end; procedure TForm1.Button1Click(Sender: TObject); begin if IsWordWrap(Memo1,0) then//erste Zeile showmessage('Umbruch in Zeile 1 (Index 0) durch WordWrap'); end; |
Re: Memo.Lines[irgendwas] - enthält Zeilenumbruch oder nicht
Sry Luke, habs irgendwie net gecheckt :/
Der Coide von Lannes ist aber gut, funktioiert! Danke! Ich hatte auch die Idee, dass die Steuerzeichen ja in Memo.Text enthalten sind, aber ich wusste nicht, dass man von einem bestimmten Stelle in .Lines auf eine Stelle in .Text schließen kann... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:48 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