Delphi-Quellcode:
...
TThread.Synchronize(
nil,
procedure
begin
try
if frm_Start.OpenDialog.Execute
then
frm_Start.UniDump.RestoreFromFile(frm_Start.OpenDialog.Filename);
except
on E:
Exception do
ShowMessage(E.
Message);
end;
end;
...
...
TThread.Synchronize(
nil,
procedure
begin
doit :=
if frm_Start.OpenDialog.Execute;
filename := frm_Start.OpenDialog.Filename;
end;
if doit
then
try
RestoreFromFile(filename);
except
on E:
Exception do
TThread.Synchronize(
nil,
procedure
begin
ShowException(E,
nil);
end;
end;
...
bzw. wenn der Code in einem TThread-Execute steht, dann direkt
Delphi-Quellcode:
Synchronize(procedure
begin
end;
Sowas sollte man nur für kurze Funktionen nutzen, aber dafür kann man, bei diesen anonymen Methoden, auch lokale Variablen übergeben.