Seite 1 von 2

DCREAD GUI und timeout [ERLEDIGT]

Verfasst: Do, 09. Aug 2018 14:16
von Manfred
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.

Re: DCREAD GUI und timeout

Verfasst: Do, 09. Aug 2018 14:26
von Wolfgang Ciriack
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.

Re: DCREAD GUI und timeout

Verfasst: Do, 09. Aug 2018 14:29
von Manfred
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.

Re: DCREAD GUI und timeout

Verfasst: Do, 09. Aug 2018 14:44
von Wolfgang Ciriack
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 ?

Re: DCREAD GUI und timeout

Verfasst: Do, 09. Aug 2018 14:47
von Manfred
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?

Re: DCREAD GUI und timeout [ERLEDIGT]

Verfasst: Do, 09. Aug 2018 15:29
von Manfred
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.

Re: DCREAD GUI und timeout [ERLEDIGT]

Verfasst: Fr, 10. Aug 2018 16:21
von Manfred
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?

Re: DCREAD GUI und timeout [ERLEDIGT]

Verfasst: Fr, 10. Aug 2018 18:26
von Wolfgang Ciriack
Ich denke, so ähnlich:

Code: Alles auswählen

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

Re: DCREAD GUI und timeout [ERLEDIGT]

Verfasst: Fr, 10. Aug 2018 19:14
von Manfred
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.

Re: DCREAD GUI und timeout [ERLEDIGT]

Verfasst: Sa, 11. Aug 2018 9:59
von Koverhage
Warum stellt Du die Frage nicht im Express++ Forum ?

Re: DCREAD GUI und timeout [ERLEDIGT]

Verfasst: Sa, 11. Aug 2018 10:06
von Wolfgang Ciriack
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.

Re: DCREAD GUI und timeout [ERLEDIGT]

Verfasst: So, 14. Jul 2019 11:23
von Manfred
ok, ich setze mal noch einen drauf. Die Resttimeranzeige kann man nicht irgendwie und irgendwo anzeigen lassen? Hat man ja oft im Web, wenn man Bankseiten aufruft, dann läuft oben eine Uhr mit.

Re: DCREAD GUI und timeout [ERLEDIGT]

Verfasst: Mi, 23. Okt 2019 18:44
von Manfred
eine neue Frage tritt ans Licht. Ich habe gerade das hier versucht:

Code: Alles auswählen

TIMEOUT {300,{|| IF(DCMSGBOX "ACHTUNG dieser Programmteil 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,oDialogZusatz:nEditPlaner := 0,NIL);
                          };
                      };
das knallt. Kann man sowas nicht einbauen? Ich möchte gerne, das etwas zurückgesetzt wird, wenn der Timout greift, weil dann sicherlich keiner vor dem Bildschirm sitzt und dann darf eine nachgestellte Abfrage nicht erscheinen.

Re: DCREAD GUI und timeout [ERLEDIGT]

Verfasst: Do, 24. Okt 2019 7:33
von Wolfgang Ciriack
Da hast du das an der falschen Stelle eingebaut.
der Timeout Codeblock muss .T. oder .F. zurückliefern.

Code: Alles auswählen

{|| iif(oDialogZusatz:nEditPlaner := 0,  .T.,  (DCMSGBOX .....)) } 

Re: DCREAD GUI und timeout [ERLEDIGT]

Verfasst: Do, 24. Okt 2019 7:38
von Manfred
Wolfgang,
falsch verstanden. Es muß Timeout laufen, aber wenn Timeout greift und das Programm beendet, dann muß die Var auf 0 gesetzt werden.

Re: DCREAD GUI und timeout [ERLEDIGT]

Verfasst: Do, 24. Okt 2019 7:44
von Manfred
ok,
so scheint es zu klappen

Code: Alles auswählen

TIMEOUT {300,{|| IF(DCMSGBOX "ACHTUNG dieser Programmteil 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,(oDialogZusatz:nEditPlaner := 0,.T.),.F.);
                          };
                      };

Re: DCREAD GUI und timeout [ERLEDIGT]

Verfasst: Do, 24. Okt 2019 8:25
von Tom
Wenn nach "Achtung" ein Komma oder ein Bindestrich - umgeben von Leerzeichen - folgen, ist auch die B-Note fein. 8)

Re: DCREAD GUI und timeout [ERLEDIGT]

Verfasst: Do, 24. Okt 2019 8:30
von Manfred
:roll:

Re: DCREAD GUI und timeout [ERLEDIGT]

Verfasst: Do, 24. Okt 2019 10:03
von Tom
Ich gebe überlebenswichtige Tips und Du rollst mit den Augen, Manfred? :roll:

:wink:

Re: DCREAD GUI und timeout [ERLEDIGT]

Verfasst: Do, 24. Okt 2019 10:07
von Manfred
TOm,
ich bitte Dich. Woran denkst Du? Ich rollte mit den Augen weil mir sowas Dummes passiert ist.....

Re: DCREAD GUI und timeout [ERLEDIGT]

Verfasst: Do, 24. Okt 2019 10:11
von Jan
Hach, habt Ihr Euch mal wieder ganz doll lieb.

Jan

Re: DCREAD GUI und timeout [ERLEDIGT]

Verfasst: Do, 24. Okt 2019 10:13
von Manfred
ja, ich habe mich lieb. :lol:

Re: DCREAD GUI und timeout [ERLEDIGT]

Verfasst: Do, 24. Okt 2019 10:32
von Tom
Ich mich auch. :badgrin:

Re: DCREAD GUI und timeout [ERLEDIGT]

Verfasst: Do, 24. Okt 2019 10:33
von Manfred
siehst Du. Und wenn jeder an sich denkt, ist an alle gedacht. :badgrin:

Re: DCREAD GUI und timeout [ERLEDIGT]

Verfasst: Do, 24. Okt 2019 12:29
von Tom
Mein Ironiedetektor ist allerdings heute ein bisschen lädiert. Wie mein Treppenhaus, das die zwei Honks, die sich heute früh unser altes Sofa für umme abholen wollten, ein wenig überfordert hat. <fluchsymbole> :banghead:

Anyway, das war wirklich nett gemeint, der Hinweis auf den orthografischen Fehler. Wirklich. :)