Autor Beitrag
UliTs
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38

Win XP*, Win 7
xBase++, Delphi 10.3
BeitragVerfasst: Do 15.03.07 18:02 
Hallo,

ich habe eine Delphi-DLL geschrieben, die ich von einem anderen Programm (in xBase++ geschrieben) benutze.
Innerhalb der DLL-Routine wird ein Fenster (TForm) geöffnet und der Anwender muß den Inhalt mit dem Ok-Button bestätigen. Leider kommt das Fenster nicht in den Vordergrund, sondern "versteckt" sich hinter dem Fenster des die DLL aufrufenden Programmes. Mit Hilfe der Taskleiste und Mausklick kann ich das Fenster allerdings in den Vordergrund bringen.
Meine Frage: wie kann ich das Fenster automatisch in den Vordergrund bringen? (BringToFront klappt nicht)

Uli
UliTs Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38

Win XP*, Win 7
xBase++, Delphi 10.3
BeitragVerfasst: Do 15.03.07 18:23 
Hallo,

ich habe inzwischen herausgefunden, daß mit

with Self do {Form1,...}
SetWindowPos(Handle, // handle to window
HWND_TOPMOST, // placement-order handle {*}
Left, // horizontal position
Top, // vertical position
Width,
Height,
// window-positioning options
SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);

der Dialog in den Vordergrund gebracht werden kann, wenn ich einen Timer einsetze und in der zugehörigen Routine obigen Code integriere. Damit kann man schon einmal mit der Maus ohne Einschränkung arbeiten. Leider erhält das Fenster aber damit noch nicht dan Tastaturfocus. Wie kann ich den Tastaturfocus auf die DLL-Routine setzen?

Uli