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 Handle eines MessageDlg herausfinden (https://www.delphipraxis.net/96080-handle-eines-messagedlg-herausfinden.html)

DelphiManiac 18. Jul 2007 11:42


Handle eines MessageDlg herausfinden
 
Hallo,

ich habe einen Messagedlg den ich anzeige, hier kann der Benutzer OK drücken,
dann geht mein Ablauf weiter, ich will aber, dass der MessageDlg automatisch (nach 2 sec)
geschlossen wird.

Dazu brauche ich ja das Fensterhandle,

habe aber keine Ahnung wie ich an das Handle gelange.
Das aufrufende Fenster und dessen Handle habe ich....


Viele Dank schonmal

Gruß
DelphiManiac

Luckie 18. Jul 2007 11:49

Re: Handle eines MessageDlg herausfinden
 
Wenn es auch eine MessageBox sein kann: http://www.michael-puff.de/Developer...xtimeout.shtml

Aber überlegen wir mal: Du lässt eine Messagebox anzeigen, um den Benutzer über irgendetwas zu benachrichtigen. Diese Benachrichtigung muss er bestätigen, damit es im Programm weitergeht. Auf der anderen Seite aber schließt sich die Messagebox selber (und das schon anch zwei Sekunden), ergo kann es ja gar nicht so wichtig gewesen sein und erfordert auch kein Eingreifen des Benutzer, da es ja anscheinend egal ist, ob die Messagebox bestätigt wird oder nicht. Also warum unterbrichts du den Programm ablauf und nervst den Benutzer mit einer überflüssigen Messagebox? Für so etwas gibt es zum Beispiel Statusleisten oder schreib eine Log-Datei sonst irgendwas.

DelphiManiac 18. Jul 2007 12:08

Re: Handle eines MessageDlg herausfinden
 
Es geht hier um einen Prüfvorgang,

es werden Tasten eines Gerätes geprüft, d.h. der Benutzer muss
die Taste auf dem Gerät drücken und während dessen wird mit dem Gerät kommuniziert und abgefragt,
ob es den Tastendruck erkannt hat.

Wenn ja soll eine Meldung erscheinen, die entweder vom Benutzer (früher) geschlossen werden kann, oder
er wartet (evtl. auch 5 sec) bis sich die Meldung automatisch schliesst.

Hat den Hintergrund, dass es sein kann, dass Prüfling und Tastatur des PC's nicht unbedingt nahe beinander sind.
Falls doch, kann der Benutzer die Sache beschleunigen, wenn nein, wartet er (und sieht auf dem Monitor, dass, der
Dialog sich geschlossen hat, und die nächste Taste gedrückt werden soll...

DelphiManiac 18. Jul 2007 12:22

Re: Handle eines MessageDlg herausfinden
 
Hallo
Luckie,

habe jetzt deine Lösung mit der selbstschliessenden Messagebox gewählt,
die Lösung finde ich am besten.

Warum unbedingt eine Meldungsfenster?
Nunja angenommen der Prüfling ist 2 m weit weg vom PC, dann merkt man von weitem das aufpoppen eine Meldungsbox eher,
als ein Progressbarfortschritt.

Ich sage ja nicht, dass das die beste Lösung ist, aber für mein Problem auf jeden Fall eine angepasste Lösung :-)

Danke dir schonmal

OregonGhost 18. Jul 2007 14:19

Re: Handle eines MessageDlg herausfinden
 
Da ich mittlerweile beruflich auch mit Prüfsoftware in Kontakt gekommen bin, hier noch ein Hinweis: Statt einer MessageBox kannst du auch einfach etwas eigenes im Hauptfenster oder darüber anzeigen. Dann hast du auch noch gleich alle Freiheiten, z.B. grün für ok und rot für nicht ok als Hintergrund zu nehmen, oder den Text so groß anzuzeigen, dass man ihn auch noch von weitem lesen kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 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