![]() |
button disablen ne funktion ausführen und wieder enablen?
procedure TForm1.Button1Click(Sender: TObject);
... begin Button1.Enabled := false; ... button1.Enabled := true; ... end; Wiso funzt das net??? Ich möchte das wenn man den Button drückt,er undrückbar gemacht werden soll, dann soll die Funktion ausgeführt werden und dann soll der button wieder drückbar gemacht werden, bezwecken möchte ich damit das man die funktion net zweimal starten kann oder erst wieder wenn sie abgelaufen ist. Gibts dafür nen anderen weg als meinen?? |
Re: button disablen ne funktion ausführen und wieder enablen
Natürlich funktioniert es so wie in deinem Beispiel.
Sehr wahrscheinlich wird deine Funktion so schnell abgearbeitet, daß du es nicht sehen kannst ob die entsprechende Button Eigenschaft sich verändert hat. |
Re: button disablen ne funktion ausführen und wieder enablen
Hallo Delphi Star,
was funktioniert daran nicht? Bei mir funktionierts (hab in der eigentlichen Prozedur nur ein sleep(3000) stehen. VieleGrüße, Sebastian |
Re: button disablen ne funktion ausführen und wieder enablen
Moin!
Dein Code ist schon richtig, das Problem ist einfach nur das deine Routine so schnell ausgeführt wird, das du nicht siehst, das der Button grau ist... MfG Muetze1 |
Re: button disablen ne funktion ausführen und wieder enablen
Mein Progi stürzt ab sobald ich denn button dücke, ich hab aber keinen normalen button sondern denn mit dem bild (find den Namen grad net)
|
Re: button disablen ne funktion ausführen und wieder enablen
Moin!
TBitBtn vermutlich. Der Absturz hat aber nix mit dem hier gezeigten Code zu tun, daher zeige mal an, welche Exception kommt. Ich vermute jetzt mal ganz dumm einen EStackOverflow... MfG Muetze1 |
Re: button disablen ne funktion ausführen und wieder enablen
es geht jetzt aber wenn ich den button drücke wird er zwar grau, aber wenn ich dann noch mal drauf drücke während er grau ist wird die funktion nach dem abschluss des ersten males gleich noch mal ausgeführt
|
Re: button disablen ne funktion ausführen und wieder enablen
logisch. weil während er disabled ist die funktion ausgeführt wird, und wenn der klick verarbeitet wird (nach der funktion) er wieder enabled ist. musst du dir was anderes überlgen
|
Re: button disablen ne funktion ausführen und wieder enablen
wie wärs mit einem application.processmessages vor und nach dem ausführen der funktion?
|
Re: button disablen ne funktion ausführen und wieder enablen
Was ist eine application.processmessages und wie benutzt man das oder was für nen befehl braucht man dauür
|
Re: button disablen ne funktion ausführen und wieder enablen
Application.ProcessMessages bringt das Programm dazu, die eingehenden Messages zu verarbeiten. wenn man z.b. eine schleife hat, die 10000 mal ausgeführt wird, und in die schleife ein ProcessMessages macht, dann kann man die z.b. form während dem ausführen der schleife trotzdem noch bewegen (die schleife wird aber langsamer). schreib einfach mal Application.ProcessMessages hin. die 3te frage hab ich mit meiner 1sten Antwort beantwortet ;)
|
Re: button disablen ne funktion ausführen und wieder enablen
wo muss ich Application.ProcessMessages hinmachen ich habs einfach mal an das Ende oder den Anfang geschrieben, bringt aber nix, was mach ich falsch :gruebel:
|
Re: button disablen ne funktion ausführen und wieder enablen
eigentlich so
Delphi-Quellcode:
wenns nich geht, hab ich auch keine andere lösung..
Application.ProcessMessages;
[FUNKTION] Application.ProcessMessages; |
Re: button disablen ne funktion ausführen und wieder enablen
Warum nimmst du nicht einfach einen Boolean? So frei nach
Delphi-Quellcode:
Damit wird jeder Klick ignoriert so lange gerechnet wird.
Button.onclick
begin if BinAmRechnen then begin showmessage('Ich rechne noch'); exit; end; else begin BinAmRechnen:=true; langeprocedure; end; BinAmRechnen:=false; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:12 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