AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Splash und Modale Form

Ein Thema von haentschman · begonnen am 7. Jan 2008 · letzter Beitrag vom 7. Jan 2008
Antwort Antwort
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#1

Splash und Modale Form

  Alt 7. Jan 2008, 02:08
...Hallo alle

... was man so alles findet wenn man genauer hinschaut.
... zum Anfang ging das alles so schnell, daß es nicht aufgefallen ist...

Das Problem:

1. die dpr:
Delphi-Quellcode:
  Splash := TSplash.Create(Application);
  try
    Splash.Show;
    Splash.Refresh;
  Application.Initialize;
  Application.CreateForm(TFMain, FMain);
  Application.CreateForm(TFDBAssi, FDBAssi);
  .
  .
  .
  Application.CreateForm(TDMDB, DMDB);
  Splash.Hide;
  finally
    Splash.Free;
  end;
  Application.Run;
... also ganz normaler SplasScreen

2. :
- im OnCreate von DMDB erfolgt eine Überprüfung ob Datenbank vorhanden ist.
- im Falle von NEIN wird das Formular FDBAssi Modal angezeigt.
- beim Drücken auf OK ----> FDBAssi.Close;

3. :
- die Anwendung arbeitet wie erwünscht im OnCreate von DMDB weiter

aber... das Formular FDBAssi wird erst ausgeblendet wenn OnCreate komplett durchlaufen ist.

quasi dann:
Delphi-Quellcode:
 Splash.Hide;
  finally
    Splash.Free;
  end;
  Application.Run;
wie kann ich das Formular wegblenden so daß nur noch der SplashScreen gezeigt wird während der Ausführung von OnCreate
ist das Modale Aufrufen schon Blödsinn
ist dynamisch erstellen besser ( brauche FDBAssi eh nur für den Fall der Fälle )

Danke schon mal für eure Hilfe...

PS: mit Hide, Visible, ApplicationProcessMessages habe ich schon experimentiert
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Splash und Modale Form

  Alt 7. Jan 2008, 02:54
Ich würde die Formulare dynamisch erzeugen und die Programmlogik soweit möglich von den Formularen trennen. Also keinen Code, der prüft, ob eine DB existiert, ins OnCreate eines Formulars usw.
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#3

Re: Splash und Modale Form

  Alt 7. Jan 2008, 03:08
nun ja...

...im Splash wird der Status diverser Aktionen angezeigt (Update, Voreinstellungen laden, Import von Daten etc.)
... da diese Daten teilweise Objekte betreffen, müssen alle Objekte erzeugt sein.

- damit bleibt zwischen dem Splash und OnShow der MainForm nur das OnCreate der letzten Form in der dpr...also DMDB

...funktioniert eigentlich bestens bis auf dieses 'optische' Problem.

...ich bin mit dem Projekt schon so weit fortgeschritten, daß gravierende Veränderungen zeitlich nicht mehr machbar sind.
...damit ist der Ablauf eigentlich gegeben...

Danke für Dein Interresse...
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Splash und Modale Form

  Alt 7. Jan 2008, 03:15
Was passiert, wenn in FDBAssi beim Drücken von "OK" erst Self.Hide vor Self.Close aufgerufen wird? Ist es dann immer noch sichtbar?
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#5

Re: Splash und Modale Form

  Alt 7. Jan 2008, 03:19
vor FDBAssi.Close...

- FDBAssi.Hide --- sichtbar
- FDBAssi.Visible:= False --- sichtbar
- FDBAssi.Free --- sichtbar-
- FDBAssi.Destroy --- sichtbar

...darum stelle ich ja so blöde Fragen
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Splash und Modale Form

  Alt 7. Jan 2008, 03:23
Ich gehe mal davon aus, dass du mir jetzt nicht deinen gesamten Quellcode deines Projektes geben willst, daher versuche ich mal, die Situation irgendwie nachzubauen...
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#7

Re: Splash und Modale Form

  Alt 7. Jan 2008, 03:27
... über 30 Forms würden denke ich den Rahmen sprengen.

...das Fenster muß Modal sein, da im FDBAssi Einstellungen vorgenommen werden und dann wieder zurück im OnCreate DMDB die Datenbank erzeugt wird.

- funktioniert alles reibungslos nur bleibt FDBAssi 'optisch' stehen.... und der Nutzer soll sehen was auf dem Splash passiert.

Danke für Deine Hilfe...

Tip:
- Form1
- Form2
- Form3
- Splash

Form1--MainForm
Form2 enthällt 1 Button welcher Form2 schließt
im OnCreate von Form3 rufst du Form2 Modal auf
danach weiter im On Create von Form3 eine Schleife welche auf Splash ein Label verändert mit Abbruchbedingung

...das ist eigentlich der ganze Ablauf.
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Splash und Modale Form

  Alt 7. Jan 2008, 03:45
Ich habe mal ein Demo-Projekt gemacht, wo ich den Fehler reproduzieren wollte. Das hat aber nicht geklappt, es funktioniert so wie es soll. Rufst du evtl. irgendwo im Code nochmal FDBAssi.Show oder FDBAssi.Visible = true auf? Ansonsten kannst du dir das Demo-Projekt ja mal anschauen (ist sehr klein) und uns sagen, wo bei dir Unterschiede im Vorgehen sind...
Angehängte Dateien
Dateityp: zip fakesplash_189.zip (12,0 KB, 13x aufgerufen)
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#9

Re: Splash und Modale Form

  Alt 7. Jan 2008, 03:51
...nö...


...wird einmal aufgerufen und geschlossen.

Danke...schaue mir das mal an.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#10

Re: Splash und Modale Form

  Alt 7. Jan 2008, 04:18
Danke für Dein Beispiel...

der Ablauf ist der gleiche wie bei mir.

... eben gehen alle Lampen an

die Procedure zum DB Erstellen ist zwar in DMDB definiert wird aber von DBAssi aufgerufen...

...d.h. bevor nicht der ganze Quatsch abgearbeitet ist kommt er gar nicht zu FDBAssi.Close.

...und damit belästige ich andere Leute

Vielen Dank noch einmal für Deine Denkhilfe....

[edit]
...jetzt wo ich darüber nachdenke hatte das schon seinen Sinn.
...Das Assistentenfenster kann nur bei bestehender DB Verbindung geschlossen werden.
...ich hatte nur die nachfolgenden Aktionen mit in die gleiche Prozedure gepackt.
...brauch das nur aufzusplitten...

Danke...Danke...
[/edit]
  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 06:57 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