![]() |
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:
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?
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz