Neues Fenster (Form) öffnen und nicht nur sichtbar machen
-
Hi
Ich habe ein Spiel programmiert bei dem sobald es geöffnet wir Spieledaten aus einer Datei geladen und ein Timer gestartet wird.
Beim Timer ist von anfang an Enablet = true;
Und die Datei wird so ausgelesen:void __fastcall TForm1::FormCreate(TObject *Sender) { //Veränderbare Spieldaten laden TStringList *list = new TStringList(); list->LoadFromFile("data//spiel.dat"); p1lebenspunkte = StrToInt (list->Strings[0]); p2lebenspunkte = StrToInt (list->Strings[1]); p1raumschifftype = list->Strings[2]; p2raumschifftype = list->Strings[3]; schussbewegung = StrToInt (list->Strings[4]); schussschaden = StrToInt (list->Strings[5]); p1bewegung = StrToInt (list->Strings[6]); p2bewegung = StrToInt (list->Strings[7]); delete list; } //---------------------------------------------------------------------------Jetzt habe ich eine neue Form als startbildschirm eingefügt und als "Hauptformula" deffiniert.
Über einen Button rufe ich die MethodeSpielfenster->Show();auf.
Wenn das Fenster dann angezeigt wird läuft der timer dann aber schon seit einiger zeit und die Daten aus der Datei wurden schon beim start des Programmes uasgelesen.Der Timer soll aber erst gestartet werden wenn das Fenster angezeigt wird und dann sollen auch erst die Daten aus der Datei ausgelesen weden.
Gibt es eine Möglichkeit das Fenster nicht nur sichtbar zu machen sondern zu öffnen?Oder schlagt ihr eine andere Methode for?
MfG kevka
Danke schonmal im vorraus
-
Hallo
- ich vermute du brauchst ShowModal() anstatt Show(). Denn während das Spiel läuft soll sicher nicht im Hauptmenü weiter rumgeklickt werden können, oder?
- du kannst das Spielfenstert dynamisch erstellen
- du must eben den Timer zur Entwurfszeit auf false setzen, und erst im OnShow-Event des Spielforms auf truebis bald
akari