Moin,
ich habe ein Programm welches ich mit folgendem Code immer als höchtes Fenster gesetzt habe.
Delphi-Quellcode:
Procedure TMainWinForm.SetDesktopParent;
Begin
If ( fDesktopParent )
Then
SetWindowPos(
Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_NOACTIVATE
Or SWP_NOMOVE
Or SWP_NOSIZE)
Else
SetWindowPos(
Handle, HWND_NOTOPMOST, Left, Top, Width, Height, SWP_NOACTIVATE
Or SWP_NOMOVE
Or SWP_NOSIZE);
End;
Diesen Code habe ich auch in alle anderen Fenster so eingefügt, das alle von mir geöffneten Fenster auch immer OnTop sind. Das funzt soweit auch ganz gut. Nur muss der User am Anfang eine Datei laden, damit er mit dem Prog arbeiten kann. Das Problem ist nur, das der OpenDialog dahinter auftaucht. Nun habe ich mir meinen eigenen OpenDialog geschrieben, abgeleitet von TOpenDialog. Dort habe ich das Execute überschrieben und dann ebenfalls diesen Code eingefügt. Da der OpenDialog aber kein Left, Top, Width und Height hat, habe ich die Werte erstmal mit starren Zahlen vorbelegt. Aber der OpenDialog kommt trotzdem nicht nach vorne. Habt ihr vielleicht eine Idee, wie man es schafft das er immer OnTop ist?