Versuch mal den Synchronize durch Queue zu ersetzen, das ist in der Regel unkritisch
Das hatte ich auch schon versucht. Es bleibt dabei: lbl_hinweis.text erscheint sofort und createLocalDatas wird durchlaufen, aber der Hinweistext bleibt danach stur erhalten. Ich hatte auch schon versucht, am Ende der createLocalDatas-procedure einen 2. Thread zu machen, in dem der Hinweistext wieder verschwinden soll - Pustekuchen! Ich's auch schon mit ITask versucht:
Delphi-Quellcode:
procedure TForm1.btn_createLocalDatasClick(Sender: TObject); // Aufruf aus dem Menü
var aTask: ITask;
begin
lbl_hinweis.Text := 'erzeuge lokale Daten...';
aTask := TTask.create(
procedure
begin
createLocalDatas;
TThread.Queue(nil, // oder .synchronize(nil ...
procedure
begin
lbl_hinweis.Text := 'fertig';
end);
end);
aTask.Start;
end;
Hat leider auch nichts gebracht. Es ist zum Verzweifeln!