Formular erst zur Laufzeit erzeugen?



  • Hi

    ich möchte in meinem Programm einen Startbildschirm anzeigen wärend die anderen Formulare erzeugt werden ( was ja je nach Umfang des Projects etwas dauern kann )
    Also habe ich mir ein neues Formular erstellt und das als einzigstes standartmässig beim starten erzeugt.

    Aber wie kann ich die anderen Formulare jetzt wärend der Laufzeit erzeugen? also das ich nachher frmMain->show machen kann?

    THX

    Dagsta



  • Hallo!

    Suchst du das hier?:

    if (!frmMain)
      frmMain = new TfrmMain(Application);
    else 
      frmMain->BringToFront();
    
    frmMain->Show()
    

    tschüss
    Robert



  • habs glaube ich gelöst!
    Habe mir einfach den source aus der cpp (hauptcpp) rausgenommen und bei mir reingepackt! klappt auf jedenfall:

    MessageDlg("Close application ?", mtConfirmation, TMsgDlgButtons() << mbYes << mbNo,0);
      try
      {
        Application->CreateForm(__classid(TfrmMain), &frmMain);
        Application->CreateForm(__classid(TfrmHash), &frmHash);
      }
      catch (Exception &exception)
      {
               Application->ShowException(&exception);
      }
      catch (...)
      {
               try
               {
                       throw Exception("");
               }
               catch (Exception &exception)
               {
                       Application->ShowException(&exception);
               }
      }
      frmStart->Visible = false;
    

    kann das zu problemen führen?

    THX

    Dagsta



  • Hallo!

    Nachtrag - du scheinst ja hier wohl ein Spashscreen machen zu wollen.
    Das geht auch eleganter:

    Im Projekt-Quellcode:

    SplashForm = new TSplashForm(Application);
                     SplashForm->Show();
                     SplashForm->Update();
    
                     Application->Initialize();
                     Application->Title = "yxz";
                     Application->HelpFile = "";
                     Application->CreateForm(__classid(TForm1), &Form1);
                     delete SplashForm;
                     Application->Run();
    

    tschüss
    Robert



  • wo ist da der unterschied zu meinem auser das es mehr syntax konform ist?



  • Hallo!

    Bei meinem 2. Beispiel wird das Splash-Screen nach Gebrauch wieder gelöscht - besser für den Arbeitsspeicher?!

    ciao
    Robert


Anmelden zum Antworten