Autor Beitrag
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: So 06.07.03 13:32 
Hi,

ich habe eine Form bei der gebe ich einen Suchbegriff ein. Wird ein zutreffender gefunden habe ich eine MessageBox mit "gefunden" "weitersuchen" "abbrechen" Wie kriege ich die Form jetzt dazu, daß sie den gefundenen Begriff anzeigt und die Klicks der Messagebox auswertet ?

Bisher ist es mir nur gelungen, daß beim Onclose der Form die Messagebox kommt. Bin am überlegen, drei Buttons auf die Form zu legen, aber trozudem interessiert mich, wie man so was realisiert.

_________________
Gruß
Hansa
StefanH
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1144

Win XP
D5 Standard, D7 Pers, D2005 Pers
BeitragVerfasst: So 06.07.03 15:38 
Suche:
Delphi Hilfe hat folgendes geschrieben:

Für dieses Beispiel werden drei Objekte benötigt: TRichEdit, TButton und TFindDialog.
Nach einem Klick auf die Schaltfläche wird rechts vom Eingabefeld ein Dialogfeld Suchen angezeigt. Wenn nun ein Suchtext eingegeben und die Suche gestartet wird, erhält der erste passende String nach der aktuellen Cursorposition im RTF-Eingabefeld eine Markierung.
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
procedure TForm1.Button1Click(Sender: TObject);
begin
  FindDialog1.Position := Point(RichEdit1.Left + RichEdit1.Width, RichEdit1.Top);
  FindDialog1.Execute;
end;

procedure TForm1.FindDialog1Find(Sender: TObject);
var
  FoundAt: LongInt;
  StartPos, ToEnd: Integer;
begin
  with RichEdit1 do
  begin
    { Suchbeginn nach der aktuellen Markierung (falls vorhanden), }
    { andernfalls am Textanfang starten }

    if SelLength <> 0 then
      StartPos := SelStart + SelLength;
    else

      StartPos := 0;

    { ToEnd ist die Länge von StartPos bis zum Ende des Textes im RTF-Eingabefeld }

    ToEnd := Length(Text) - StartPos;

    FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, [stMatchCase]);
    if FoundAt <> -1 then
    begin
      SetFocus;
      SelStart := FoundAt;
      SelLength := Length(FindDialog1.FindText);
    end;
  end;
end;



Wenns das war,
cu Stefan

_________________
"Als es noch keine Computer gab, war das Programmieren noch relativ einfach."(Edsger W. Dijkstra)
"Ich bin nicht von Sinnen, sondern ich rede wahre und vernünftige Worte." (Paulus)