AGB  ·  Datenschutz  ·  Impressum  







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

ActivityIndicator nach dem Programmstart

Ein Thema von Crocotronic · begonnen am 19. Jan 2014 · letzter Beitrag vom 21. Jan 2014
Antwort Antwort
Crocotronic

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

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.154 Beiträge
 
Delphi 10.3 Rio
 
#2

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
 
#3

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
Benutzerbild von Sir Rufo
Sir Rufo

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

AW: ActivityIndicator nach dem Programmstart

  Alt 19. Jan 2014, 21:19
Das stimmt, es ist zu aufwendig den Code zum Laden in die Execute Methode zu verfrachten und das OnTerminate Event mit der MainForm zu verbinden, um dann die Form freizugeben.
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
 
#5

AW: ActivityIndicator nach dem Programmstart

  Alt 19. Jan 2014, 21:49
Scherzkeks.
Ich habe nicht erwähnt, dass bei der "Aufgabe" Assoziationen zu 4 anderen Objekten bestehen, mit unter auch der GUI.
  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
 
#6

AW: ActivityIndicator nach dem Programmstart

  Alt 19. Jan 2014, 22:07
Scherzkeks.
Ich habe nicht erwähnt, dass bei der "Aufgabe" Assoziationen zu 4 anderen Objekten bestehen, mit unter auch der GUI.
Evtl. hast du vergessen, was du machen wolltest
Zitat von Crocotronic:
beim Programmstart werden in meiner App Daten heruntergeladen
Lad das im Threadkontext herunter, befülle die Objekte (evtl. sperren mit Delphi-Referenz durchsuchenTCriticalSection und die GUI kannst du zwischendurch auch mit Delphi-Referenz durchsuchenTThread.Synchronize bzw. besser mit Delphi-Referenz durchsuchenTThread.Queue bearbeiten.

Ich vermute aber mal, dass du da zu kompliziert denkst und dort einiges vermischst.

Wenn mit der GUI nicht gearbeitet werden kann (warten) dann kann das Bearbeiten von GUI Objekten auch warten bis der Thread fertig ist. Die Daten liegen ja eh nicht in den GUI Objekten (oder etwa doch, dann ist es ein Designfehler)
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)

Geändert von Sir Rufo (19. Jan 2014 um 22:31 Uhr)
  Mit Zitat antworten Zitat
Crocotronic

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

AW: ActivityIndicator nach dem Programmstart

  Alt 19. Jan 2014, 22:20
Lad das im Threadkontext herunter, befülle die Objekte (evtl. sperren mit Delphi-Referenz durchsuchenTCriticalSection und die GUI kannst zwischendurch auch mit Delphi-Referenz durchsuchenTThread.Synchronize bzw. besser mit Delphi-Referenz durchsuchenTThread.Queue bearbeiten.
Nagut, du hast mir Mut gemacht, meine Angst gegenüber Threads zu überwinden Werde mich morgen mal dran machen...
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:45 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