Zitat von
Insider2004:
2. Problem
Das Application.ProcessMessages; macht es möglich, dass meine Procedure nochmals von "hinten" aufgerufen wird. Wie vermeide ich diese Rekursion?
Delphi-Quellcode:
procedure TForm1.OnButtonClick;
begin
for i := 0 to 2323324 do
begin
// ...
Application.ProcessMessages;
if FAborted then Break;
end;
end;
Wenn der Button einmal gedrückt wurde, kann man die Eigenschaft Enabled des Buttons auf False setzen und am Ende der Prozedur wieder auf True:
Delphi-Quellcode:
procedure TForm1.OnButtonClick;
begin
Button1.Enabled:= False;//Button1 gesperrt
for i := 0 to 2323324 do
begin
// ...
Application.ProcessMessages;
if FAborted then Break;
end;
Button1.Enabled:= True;//Button1 wird wieder aktiviert
end;
MfG
Binärbaum