Das nächste Entwicklertreffen findet Anfang Mai in Münster statt - weitere Infos bzw. zur Anmeldung!

DCREAD GUI und timeout [ERLEDIGT]

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18204
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

DCREAD GUI und timeout [ERLEDIGT]

Beitrag von Manfred » Do, 09. Aug 2018 14:16

Hi,
ich bin gerade auf den Parameter TIMEOUT im DCREAD GUI gestossen. Damit kann man ja einen Eingabebildschirm nach einer Zeit x automatisch beenden. Hm, egal was passiert, er wird nach der Zeit X beendet. Also hatte ich die Zugabe NOKEYPRESS hinzugefügt, weil ich dachte....
Tja, unter Windows wird oft und viel die Maus geschoben und damit geklickt. Also nix mit NOKEYPRESS. Der wird ja im schlimmsten Fall nicht gedrückt. Also auch da wenn man Pech hat mittendrin ein Ende. Wie bekommt man denn sowas elegant gelöst? Also wenn nichts passiert im Eingabefenster, egal womit. Eigentlich würde mir jetzt schon genügen, wenn sich gar nichts am PC tut. Ich möchte ein Programm automatisch beenden, wenn eine gewisse Zeit keiner vor dem PC sitzt und daran arbeitet.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2438
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: DCREAD GUI und timeout

Beitrag von Wolfgang Ciriack » Do, 09. Aug 2018 14:26

M.E. wird der TIMEOUT Wert bei jeder Eingabe im Dialog wieder neu gesetzt, wenn du also etwas machst, dürfte das Fenster auch nicht zu gehen.
Viele Grüße
Wolfgang

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18204
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: DCREAD GUI und timeout

Beitrag von Manfred » Do, 09. Aug 2018 14:29

ich habe es probiert, wenn ich die Maus bewege oder einen Button klicke zählt der Timer wohl trotzdem. Das fenster wurde beendet. Und zwar einmal haarscharf, nachdem ich fertig war mit der Schieber- und Klickerei.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2438
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: DCREAD GUI und timeout

Beitrag von Wolfgang Ciriack » Do, 09. Aug 2018 14:44

Also bei mir ist das so, wie ich schrieb, ich benutze das nur bei Edit-Fenstern.
Kann es sein, das du das im Hauptdialog machst und dann ein Unterfenster offen hast ?
Viele Grüße
Wolfgang

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18204
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: DCREAD GUI und timeout

Beitrag von Manfred » Do, 09. Aug 2018 14:47

nein, es ist ein Untermenue in dem ich das mal getestet habe. Darin ist ein browser, den ich unentwegt anklicke. Nach Ablauf des Timeouts, wird das Untermenue geschlossen. Also Mausklick wird auf keinen Fall berücksichtigt.
Oder was meinst Du genau?
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18204
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: DCREAD GUI und timeout [ERLEDIGT]

Beitrag von Manfred » Do, 09. Aug 2018 15:29

ich habe eine Lösung gefunden. Ich verknüpfe den Timeout mit einer MSGBOX und die hat auch ein Timeout, wenn sie auf eine Antwort wartet. Wer da nicht nach einer zeit X reagiert ist eh weg, oder eingeschlafen. Also kann das Menu verlassen werden. Das scheint jetzt also die Wahl zu sein.
Ist zwar nicht genau was ich haben will, aber zumindest kann der User den Vorgang erlauben, oder abbrechen. Wenn er nicht vor dem PC sitzt, dann wird eben geschlossen.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18204
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: DCREAD GUI und timeout [ERLEDIGT]

Beitrag von Manfred » Fr, 10. Aug 2018 16:21

so ganz ist es noch nicht erledigt.
Ich würde ganz gerne eine IF() Abfrage in Timeout unterbringen.
Und zwar geht es um folgendes. Bei jederm Aufruf und Beenden eines weiteren Menues im Programm wird in einerm Public Array gemerkt, das es geöffnet wurde, bzw. wieder entfernt, wenn es geschlossen wird/wurde. Im hauptmenu soll nun auch ein TIMEOUT integriert werden, das aber nur dann greifen darf, wenn besagtes Array leer ist. Jetzt habe ich aber auch eine MSGBOX im Timeout untergebracht.

Code: Alles auswählen

TIMEOUT {300,{|| DCMSGBOX "ACHTUNG das Programm wird automatisch",;
                                      "nach einer Zeit von 5 Minuten geschlossen",;
                                      "wenn das nicht erwünscht ist, bitte NEIN klicken.";
                               CHOICE 1;
                                TITLE "Timeout";
                              TIMEOUT 20;
                                YESNO;
                         };
                     };
wie bringt man denn da eine IF() Abfrage unter?
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2438
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: DCREAD GUI und timeout [ERLEDIGT]

Beitrag von Wolfgang Ciriack » Fr, 10. Aug 2018 18:26

Ich denke, so ähnlich:

Code: Alles auswählen

TIMEOUT {300,{|nC| iif(!empty(M->MyArray), .F., ( (DCMSGBOX "..." CHOICE @nC), iif(nC=2, .F., .T.) ))}
Viele Grüße
Wolfgang

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18204
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: DCREAD GUI und timeout [ERLEDIGT]

Beitrag von Manfred » Fr, 10. Aug 2018 19:14

hm, ich meine das hätte ich so gemacht, aber nicht zum klappen gekriegt. Muß ich nochmal prüfen. Ach nee, ich sehe gerade, das mit den Klammern habe ich vergessen.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2091
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Kontaktdaten:

Re: DCREAD GUI und timeout [ERLEDIGT]

Beitrag von Koverhage » Sa, 11. Aug 2018 9:59

Warum stellt Du die Frage nicht im Express++ Forum ?
Gruß
Klaus

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2438
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: DCREAD GUI und timeout [ERLEDIGT]

Beitrag von Wolfgang Ciriack » Sa, 11. Aug 2018 10:06

Problem ist ja hier nur die Verwendung eines Befehls in einer iif() Abfrage. Sollte eigentlich mit den Klammern funktionieren, auch wenn ich es selber noch nicht benötigt habe, da ich Funktionen benutze. Ich denke, das der Rückgabewert .T./.F. für den Timeout-Codeblock klar ist.
Viele Grüße
Wolfgang

Antworten