Hallo Experten,
ich möchte in einem Programm verhindern, dass die ClickProcedure eines Buttons aufgerufen wird, während die eines anderen noch abgearbeitet wird.
Ich vermute, dass das Problem gar nicht auftreten würde, wenn ich nicht in jeder dieser Prozeduren eine Warteschleife hätte (die Application.Processmesages enthält).
Meine eigene Lösung sieht so aus: Ich führe eine Synchronisationsvariable ein (ActionAbgeschlossen : boolean) und ergänze jeweils in ....ButtonxyzClick....
Delphi-Quellcode:
if ActionAbgeschlossen then begin
ActionAbgeschlossen:=false;
{ hier kommt der eigentlich Code der Procedure }
ActionAbgeschlossen:=true;
end
Das klappt auch. Ich frage mich nur, ob sowas nicht eleganter mit Delphi-Bordmitteln funktioniert. Der Code wird dadurch ja nicht kürzer oder übersichtlicher, dass ich sowas in jede ButtonClick-Procedure einfüge ...
Für Tipps dankbar.
Gereon