Ohne mir das jetzt genauer angesehen zu haben (will jetzt den Matratzenhorchdienst starten), vermute ich mal, dass hier eine Animation verwendet wird, um den Switch gleiten zu lassen. Evtl. ist die Ausführung noch nicht zu Ende und Du versuchst direkt schon wieder den Switch zurückzusetzen und da kommt sich halt irgendwas ins Gehege.
So kannst Du es jedenfalls machen:
Delphi-Quellcode:
procedure TForm14.SetSwitchToFalse;
begin
Switch1.IsChecked := false;
end;
procedure TForm14.Switch1Switch(Sender: TObject);
var
T: ITask;
begin
T := TTask.Create(procedure ()
begin
TThread.Synchronize(
nil,
procedure
begin
Self.SetSwitchToFalse;
end);
end);
T.Start;
end;