![]() |
Aus- und Einblenden von Komponenten unter Android
Hallo,
kann mir jemand bitte erklären, warum nachfolgender FMX Code unter Windows funktioniert, unter Android aber das Aus- und Einblenden von Komponenten nicht umgesetzt wird? D.h. die Combobox wird nicht ausgeblendet und das Label wird nicht sichtbar...
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin Combobox1.Visible := false; Application.ProcessMessages; Sleep(1000); Label1.Visible := true; Application.ProcessMessages; Sleep(1000); Combobox1.Visible := true; Label1.Visible := false; Application.ProcessMessages; Showmessage('Ende'); end; |
AW: Aus- und Einblenden von Komponenten unter Android
Auf Android und IOS kannst du nicht den Main-Thread blockieren, d.h. das Sleep wird gepflegt ignoriert.
Deswegen läuft dort auch generell alles asynchron ab. Auf Windows hält das Programm bei einer ShowMessage an, auf Android & IOS läuft es direkt weiter. Um das von dir angegebene Verhalten zu implementieren, müsstest du daher entweder mit Timern, Threads und/oder Animationen arbeiten. |
AW: Aus- und Einblenden von Komponenten unter Android
Um es deutlich zu sagen:
Das ist unter den mobilen Plattformen nicht nur in Delphi so umgesetzt, sondern das (kurz gesagt) asynchrone Verhalten ist auch Voraussetzung für die Aufnahme einer App in die App-Stores. |
AW: Aus- und Einblenden von Komponenten unter Android
Danke, das habe ich mir schon fast gedacht.
Dann muss ich wohl mit Timern arbeiten. |
AW: Aus- und Einblenden von Komponenten unter Android
In Delphi (Windows) ist alles Message-bassiert, mit einer Warteliste (MessageQueue) für die Messages,
wärend Android und iOS Event-basiert arbeiten. Ja, man kann bedingt auch Messages im Android/iOS verwenden, weil Delphi sich dort quasi teilweise was Eingenes für gebaut hat. |
AW: Aus- und Einblenden von Komponenten unter Android
Nur ist das Delphi eigene Messaging nicht synchron? Ich glaube mein QP Feature Request das auch asynchron umzusetzen ist noch nicht umgesetzt, ich denke er ist noch offen...
|
AW: Aus- und Einblenden von Komponenten unter Android
Zitat:
Wenn du z.B. eine Verbindung herstellst, kannst du statt in einem Timer zu prüfen, ob die Verbindung hergestellt ist, auf das Ereignis OnConnect reagieren. Dann sparst du das Polling und die Reaktion ist direkter. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz