Einzelnen Beitrag anzeigen

Stefan H.

Registriert seit: 10. Dez 2003
12 Beiträge
 
Delphi 6 Personal
 
#1

Automatisch wieder als aktives Programm in den Vordergrund

  Alt 12. Apr 2006, 22:12
Hallo Leute,

ich habe ein kleines Problem und hoffe, Ihr könnt mir da weiterhelfen.

Ich habe ein kleines Programm geschrieben, welches als aktive Anwendung ständig im Vordergrund zu sehen ist. (FormStyle=fsStayOnTop) Soweit so gut.

Nur wenn jetzt jemand in der Taskleiste eine Anwendung anklickt oder auf den Fenster-Rahmen einer anderen Anwendung klickt, so ist mein Programm zwar noch im Vordergrund zu sehen aber es verliert den Fokus und ist somit nicht mehr das aktive Fenster. Soweit ist dies auch noch gewollt.

Nun möchte ich, dass in meinem Programm eine Timer läuft, der mein Programm automatisch nach ca. einer Minute wieder als aktive Anwendung aktiviert (...im Vordergrund ist mein Prog. ja immer noch) und zugleich den Fokus auf ein Textfeld setzt damit man sofort wieder etwas eingeben kann.

Leider funktioniert dies bei mir nicht!

Wenn ich folgendes in meine Timer-Procedure schreibe, dann blinkt zwar in der Taskleiste meine Programm und der Curser blinkt auch in dem richtigen Textfeld aber es ist nicht die aktive Anwendung.

Delphi-Quellcode:
procedure TFormProg.TimerFrontTimer(Sender: TObject);
begin
  SetForegroundWindow(Application.Handle);
  EditProgramm.SetFocus;
end;
Habe auch schon ShowWindow(...) und EnableWindow(...) ausprobiert, aber auch hier ohne Erfolg.

So, ich hoffe Ihr -die Delphi-Spezialisten- könnt mir da weiterhelfen.

Danke!
Gruß Stefan
  Mit Zitat antworten Zitat