![]() |
Mehrfachklick auf Schaltfläche Problem
Hallo!
Ich habe das Problem das bei meiner FMX Anwendung (Windows). Habe mehrere dynamisch erzeugte TCornerButton's, die Datenbankoperationen durchführen. Nun ist es so, das ein Kunde auf diese Schaltfläche doppelt oder sogar mehrfach klickt. Das heisst die Befehle "hinter" den Buttons werden auch mehrfach ausgeführt. Ist auch logisch - NUR setzte ich zu Beginn immer Button.Enabled = FALSE um eben dies zu verhindern. Es sieht also so aus as wäre die UI [FMX] zu langsam. Lösung -> ProcessMessages -> was ich auf keinen Fall verwenden will. Natürlich könnte ich globale Vars setzten, aber ist auch keine "schöne" Lösung. Wie macht ihr das bei euren Projekten?? PS: Ich bin auch noch nie auf die Idee gekommen auf eine Schaltfläche mehrfach zu drücken! :? |
AW: Mehrfachklick auf Schaltfläche Problem
Lies doch mal hier nach:
![]() |
AW: Mehrfachklick auf Schaltfläche Problem
Der Kern des Problems liegt hier
Delphi-Quellcode:
In der Zeit, wo diese Ausführung läuft ist der UI-Thread gesperrt, bzw. beschäftigt und alle auftretenden Aktionen (Klick auf einen Button, Eingabe von Text) werden nicht abgearbeitet. Diese laufen aber in eine Message-Queue und werden abgearbeitet sobald der UI-Thread wieder Zeit hat.
procedure TMyForm.Button1Click( Sender: TObject );
begin Button1.Enabled := false; // Irgendwas ausführen, was ein klein wenig dauert Button1.Enabled := true; end; Und da zu diesem Zeitpunkt der Button wieder aktiv ist, wird auch brav der Button-Klick ausgeführt ;) Darum sollten alle Aktionen, die länger als 50 Millisekunden dauern, in einen Thread ausgelagert werden. |
AW: Mehrfachklick auf Schaltfläche Problem
Danke für eure Antworten.
Hab's verstanden. Wundere mich nur wie mache Benutzer arbeiten. Hab das vorher getestet - aber bin nie auf die Idee gekommen, das man auf eine Schaltfläche mehrfach klicken sollte.. :lol: Wieder was gelernt - und - würde das as TRY UI - USER EXCEPTION bezeichnen.. :stupid: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz