Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi MessageDialog mit Desktop als Parent (https://www.delphipraxis.net/95530-messagedialog-mit-desktop-als-parent.html)

luckystar85 8. Jul 2007 18:37


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?

dajuhsa 8. Jul 2007 18:47

Re: MessageDialog mit Desktop als Parent
 
wer soll sich das antun, diesen "schön gestalteten" text zu lesen? :freak:

luckystar85 8. Jul 2007 18:55

Re: MessageDialog mit Desktop als Parent
 
Zitat:

Zitat von dajuhsa
wer soll sich das antun, diesen "schön gestalteten" text zu lesen? :freak:

wie meinst du denn das? ist original Formatierung, einfach nur rüber kopiert.

dajuhsa 8. Jul 2007 19:00

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:

luckystar85 8. Jul 2007 19:16

Re: MessageDialog mit Desktop als Parent
 
hast denn schon ne idee???

dajuhsa 8. Jul 2007 19:39

Re: MessageDialog mit Desktop als Parent
 
ne, kann ich nich sagen...

cruiser 8. Jul 2007 20:31

Re: MessageDialog mit Desktop als Parent
 
Also ne MessageBox mit Desktop als Parent sähe so aus:

Delphi-Quellcode:
MessageBox(GetDesktopWindow, PChar('text string'), PChar('title string'), 0);
Oder mit Parametern halt so:

Delphi-Quellcode:
MessageBox(GetDesktopWindow, PChar('text string'), PChar('title string'), MB_OKCANCEL or MB_TOPMOST or MB_ICONINFORMATION);
Hilfe zu den Parametern findest du hier: MSDN-Library durchsuchenMessageBox

bitsetter 8. Jul 2007 20:33

Re: MessageDialog mit Desktop als Parent
 
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
Delphi-Quellcode:
Procedure TMessageForm.SetDesktopParent(AValue: Boolean);
komischerweise vorher ein anderes Handle war.

luckystar85 8. Jul 2007 20:40

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