AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi Aus- und Einblenden von Komponenten unter Android

Aus- und Einblenden von Komponenten unter Android

Ein Thema von amigage · begonnen am 4. Okt 2022 · letzter Beitrag vom 5. Okt 2022
Antwort Antwort
amigage

Registriert seit: 11. Nov 2005
Ort: Leipzig
270 Beiträge
 
Delphi 11 Alexandria
 
#1

Aus- und Einblenden von Komponenten unter Android

  Alt 4. Okt 2022, 14:49
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;
  Mit Zitat antworten Zitat
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
239 Beiträge
 
Delphi 12 Athens
 
#2

AW: Aus- und Einblenden von Komponenten unter Android

  Alt 4. Okt 2022, 15:41
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.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.324 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Aus- und Einblenden von Komponenten unter Android

  Alt 4. Okt 2022, 15:46
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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
amigage

Registriert seit: 11. Nov 2005
Ort: Leipzig
270 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Aus- und Einblenden von Komponenten unter Android

  Alt 4. Okt 2022, 16:21
Danke, das habe ich mir schon fast gedacht.
Dann muss ich wohl mit Timern arbeiten.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.097 Beiträge
 
Delphi 12 Athens
 
#5

AW: Aus- und Einblenden von Komponenten unter Android

  Alt 4. Okt 2022, 17:18
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.804 Beiträge
 
Delphi 12 Athens
 
#6

AW: Aus- und Einblenden von Komponenten unter Android

  Alt 4. Okt 2022, 18:58
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...
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.324 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Aus- und Einblenden von Komponenten unter Android

  Alt 5. Okt 2022, 06:38
Danke, das habe ich mir schon fast gedacht.
Dann muss ich wohl mit Timern arbeiten.
Noch besser wäre, wenn du es mit Events umsetzen könntest. Das lässt sich aber ohne Details nicht sagen.

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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz