MessageDialog mit Desktop als Parent
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe ein Programm geschrieben, welches ein anderes Programm steuern und überwachen soll. Da das zu überwachende Programm den Desktop als Parent bekommt und immer über alles liegt, muss mein Programm auch den Desktop als Parent bekommen. Das funktioniert soweit auch super. Nur möchte ich dem Benutzer auch Hinweise geben, wenn er was falsch gemacht hat. Dazu verwende ich den MessageDlg. Da dieser nicht automatisch den Desktop als Parent bekommt, habe ich mir den MessageDlg von Delphi kopiert in meine eigene Unit eingefügt (im Anhang). Ich habe dort eine neue Eigenschaft definiert und in dessen Abhängigkeit setze ich den Desktop als Parent oder nicht. Ich habe genau den gleichen Quelltext in meiner MainForm drinne und da funktioniert es, nur nicht im MessageDialog. Da beide von TForm sind, sollte es doch das gleiche sein.
Sehr ihr irgendwo vielleicht einen dummen Fehler von mir, der das verhindert? |
Re: MessageDialog mit Desktop als Parent
wer soll sich das antun, diesen "schön gestalteten" text zu lesen? :freak:
|
Re: MessageDialog mit Desktop als Parent
Zitat:
|
Re: MessageDialog mit Desktop als Parent
ach egal, nichts für ungut . ich meine nur wenn ich auf den download-button da klicke wären ein paar absätze mehr ganz hillfreich für das verständnis, finde ich :wink:
|
Re: MessageDialog mit Desktop als Parent
hast denn schon ne idee???
|
Re: MessageDialog mit Desktop als Parent
ne, kann ich nich sagen...
|
Re: MessageDialog mit Desktop als Parent
Also ne MessageBox mit Desktop als Parent sähe so aus:
Delphi-Quellcode:
Oder mit Parametern halt so:
MessageBox(GetDesktopWindow, PChar('text string'), PChar('title string'), 0);
Delphi-Quellcode:
Hilfe zu den Parametern findest du hier: MessageBox
MessageBox(GetDesktopWindow, PChar('text string'), PChar('title string'), MB_OKCANCEL or MB_TOPMOST or MB_ICONINFORMATION);
|
Re: MessageDialog mit Desktop als Parent
Hi,
bei mir geht es wenn ich den Code abändere:
Delphi-Quellcode:
Das kommt weil bei mir in der Procedere
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; ...
Delphi-Quellcode:
komischerweise vorher ein anderes Handle war.
Procedure TMessageForm.SetDesktopParent(AValue: Boolean);
|
Re: MessageDialog mit Desktop als Parent
ok, das war es; irgendwie ist das mächtig komisch, auf die idee wäre ich nie gekommen das an die position zu verschieben;
vielen dank für deine hilfe |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz