Ich habe ein DBMemo mit Name = dbmemSummary Und eine Methode ReplaceLineBreaks, die zusätzliche Zeilenumbrüche aus DB Memo entfernt. Ich habe ein Problem mit der Cursorposition.Wie man die Cursorposition in Delphi nach dem Ersetzen von Zeilenumbrüchen erhält
Das ist Methode Schnipsel -
procedure ReplaceLineBreaks;
var
Save_Cursor: TCursor;
aOldTextList: TStringList;
aNewTextList: TStringList;
i, : Integer;
begin
inherited;
aOldTextList := TStringList.Create;
aNewTextList := TStringList.Create;
try
Save_Cursor := Screen.Cursor;
aOldTextList.text := dbmemDisciplineSummary.text;
for i := 0 to aOldTextList.Count - 1 do begin
if (i = 0) and(Trim(aOldTextList[i]) <> '') then
aNewTextList.Add(aOldCN_TextList[i])
else if not ((i<>0) and (Trim(aOldTextList[i - 1]) = '') and (Trim(aOldTextList[i]) = '')) then
aNewTextList.Add(aOldTextList[i]);
end;
cdsPTClinicalNotesCNTEXT.AsString := aNewTextList.Text;
finally
Screen.Cursor := Save_Cursor;
FreeAndNil(aOldTextList);
FreeAndNil(aNewTextList);
end;
end;
Aber seine nicht Cursor wieder auf gleiche Position einstellen ... Kann jemand bitte helfen?
TCursor ist der Mauszeiger nicht das Memo caret, die einige Leute einen Cursor nennen. Sie sollten in die Eigenschaft MemStart für die Caret-Position schauen. Sie müssen dies beim Entfernen von Zeilen verfolgen. Persönlich würde ich den Memotext links und rechts von der selstart-Position aufteilen und Linien separat mit StringReplace entfernen. – MikeD