Einzelnen Beitrag anzeigen

Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: MessageDialog mit Desktop als Parent

  Alt 8. Jul 2007, 20:33
Hi,

bei mir geht es wenn ich den Code abändere:
Delphi-Quellcode:
Function MessageDialog(Const Msg : String; DlgType : TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint; ADesktopParent : Boolean; AParent : TWinControl): Integer;
Begin
  With CreateMessageDialog(Msg, DlgType, Buttons, ADesktopParent, AParent) Do
    Try
      HelpContext := 0;
      HelpFile := '';
      Position := poScreenCenter;
      If ( fDesktopParent ) Then//<-- wenn hier der Code steht geht es bei mir
        SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_NOSIZE or SWP_NOMOVE)
      Else
        SetWindowPos(Handle, HWND_NOTOPMOST, Left, Top, Width, Height, SWP_NOSIZE or SWP_NOMOVE);

      SetWindowLong(Handle, GWL_HWNDPARENT, 0);
      SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) Or WS_EX_TOPMOST And Not WS_EX_APPWINDOW);

      Result := ShowModal;
...
Das kommt weil bei mir in der Procedere Procedure TMessageForm.SetDesktopParent(AValue: Boolean); komischerweise vorher ein anderes Handle war.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat