Habe folgenden Delphi-Code:
Delphi-Quellcode:
procedure TfrmMain.FindDialogFind(Sender: TObject);
var
iPos : LongInt;
iStart : LongInt;
iPattern : String;
iText : String;
begin
if GetCodeMemo.SelAvail then
iStart := GetCodeMemo.SelEnd + 1
else
iStart := 0;
iPattern := LowerCase(FindDialog.FindText);
iText := LowerCase(Copy(GetCodeMemo.Text, iStart, Length(GetCodeMemo.Text) - iStart - 1));
iPos := Pos(iPattern, iText);
if iPos > 0 then
begin
GetCodeMemo.SelStart := iPos + iStart - 2;
GetCodeMemo.SelLength := Length(iPattern);
end;
end;
Er findet zwar alle Ergebnisse, jedoch ist das 1. Ergebniss immer Falsch.
Habe ich z.B. den Text:
"Delphi-Praxis ist cool" und lasse nach "o" suchen, markiert er mir erst das "c", dann das 1. "o" und dann das 2. "o" (ich schließe ja den Dialog nicht, sondern klicke immer auf Weitersuchen).
Der Fehler muss in meiner Rechnung liegen... Findet ihn jemand ?
(GetCodeMemo ist eine Funktion, die mir die Komponente eines TMemo zurückliefert.)