galagher - Di 28.12.10 19:09
Titel: Textsuche in mehreren TRxRichEdit's mit nur einem FindDialog
Hallo!
Ich benutze in mehreren zur Laufzeit erzeugten Forms je eine Komponente TRxRichEdit, die ihren eigenen Find-Dialog mitbringt. Klappt auch in jenem Form, in dem ich den Dialog aufrufe:
Delphi-Quelltext
1: 2:
| RxRichEdit1.FindDialog(RxRichEdit1.SelText).Position := Point(Mouse.CursorPos.X-10, Mouse.CursorPos.Y-10); |
Ich möchte aber, dass alle RxRichEdit's in allen Forms nach dem Suchtext durchsucht werden.
Die Forms erzeuge ich ganz einfach:
Note := TForm2.Create(Application);
Ich denke, ich muss mit FindComponent arbeiten, aber wie wende ich den Dialog - oder vielmehr den Suchtext - auf die RxRichEdit's der anderen Forms an? Oder geht das einfacher?
TRxRichEdit hat eine Funktion FindText, die folgende Parameter erwartet:
const SearchStr: string; StartPos, Length: Integer; Options: TRichSearchTypes und ein
Integer zurückgibt.
Ich weiss aber nicht, wie ich das alles zusammenfügen kann.
galagher - Di 28.12.10 20:41
platzwart hat folgendes geschrieben : |
| Ein Array erstellen mit den TRichEdits drin und das Array durchgehen. |
Wie muss das Array aussehen? Ich weiss nicht mal, wie ich die Suche korrekt starten soll.
Bis jetzt habe ich das:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| RxRichEdit1.FindDialog(RxRichEdit1.SelText).Position := Point(Mouse.CursorPos.X-10, Mouse.CursorPos.Y-10);
if not RxRichEdit1.FindDialog(RxRichEdit1.SelText).Execute then exit; s := RxRichEdit1.FindDialog(RxRichEdit1.SelText).FindText; for i := 0 to iNotesCount do begin if Pos(s, TForm2(Application.FindComponent('Notiz'+IntToStr(i))).RxRichEdit1.Text) > 0 then begin |
Der Code geht einfach nach
if not RxRichEdit1.FindDialog(RxRichEdit1.SelText).Execute then exit; weiter!