AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MessageDialog mit Desktop als Parent

Ein Thema von luckystar85 · begonnen am 8. Jul 2007 · letzter Beitrag vom 8. Jul 2007
Antwort Antwort
luckystar85

Registriert seit: 21. Dez 2004
Ort: Rostock
138 Beiträge
 
Delphi 2009 Professional
 
#1

MessageDialog mit Desktop als Parent

  Alt 8. Jul 2007, 18:37
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?
Angehängte Dateien
Dateityp: pas messagedlg_686.pas (11,0 KB, 20x aufgerufen)
Michael Klüber
Delphi ist was solides und besteht nicht wie C/C++ Quelltext nur aus Kommentaren.
  Mit Zitat antworten Zitat
Benutzerbild von dajuhsa
dajuhsa

Registriert seit: 20. Apr 2007
397 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: MessageDialog mit Desktop als Parent

  Alt 8. Jul 2007, 18:47
wer soll sich das antun, diesen "schön gestalteten" text zu lesen?
das Essen ist wie das Internet - Downstream ist immer angenehmer als Upstream
-
Warum missbraucht die ganze Programmierwelt Images als Paintboxen
  Mit Zitat antworten Zitat
luckystar85

Registriert seit: 21. Dez 2004
Ort: Rostock
138 Beiträge
 
Delphi 2009 Professional
 
#3

Re: MessageDialog mit Desktop als Parent

  Alt 8. Jul 2007, 18:55
Zitat von dajuhsa:
wer soll sich das antun, diesen "schön gestalteten" text zu lesen?
wie meinst du denn das? ist original Formatierung, einfach nur rüber kopiert.
Michael Klüber
Delphi ist was solides und besteht nicht wie C/C++ Quelltext nur aus Kommentaren.
  Mit Zitat antworten Zitat
Benutzerbild von dajuhsa
dajuhsa

Registriert seit: 20. Apr 2007
397 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: MessageDialog mit Desktop als Parent

  Alt 8. Jul 2007, 19:00
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
das Essen ist wie das Internet - Downstream ist immer angenehmer als Upstream
-
Warum missbraucht die ganze Programmierwelt Images als Paintboxen
  Mit Zitat antworten Zitat
luckystar85

Registriert seit: 21. Dez 2004
Ort: Rostock
138 Beiträge
 
Delphi 2009 Professional
 
#5

Re: MessageDialog mit Desktop als Parent

  Alt 8. Jul 2007, 19:16
hast denn schon ne idee???
Michael Klüber
Delphi ist was solides und besteht nicht wie C/C++ Quelltext nur aus Kommentaren.
  Mit Zitat antworten Zitat
Benutzerbild von dajuhsa
dajuhsa

Registriert seit: 20. Apr 2007
397 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: MessageDialog mit Desktop als Parent

  Alt 8. Jul 2007, 19:39
ne, kann ich nich sagen...
das Essen ist wie das Internet - Downstream ist immer angenehmer als Upstream
-
Warum missbraucht die ganze Programmierwelt Images als Paintboxen
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: MessageDialog mit Desktop als Parent

  Alt 8. Jul 2007, 20:31
Also ne MessageBox mit Desktop als Parent sähe so aus:

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

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
  Mit Zitat antworten Zitat
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
luckystar85

Registriert seit: 21. Dez 2004
Ort: Rostock
138 Beiträge
 
Delphi 2009 Professional
 
#9

Re: MessageDialog mit Desktop als Parent

  Alt 8. Jul 2007, 20:40
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
Michael Klüber
Delphi ist was solides und besteht nicht wie C/C++ Quelltext nur aus Kommentaren.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:22 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