Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - button-Klick
Smartie - Mi 15.06.05 08:23
Titel: button-Klick
Hallo,
ich habe eine hoffentlich einfache Frage:
Wenn ich auf einen Button klicke, sowird ja alles ausgeführt, was an Prozeduren und funktionen, und eigenständigem code in der On-Click-Prozedur des Buttons steht.
Ok, soweit ist alels klar aber, wenn das Abarbeiten dieser ganzen Dinge gut und gerne ein bis zwei Sekunden dauert, und ich klicke schon nach einer halben Sekunde nochmal auf diesen Button, wird dann der Vorgang unterbrochen, udn beginnt das spiel von Vorn, oder arbeitet er erstmal alles schön brav ab, bevor er weitergeht?
Lieben Gruß
Smartie
Chatfix - Mi 15.06.05 08:34
Gute Frage, theoretisch müsste er erst zu ende machen und dann nochmal beginnen.
Ich löse das Problem so in dem ich den Button bei OnClick Begin auf Disabled setze und zum Schluss wieder Enebled mache.
So kann niemand den Button ncohmal drücken während die Prozedur läuft.
Smartie - Mi 15.06.05 08:44
Super, danke
Und wie genau mach ich des?
Form1.Button3.OnClick := disabled; frist er ja nicht, da gibts sicher irgendeinen OOP-spezifischen Befehl, hab den aber bisher nicht gefunden.
Danke und Lieben Gruß
Smartie
Chatfix - Mi 15.06.05 08:47
Delphi-Quelltext
1: 2:
| Button1.Enabled := False; Button1.Enabled := True; |
Smartie - Mi 15.06.05 08:53
Herzlichen Dank!
Das Problem, das ein Weiterer Button zu früh geklickt werden könnte habe ich im Übrigen so gelöst, in der Form ein "Warte_Bool := false" gesetzt,, am Ende von Button1 auf true, und im Zweiten Button "Nur wenn "Warte_Bool = true tue..." *g*
Danke und lieben Gruß
Smartie
Chatfix - Mi 15.06.05 08:57
Ja wenn du den Button aber Disablest kannst du vielleciht auch das Warte_Bool weglässt, in dem du nciht nach Warte_bool fragst sondern so vielleicht:
Delphi-Quelltext
1: 2: 3: 4:
| if Button1.Enabled then else |
Das ist aber nur ein Vorschlag und ich weiss ja auch nciht genau was du vorhast, also kannst du auch gern dein Warte_Bool lassen.
Schön das es funktioniert :)
jasocul - Mi 15.06.05 09:08
Oder alle Komponenten (Button) auf ein panel legen und dann nur noch das panel disablen.
Smartie - Mi 15.06.05 09:21
Ich hab das mit insgesamt 3 Warte_Bools gemacht, Warte_Bool0, 1 und 2.
Es geht darum, das da zwar 4 Buttons sind, aber der anwender einen NACH dem andres drücken muß. Um ihm aber Optionen freizustellen, kann ich nicht so handeln, da der DAU (Den ich hier autricksen möchte, deswegen programier ich noch an dem Projekt *g*), ja auf die Glorreiche idee kommen könnte, wie ein blöder durch die Gegend zu klicken.
Und deswegen kann dpe Prozedur von Button 2 nur gedrückt werden, wenn die entsproechende in button1 schon abgehandelt wurde, und am ende der Warte_Bool0, also für den Button 2 auf true gesetzt wurde.
Zusätzlich, um die "Wenn-ich-5-mal-ganz-schnell-hintereinander-Klicke-gehts-schneller"-User aufzuhalten, nutze ich Eure enable-methode, von Anfang-Ende-Prozedur beim button.
Also, Click-Sich selbst ausschalten-abarbeiten-sich selbst einschalten.
Herzlichen Dank nochmals,
Smartie
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!