Eine Möglichkeit wäre das Verschieben der Arbeit in einen anonymen Thread.
Delphi-Quellcode:
procedure TForm1.btn_createLocalDatasClick(Sender: TObject); // Aufruf aus dem Menü
begin
lbl_hinweis.Text := 'erzeuge lokale Daten...';
TThread.CreateAnonymousThread(procedure begin
createLocalDatas;
TThread.Synchronize(nil, procedure begin
lbl_hinweis.Text := 'fertig';
end);
end).Start();
end;