German Startbild während Programmstart anzeigen

Paulsche

Well-Known Member
Licensed User
Longtime User
Hallo,

mein Programm benötigt beim starten ca. 4-5 Sekunden bis alle Panels, Layouts und Berechnungen erledigt sind, in der Zeit ist der Bildschirm schwarz.
Nun möchte ich gerne in der Startzeit ein Bild anzeigen lassen.

Es gibt ein paar Theads mit Splashpanel usw. die habe ich alle schon durchprobiert, geht bei meinem Programm einfach nicht.

Ich habe es mit folgendem Code zwar hinbekommen dass das Bild vor dem eigentlichen Layout angezeigt wird, aber bis das Bild angezeigt wird bleibt der Bildschirm genauso die 4-5 Sekunden schwarz, verlängert also das Starten nur.

Ich möchte das Bild schon anzeigen während die ganzen Subs beim Starten abgearbeitet werden, ist das überhaupt möglich, wenn wie ich festgestellt habe wird das Startbild (Startbildpanel) erst angezeigt wenn der ganze Code im "Activity_Create" durchgearbeitet ist.

Wenn ich nach dem "timer1.Enabled = True" eine MSGBox(" ","") einfüge,
wird das Bild sofort angezeigt und nach OK bestätigen bleibt das Bild bis das richtige Layout geladen ist, so wäre es richtig.

B4X:
Sub Activity_Create(FirstTime As Boolean)
   DateTime.DateFormat ="dd.MM.yy"
   scv02Tabelle.Initialize(0)                                    ' Scrollview für Tanktabelle
   pnl02headerTabelle.Initialize(0)                              ' Panel für Header der Tanktabelle
   Activity.AddMenuItem("Extras","MNU_extras")
   Activity.AddMenuItem("Einstellungen","MNU_einstellungen")
   Activity.AddMenuItem("Fahrzeuge","MNU_kfz_verwaltung")
   Activity.AddMenuItem("?","MNU_info")
   activity.Title      ="HB-Spritverbrauch"
   pnl02scroll       = scv02Tabelle.Panel

   If FirstTime Then 
      Startbildpanel.Initialize("Startbildpanel")
      activity.AddView(Startbildpanel,0dip,0dip,320dip,480dip)
      Startbildpanel.LoadLayout("Startbildlayout")
      Startbildpanel.Visible   = True
      timer1.Initialize("Timer1",5000)
      timer1.Enabled = True
      
      chooser.Initialize("chooser")
   End If

   If File.Exists(File.DirDefaultExternal, "Tankdaten.db") = False Then         ' wenn Tankdaten DB nicht vorhanden
      If SQLtnk.IsInitialized = False Then
         SQLtnk.Initialize(File.DirDefaultExternal, "Tankdaten.db", True)      ' Tankdaten DB initialisieren
      End If
      SQLtankdatenCreate                                             ' Tankdaten DB erstellen
   Else                                                         ' Tankdaten DB ist vorhanden
      If SQLtnk.IsInitialized = False Then
         SQLtnk.Initialize(File.DirDefaultExternal, "Tankdaten.db", True)      ' Tankdaten DB initialisieren      
      End If
   End If
   
   If File.Exists(File.DirDefaultExternal, "KFZdaten.db") = False Then            ' wenn KFZ DB nicht vorhanden
      If SQLkfz.IsInitialized = False Then
         SQLkfz.Initialize(File.DirDefaultExternal, "KFZdaten.db", True)         ' KFZ DB initialisieren
      End If
      SQLkfzdatenCreate                                             ' KFZ DB erstellen
   Else
      If SQLkfz.IsInitialized = False Then
         SQLkfz.Initialize(File.DirDefaultExternal, "KFZdaten.db", True)         ' KFZ DB initialisieren
      End If
   End If
   
   SetPanels                                                      ' Panels mit Layouts definieren
   init                                                         ' verschiedene initialisierungen
   SetPosStartseite                                                ' Startseite Views positionieren
   setposTankenseite                                                ' Tankenseite Views positionieren
   SetPosTabelle                                                   ' Tabellenseite positionieren
   SetPosExtras                                                   ' Extras Menü positionieren
   SetPosKFZ                                                      ' KFZ Menü positionieren
   SetPos_Statistiken_Auswahl                                          ' Statistiken Auswahlmenü Buttons positionieren
   SetPos_Stat_JahrAlle                                             ' Statistik-Alle-Text Positionen setzen
   SetPos_Stat_Monate                                                ' Statistik-Monate-Text Positionen setzen
   SetPos_Stat_VonBis                                                ' Statistik-Von-Bis-Text Positionen setzen
   SetPos_Stat_Grafik                                                ' Statistik-Grafik Positionen setzen
   SetPos_Einstellungen                                             ' Menü "Einstellungen"  Views Positionen setzen
   configload                                                      ' Konfigurationen laden
   SPI00Startseite_KFZauswahl.SelectedIndex    = kfzauswahl-1                  ' zuletzt ausgewähltes KFZ wieder auswählen
   SPI00Startseite_Jahrauswahl.SelectedIndex    = jahrauswahl - 1990            ' zuletzt ausgewähltes Jahr wieder auswählen
   StartSeiteDatenZeigen                                             ' Startseitedaten berechnen und Labels füllen
End Sub

B4X:
Sub Timer1_tick

   pnl00Startseite.Visible   = True
   timer1.Enabled = False
End Sub
 

Paulsche

Well-Known Member
Licensed User
Longtime User
Hi Klaus,

soooo einfach, super klasse, danke, funktioniert !
 
Last edited:
Top