Einzelnen Beitrag anzeigen

mani64

Registriert seit: 8. Apr 2009
49 Beiträge
 
Delphi 5 Professional
 
#1

FindDialog gibt Focus nicht ab

  Alt 19. Apr 2009, 01:36
Hallo

ich habe versucht, das Beispiel in der Delphi Hilfe auf mein Programm zu übertragen: Im Hauptfenster befindet sich ein Child-Fenster mit Menü, Richedit und Finddialog. Bei Klick auf Menüpunkt "Suchen" erscheint ein FindDialog. Bei Click auf den Button "weiter" (Ereignis onfind) liest die Prozedur den Text aus und sucht in Richedit.

Delphi-Quellcode:
  procedure TForm2.Action1Execute(Sender: TObject);
begin
   FindDialog1.Execute;
end;

procedure TForm2.FindDialog1Find(Sender:TObject);
var
  ToEnd, StartPos, FoundAt : Longint;
begin
 with Richedit1 do
    begin
      Startpos:=0;
      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;
Aber das Dialogfeld gibt den Focus nicht ab! In einem normalen Formular (nicht MDI) funktioniert es tadellos. Wie muss ich das abändern, damit es auch bei einem MDI funktioniert? Wenn ich mit der Maus ins Richedit klicke, wechselt der Focus ganz normal zwischen Dialog und MDI-Kind. Warum geht das nicht mit SetFocus?
  Mit Zitat antworten Zitat