Probleme mit der Menüleiste unter Kylix



  • Hi leute,

    habe eine MDI-Anwendung unter Kylix3 (C++) erstellt. Diese funktioniert auch. Jetzt wollte ich noch ein SplashScreen hinzufügen. Das funktioniert auch. Habe ein einfaches Formular genommen und dieses als Startformular deklariert. Nach 5 Sek. wird dies wie folgt geschlossen

    Form1->Visible = false;
    Form1->Free;
    Form2->Visible = true;
    

    Das funktioniert auch soweit. Jetzt habe ich aber das Problem, wenn ich eine Kindform öffne, z.Bsp. mit F5 und diese anschließend wieder schließe, kann ich die Tastenkombination F5 nicht mehr benutzen. Wenn ich die Maus nehme, öffnet sich die Kindform wieder.
    Nehme ich die MDI-Form wieder als Startform, kann ich aber die F5 (und auch die anderen Tastenkombinationen) wieder so oft nutzen wie ich will.
    Was muß ich ändern, dass dies auch mit dem SplashScreen funktioniert?!

    Mario



  • Probier erstmal eine alternative Splashscreen-Variante aus.

    Es ist absolut unüblich, die Hauptform des Programms als Splashscreen zu benutzen. Und das mit deinem Free kommt mir nicht ganz geheuer vor, ich wundere mich, dass das überhaupt läuft. 😉



  • Hi Jansen,

    hat nicht funktioniert. Liegt wohl an der VCL. Unter Kylix habe ich nur die CLX.
    Habe aber in der Hilfe folgendes gefunden. Wie deklariert man aber die Variable "Startup" und vor allem als was?
    Für einen Hinweis wäre ich Dankbar.
    Hier der Code aus der Borland-Hilfe:

    Die beiden folgenden Ereignisbehandlungsroutinen öffnen und schließen ein Formular
    namens SplashScreen, bevor das Hauptformular der Anwendung geöffnet wird. Die
    Variable Startup ist im interface-Abschnitt (Delphi) bzw. im Unit-Header (C++) von
    Form1 deklariert. Die Behandlungsroutine für das Ereignis OnActivate von Form1 ruft
    die Methode Show der Komponente SplashScreen auf.
    
     C++ Beispiel
    
    void __fastcall TForm1::FormActivate(TObject &Sender)
    {
      if (Startup)
      {
        Startup = false;
        SplashScreen->Show();
      }
    }
    
    SplashScreen enthält eine Timer-Komponente, deren Eigenschaft Interval auf 3000
    gesetzt ist. Das Formular wird somit drei Sekunden lang angezeigt und anschließend
    wieder geschlossen. Die Methode Close des Formulars ist dem Ereignis OnTimer der
    Timer-Komponente zugeordnet.
    
     C++ Beispiel
    
    void __fastcall TForm2::Timer1Timer(TObject &Sender);
    {
      Close();
    }
    

    P.S. Habe noch was über #pragma startup gefunden, aber daraus werde ich nicht schlau. Und wie gesagt, das soll unter Kylix 3 mit der C++ Umgebung unter Linux laufen.

    Gruß Mario

    [ Dieser Beitrag wurde am 14.01.2003 um 23:04 Uhr von marki editiert. ]


Anmelden zum Antworten