Speichern der Maske über ESC-Taste verhndern

  • Hallo zusammen,


    ich habe folgendes Problem:


    Ich möchte in einer Maske verhindern, dass der User diese über die ESC-Taste speichern kann.
    D.h. ich habe einen Button 'Speichern', über den der User speichern darf.
    Das Verlassen der Maske ohne Speichern kann ruhig über die ESC-Taste erfolgen.


    Beim Drücken der ESC-Taste würde ich dann gerne eine MessageBox haben, wo dem User mitgeteilt wird, dass das Speichern nur über den Button funktioniert und er jetzt die Möglichkeit hat, das Dokument ungespeichert zu verlassen.


    Es sollen zukünftig noch weitere Buttons kommen, die das Dokument in den Bearbeitungsmodus versetzen, etwas ändern, speichern und das Dokument wieder in den Lesemodus zurücksetzen bzw. es komplett verlassen.
    Dieses Speichern sollte dann auch im Hintergrund passieren, ohne dass der User etwas gefragt wird.


    Wie gehe ich denn hierbei am besten vor?


    Danke im Voraus für Eure Hilfe!



    Viele Grüße
    ComputerFee

  • Hi,


    Ich habe mir einmal so geholfen.


    - in den globalen Definitionen der Maske eine Variable definiert
    - im QueryOpen der Maske diese Variable mit einem bestimmten Wert belegt
    - im QuerySave den Wert dieser Variablen abgefragt
    - steht dieser immer noch auf dem Wert wie im QueryOpen, dann wurde der Button nicht verwendet
    - im Button den Wert dieser Variablen umschreiben (anderer Wert)



    Andreas

    • Offizieller Beitrag

    Warum?


    Im QuerySave kannst Du auch alles machen was Deine Schaltfläche macht.


    User sind "Gewohnheitstiere", deshalb würde ich nicht unterbinden, dass das Speichern mit ESC geht.


    Dies hat etwas mit Softwareergonomie und Erwartungskonformität zu tun.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Und Strg+S nicht zu vergessen...

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Hallo,


    @ Andreas:


    Danke für deine Lösung.
    Ich habe es gerade ausprobiert und es hat auch so funktioniert, wie ich mir das vorgestellt habe.



    @ Dirk:
    Prinzipiell fände ich es auch besser, alle Speicher-Möglichkeiten nur an einer Stelle pflegen zu müssen/können.
    Es ist aber so, dass es verschiedene Buttons (z.Bsp. zum Genehmigen) gibt/geben soll, in denen dann auch gespeichert werden soll.
    Aktuell habe ich einen Button auf der Maske selber, mit der der User das Dokument für die nächste Instanz freigibt. Dabei werden Status-Felder gesetzt, die für den weiteren Workflow benötigt werden.


    Ich habe aktuell keine Idee, wie ich im querysave abfangen kann, welcher Button nun gedrückt wurde, um dann die jeweiligen Aktionen auszuführen.


    Für Anregungen bin ich gerne offen.



    Viele Grüße
    Michaela

  • Manchmal liegt das naheliegendste so weit weg. *seufz*


    Auf die Idee mit dem Flag bzw. der Variablen bin ich einfach nicht gekommen.


    Danke!!


    Dann mache ich mich mal ans Umsetzen und Testen.



    Liebe Grüße
    Michaela