Vieleicht wäre ja auch ein Ansatz nur in der Suchroutine alle #10 aus dem Buffer zu entfernen in welchen
ich den Memotext übernehme?
Dann würden diese automatisch nicht mitgezählt werden und der Rückgabewert der Position des gefundenen
Searchstrings müsste passen und das TRichEdit müsste nicht manipuliert werden.
Meine Suchroutine wird so initialisert:
Delphi-Quellcode:
function SearchMemo(Memo: TCustomEdit;
const SearchString: String;
Options: TFindOptions): Boolean;
var
Buffer, P: PChar;
Size,X,Z: Integer;
begin
Result := False;
if (Length(SearchString) = 0) then Exit;
Size:=Memo.GetTextLen;
Inc(Size);
if (Size=0) then Exit;
Buffer:=StrAlloc(Size);
try
Memo.GetTextBuf(Buffer,Size); ---> // Hier müsste man irgendwie die #10 rausschmeissen -> weißt Du dafür eine gute Lösung?
P:=SearchBuf(Buffer, Size, Memo.SelStart, Memo.SelLength, SearchString, Options);
if P <> nil then
begin
Memo.SetFocus;
Memo.SelStart:=P-Buffer; ---> // dann würde dieser Wert stimmen
Memo.SelLength:=Length(SearchString);
Memo.Repaint;
Result:=True;
end;
finally
StrDispose(Buffer);
end;
end;
Bekomme ich die #10 irgendwie aus dem Buffer oder gar nicht erst rein (oder sitze ich auf dem Schlauch)?
Danke.