Hallo,
ich bin ja aktuell dabei, mein Android Projekt von XE8 auf XE 10.3.3 umzustellen. Während in der 8 noch intensiv mit Application.Processmessages gearbeitet wurde (ja, war und ist böse, aber der Zweck heiligt die Mittel) funktioniert das ja in 10.3.3 nicht so wie bisher. Ich habe zB TAniIndicator. Wenn nun in der App etwas Rechenintensives passiert oder die App einfach mal auf was warten muss, dann wurde der TAniIndicator bisher mit Processmessages erfolgreich aktualisiert. Das klappt nun nicht mehr und sieht blöd aus, so als wenn alles hängt. Also versuche ich es so:
Code:
procedure ...UpdateComponents;
begin
...
If (progPlsWait) then progPlsWait.Repaint;
...
end;
Habe dann versucht, über einen HG-Thread die Proc dauernd zu aktualisieren:
Code:
CompUpdateTask := TTask.Create(
procedure
begin
Sleep(50);
TThread.Synchronize(TThread.Current,
procedure
begin
UpdateComponents;
end);
end);
CompUpdateTask.Start;
... und, wenn die Berechnung durch ist, das ganze freizugeben
Code:
CompUpdateTask.Cancel;
FreeAndNil(CompUpdateTask);
So, der Profi lacht, aber das funktioniert nicht, TAniIndicator wird nicht aktualisiert. Was mache ich falsch? Durchläuft CompUpdateTask nur einmal und ist danach tot, wie ein Thread auch?