Einzelnen Beitrag anzeigen

mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
640 Beiträge
 
Delphi 10.1 Berlin Professional
 
#16

AW: OpenDialog - Relikt in *.pgn-Tool

  Alt 22. Dez 2014, 15:56
Hallo Uwe,

über diese Nebeneffekte von Application.ProcessMessages habe ich schon geflucht wie ein Hufschmied. Aber, sobald man dann mal konkret eine Frage nach einer Alternative stellt, gibt's meistens entweder keine Antwort, oder welche mit so viel "wenn und aber" drin, dass sich mir eine bessere Alternative bisher nicht erschlossen hat: Bei modalen Aufrufen und sonst wo es geht, Form.Enabled:=false, oder die Komponente(n) die eine Rekursion auslösen könnten disablen, während eine Aktion läuft.

In diesem Fall müsste man halt den SpeedButton disablen, um sicher zu gehen.

Delphi-Quellcode:
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  SpeedButton1.Enabled := false;
  try
    Tu was
  finally
    SpeedButton1.Enabled := true;
    Application.Processmessages;
  end;
end;
Für alternative oder bessere Vorschläge hab ich immer ein offenes Ohr!
Gruss Otto
Wenn du mit Gott reden willst, dann bete.
Wenn du ihn treffen willst, schreib bei Tempo 220 eine SMS
  Mit Zitat antworten Zitat