Autor Beitrag
Smartie
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 205



BeitragVerfasst: Mi 15.06.05 08:23 
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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1583
Erhaltene Danke: 10

Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
BeitragVerfasst: 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.

_________________
Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
Smartie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 205



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1583
Erhaltene Danke: 10

Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
BeitragVerfasst: Mi 15.06.05 08:47 
ausblenden Delphi-Quelltext
1:
2:
Button1.Enabled := False; // Disable
Button1.Enabled := True;  // Enable

_________________
Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
Smartie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 205



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1583
Erhaltene Danke: 10

Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
BeitragVerfasst: 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:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
if Button1.Enabled then
  // OK Alle Aktionen dürfen ausgeführt werden
else
  // Prozedur läuft noch, nix unternehmen


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 :)

_________________
Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 15.06.05 09:08 
Oder alle Komponenten (Button) auf ein panel legen und dann nur noch das panel disablen.
Smartie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 205



BeitragVerfasst: 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