Einzelnen Beitrag anzeigen

eike42

Registriert seit: 9. Mär 2010
18 Beiträge
 
RAD-Studio 2009 Ent
 
#1

Verhindern von Mehrfachaktionen in der GUI

  Alt 6. Jul 2010, 14:21
Moin zusammen,

ich war mir nicht sicher, wo das hier reinpasst, aber da es eher eine Frage zu Algorithmen an sich ist, schreibe ich es mal hier. Ggf bitte verschieben

Ich habe das folgende Problem, dass ich in meinem Programm öfters mal eine Aktion im onclick-Ereignis eines Controls ausführe, während der sämtliche anderen onclick-Ereignisse des Formulars bzw. der Applikation nicht funktionieren sollen. Logisch z.b., wenn ich meinen VirtualStringTree grade in ein File speichere, soll der Benutzer nicht parallel den Baum leeren oder ändern können. Ich habe bisher folgende Methoden gefunden, alle nicht ganz optimal, und wollte mal fragen ob es dazu eine generelle Vorgehensweise gibt, oder ob das jeder anders macht.
  • Screen.Cursor:=crHourglass -> schön, aber User kann noch klicken.
  • Form.enabled:=false -> User kann nicht mehr klicken, merkt aber nicht warum (der Cursor lässt sich dann nicht auf Sanduhr setzen).
  • Irgendein modales Form mit z.b. TProgress-Control drauf -> hübsch, funktioniert aber bei relativ kurzen (1-5s) Aktionen etwas Overkill.
  • Irgendein Untercontrol, z.B. TAdvPager oder TAdvOfficePager auf disabled false setzen -> Funktioniert und sieht gut aus, ist aber immer abhängig von der aktuellen
Form-Gestaltung.

Gibt es da noch etwas Besseres? Irgendwas Globales wie Application.blocked:=true o.ä.?

Vielen Dank und viele Grüße
Eike
Eike
  Mit Zitat antworten Zitat