Registriert seit: 17. Jan 2007
1.169 Beiträge
Turbo Delphi für Win32
|
Re: MessageDialog mit Desktop als Parent
8. Jul 2007, 21: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
|
|
Zitat
|