AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung iOS ActivityIndicator nach dem Programmstart

ActivityIndicator nach dem Programmstart

Ein Thema von Crocotronic · begonnen am 19. Jan 2014 · letzter Beitrag vom 21. Jan 2014
Antwort Antwort
Seite 2 von 3     12 3   
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

AW: ActivityIndicator nach dem Programmstart

  Alt 19. Jan 2014, 17:31
Entweder willst du mich trollen oder du hast wirklich keine Ahnung...
Wieso, du willst doch keinen extra Thread. Dann geht das so - eben nicht toll, aber du willst es doch so.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Crocotronic

Registriert seit: 9. Mai 2013
258 Beiträge
 
#12

AW: ActivityIndicator nach dem Programmstart

  Alt 19. Jan 2014, 17:34
Du weißt um was es geht? iOS und so?
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#13

AW: ActivityIndicator nach dem Programmstart

  Alt 19. Jan 2014, 17:35
oder du hast wirklich keine Ahnung...
Ertappt. Ich tu immer nur so. Aber Du kannst es ja trotzdem einfach mal so ausprobieren.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#14

AW: ActivityIndicator nach dem Programmstart

  Alt 19. Jan 2014, 18:15
Du weißt um was es geht? iOS und so?
Ja, deswegen ja auch der Hinweis von mir auf den separaten Thread.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#15

AW: ActivityIndicator nach dem Programmstart

  Alt 19. Jan 2014, 18:38
Ich kenne IOS nicht, aber ich vermute, das es sich auch um ein Betriebssystem handelt, welches noch auf den normalen SISD-CPUs in klassischer Von-Neumann-Architektur aufbaut. Danach wäre es eine serielle Abfolge von Befehlen, die Du umzusetzen gedenkst. Obwohl das bescheuert ist und beim FMX im Detail vermutlich anders ausschaut, ist es doch so, das Du einfach deine Befehle zum kompletten Laden ausführen musst, bevor das Haupformular sichtbar wird.
So wie ich die API durchschaue, ist sie wirklich der VCL nachempfunden, sodaß mein Code vermutlich so oder ähnlich doch funktionieren könnte.
  Mit Zitat antworten Zitat
Crocotronic

Registriert seit: 9. Mai 2013
258 Beiträge
 
#16

AW: ActivityIndicator nach dem Programmstart

  Alt 19. Jan 2014, 18:42
Okay, mal ein Beispiel: Das hier will ich zum Laufen bekommen
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject); // Gleiches Ergebnis im OnFormCreate
begin
 ZeigeActivityIndicator('test');
 Sleep(10000);
 VersteckeActivityIndicator
end;
Was passiert?
Der Splash-Screen erscheint solange, bis die 10 Sekunden rum sind.
Was soll es tun?
Das Formular anzeigen und ein ActivityIndicator 10 Sekunden lang kreiseln lassen
Ein Thread würd das Problem lösen, aber 1000 andere aufwerfen.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#17

AW: ActivityIndicator nach dem Programmstart

  Alt 19. Jan 2014, 18:48
Ein Thread würd das Problem lösen, aber 1000 andere aufwerfen.
Quatsch. Versuche es mal mit Dazulernen, Du gehst doch mittlerweile auch ohne Mutti über ne grüne Ampel, ne wahr?
Aber wenn Du eben partout allergisch auf Threads (und damit auf den Ansatz professioneller Software) bist, dann musst Du eben anders ans Ziel kommen:
Anstatt also einen Helfer vor die Tür zu schicken, der vor dieser Auf und Ab geht und ein Schild 'I am the Activity Indicator' vor sich her dreht, während im Hinterstübchen die Arbeit gemacht wird, mach die Arbeit halt auf der Straße und renne alle paar Arbeitsschritte nach vorne, dreh kurz am Schild und mach dann weiter, wenn Du verstehst, was ich meine.
Delphi-Quellcode:
Procedure VielArbeit();
Begin
  ZeigDenActivityIndicator();
  Schritt1;
  StubsDenActivityIndicator();
  Schritt2;
  StubsDenActivityIndicator();
  ...
  VerbergeDenActivityIndicator();
End;
Mal sehen, was Du jetzt antwortest.
  Mit Zitat antworten Zitat
Crocotronic

Registriert seit: 9. Mai 2013
258 Beiträge
 
#18

AW: ActivityIndicator nach dem Programmstart

  Alt 19. Jan 2014, 19:24
Anstatt also einen Helfer vor die Tür zu schicken, der vor dieser Auf und Ab geht und ein Schild 'I am the Activity Indicator' vor sich her dreht, während im Hinterstübchen die Arbeit gemacht wird, mach die Arbeit halt auf der Straße und renne alle paar Arbeitsschritte nach vorne, dreh kurz am Schild und mach dann weiter, wenn Du verstehst, was ich meine.
Es geht mir in erster Linie doch gar nich um das "Schild", sondern um das Problem, dass der User die 10 Sekunden auf den Splash-Screen guckt, anstatt auf das Formular! Alles, was ich will ist, dass die Arbeit erst gestartet wird, wenn das verdammte Formular fertig geladen wurde und alle Controls schön angezeigt werden.
Ein Thread wäre in meinem Fall völlig overdressed, weil bevor die Handlung abgeschlossen ist, nichts anderes passieren darf. Außerdem würde es z.B. Probleme mit dem Datenbankzugriff geben (sqlite->ein Zugriff zur selben Zeit)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#19

AW: ActivityIndicator nach dem Programmstart

  Alt 19. Jan 2014, 20:26
@Furtbichler Nein das geht nicht unter iOS... Abgesehen davon ist der SplashScreen im Systemkern und kann/muss nicht manuell aufgerufen werden.

So und jetzt noch mal:

Du hast ca. 1-2 Sekunden Zeit bis die App im ersten Application Idle sich im iOS Systemkern meldet als "ich bin geladen".

Wenn Du im 1. FormOnShow länger brauchst, wirst Du vom iOS Betriebssystem SOFORT terminiert!


Mavarik
  Mit Zitat antworten Zitat
Crocotronic

Registriert seit: 9. Mai 2013
258 Beiträge
 
#20

AW: ActivityIndicator nach dem Programmstart

  Alt 19. Jan 2014, 20:35
Also wäre das einfachste Workaround, im OnFormShow ein Timer (Interval auf 10 ms oder so) zu starten, der nur einmal ausgeführt wird?
Das ganze in ein Thread zu packen würde jetzt viel zu viel arbeit machen, da eigentlich schon fast alles fertig ist.
  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 01:25 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