oder so:
Delphi-Quellcode:
mTmp := StringReplace( Memo1.Text, #13#10, #13, [ rfReplaceAll ] );
Memo1.SelStart := Pos( UpperCase( Edit2.Text ), UpperCase( mTmp ) ) - 1;
Memo1.SelLength := Length( Edit2.Text );
oder (für eine generelle Verwendung):
Delphi-Quellcode:
function SelectTextInMemo( AText : string; AMemo : TMemo ) : boolean;
var
mTmp : string;
tTmp : string;
mPos : integer;
begin
Result := False;
// CRLF ersetzen mit CR
mTmp := UpperCase( StringReplace( AMemo.Text, #13#10, #13, [ rfReplaceAll ] ) );
// Falls im Suchtext auch ein CRLF auftaucht ;-)
tTmp := UpperCase( StringReplace( AText, #13#10, #13, [ rfReplaceAll ] ) );
mPos := Pos( tTmp, mTmp );
if mPos > 0 then
begin
AMemo.SelStart := mPos - 1; // Sel startet bei 0 ;-)
AMemo.SelLength := Length( tTmp );
Result := True;
end;
end;
edit: SelStart korrigiert ... und jetzt als function mit Rückgabewert True, wenn der Suchtext gefunden wurde
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)