Hi,
zuerst mal mein Code:
Suchen-Funktion:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TSearch.Button1Click(Sender: TObject); var tPos, LenLookFor : integer; begin stelle := 1; tPos := PosEx(Search.SuchNach.text, Main.RichEdit1.Lines.text, stelle); LenLookFor := Length(search.SuchNach.text); stelle := 1; if tPos > 0 then begin Main.RichEdit1.SelStart := tPos - 1; Main.RichEdit1.SelLength := LenLookFor; end; stelle := stelle + 1; Search.Close; end; |
Weitersuchen-Funktion
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TMain.Weitersuchen1Click(Sender: TObject); var tPos, LenLookFor : integer; begin tPos := 0; LenLookFor := 0; tPos := PosEx(Search.SuchNach.text, Main.RichEdit1.Lines.text, stelle); LenLookFor := Length(search.SuchNach.text); if tPos > 0 then begin Main.RichEdit1.SelStart := tPos - 1; Main.RichEdit1.SelLength := LenLookFor; end; stelle := stelle + 1; end; |
Struktur meines Projekts:
2 Forms (main, Search)
Auf Main-Form ist ein RichtEdit (RichEdit1)
Auf Search-Form ist ein Text-Feld (SuchNach) und ein Button (Button1)
So, das Problem ist, auch wenn der Zähler "stelle" erhöht wird, bekomme ich in der Funktion "weitersuchen" immer nur das 2te vorkommen angezeigt... Der Counter wird auch erhöht, trotzdem das gleiche ergebnis...
Nochmal aufgespalten:
test <<< bei Suchen makiert (Stelle := 1
test <<< bei jedem ausführen von weitersuchen makiert (nur wenn suchen einmal ausgeführt wurde) (immer wenn stelle größer als 1 is)
test <<< müsste bei stelle := 3; makiert sein
test <<< müsste bei stelle := 4; makiert sein
test <<< müsste bei stelle := 5; makiert sein
Hoffe es findet jemand das Problem,
LG und sry es is ein wenig unübersichtlich,
Diskette