Einzelnen Beitrag anzeigen

Viktorii

Registriert seit: 19. Jul 2007
358 Beiträge
 
#1

VCL Elemente in geblocktem Ereignishandler disablen

  Alt 21. Aug 2012, 07:47
Moin.

Wie im Titel schon geschrieben möchte ich VCL Elemente (vier Buttons) in einer Ereignishandler eines Buttons disablen.

Dieser Ereignishandler ist für eine gewisse Zeit geblockt und während dieser Zeit sollen die Buttons disabled sein. Da beim Blocken ja keine Window Messages verarbeitet werden können, habe ich es mit repaint, refresh und processmessages probiert. Alles ohne Erfolg:

Delphi-Quellcode:
procedure TForm2.Button2Click(Sender: TObject);
begin
  button1.Enabled := false;
  button1.Refresh;
  button1.Repaint;
  button2.Enabled := false;
  button2.Refresh;
  button2.Repaint;
  button3.Enabled := false;
  button3.Refresh;
  button3.Repaint;
  button4.Enabled := false;
  button4.Refresh;
  button4.Repaint;

  Form2.Refresh;
  Form2.Repaint;

  Application.ProcessMessages;

  sleep(5000);

  button1.Enabled := true;
  button2.Enabled := true;
  button3.Enabled := true;
  button4.Enabled := true;
end;
Es wird nur der geklickte Button disabled. Alle anderen Buttons werde erst nach den fünf Sekunden disabled und sofort wieder enabled.

Wie muss ich es richtig machen?
  Mit Zitat antworten Zitat