Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
Delphi 10.3 Rio
|
AW: 10.2 und Android...
10. Jun 2017, 13:39
PS.: Unnötig zu sagen, dass FMX ohne den OnIdleEvent nicht zu gebrauchen ist...
Das brauchten wir bisher unter Android nicht. Wofür brauchst du das?
Bei uns läuft alles in Threads, was wir vorher mit OnIdle gemacht hatten. Allerdings nicht wegen Android, sondern weil es vorher keine gute Lösung war. (Nutzung für eine asynchrone Eventqueue.)
Beispiel:
Delphi-Quellcode:
Procedure TForm1.ButtonClick(Sender : TObject)
begin // Jegliche Animation: Focus ButtonDown Farbe setzen usw. Läuft im UI-Thread mit einem Timer
Proc_Dauert_10Sekunden_kann_nichtimThread(true); // Keine Reaktion für den User...
end;
Daher immer:
Delphi-Quellcode:
Procedure TForm1.ButtonClick(Sender : TObject)
begin // Jegliche Animation: Focus ButtonDown Farbe setzen usw. Läuft im UI-Thread mit einem Timer
TIdleWorker.Default.Execute(Procedure // Wir ausgeführt im nächsten OnIdleEvent...
begin
Proc_Dauert_10Sekunden_kann_nichtimThread(true); // Keine Reaktion für den User...
end);
end;
oder
Delphi-Quellcode:
Procedure TForm1.ListBox1Click(Sender : TObject)
var
Layout : TLayout;
begin
Layout := TLayout.Create(NIL);
Layout.Parent := TListListBoxItem(Sender);
Layout.Align := TAlignLayout.Client;
TIdleWorker.Default.Execute(Procedure // Wir ausgeführt im nächsten OnIdleEvent...
begin
Whatever := Layout.Height; // Erst korrekt belegt nachdem sich die UI-Fertig aufgebaut hat...
end);
end;
usw. Aber das war nicht die Frage...
Mavarik
|