![]() |
FindDialog: Rechenfehler beim Suchen ?
Habe folgenden Delphi-Code:
Delphi-Quellcode:
Er findet zwar alle Ergebnisse, jedoch ist das 1. Ergebniss immer Falsch.
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; 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.) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz