Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi FindDialog gibt Focus nicht ab (https://www.delphipraxis.net/132763-finddialog-gibt-focus-nicht-ab.html)

mani64 19. Apr 2009 01:36


FindDialog gibt Focus nicht ab
 
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?


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz