Hi, comm,
ich möchte in einem Trichedit verhindern, daß am Ende eine linebreak angefügt wird (man also auf der letzten text-Zeile und nicht auf einer Zeile darunter steht).
Beispiel:
richedit.text sieht bei normalem Anhängen von 3 Zeilen mit append so aus: '1'#$D#$A'2'#$D#$A'3'#$D#$A
Der letzte Linefeed soll weg, mglst. OHNE Richedit.text neu zu setzen
Delphi-Quellcode:
procedure TextAnhaengen;
var i:integer;
begin
for i:=1 to 3 do richedit1.lines.append(inttostr(i)); //ergibt bei Richedit1.text : '1'#$D#$A'2'#$D#$A'3'#$D#$A
end;
procedure deletelastlinebreakMitTextNeu; //funktioniert
var p:pchar;
begin
p:=pchar(richedit1.text);
if (p-2)^ in [#13,#10] then
(strend(p)-2)^:=#0; //ist so was erlaubt?, geht jedenfalls, -2 entspricht entspricht -length(lines.linebreak)
RichEdit1.Text:=p
end;
procedure deletelastlinebreakOhneTextNeu;//funktioniert nicht
begin
if (pchar(richedit1.text)-2)^ in [#13,#10] then
(strend(pchar(richedit1.text))-2)^:=#0
end;
deletelastlinebreakOhneTextNeu geht sicherlich nicht, weil text ein Konstanten-Object ist, also scheinbar so nicht verändert wird.
Genausowenig darf setlength(richedit1.text,lenght(richedit1.Text)-2) versucht werden.
Seht ihr eine Möglichkeit, richeidt1.Text zu manipulieren, ohne das wie hier RichEdit1.Text:=p; neu gesetzt werden muß?
Grüße
Uwe