Announcement

Collapse
No announcement yet.

Hauptformular zur Laufzeit ändern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Hauptformular zur Laufzeit ändern

    Hallo,

    ich möchte 3 bereits im Projekt mit Application.create erzeugte Formulare bei unterschiedlichen Bedingungen per Befehl zu Hauptformular erklären.
    Mit Setfocus, oder Activecontrol komme ich aber nicht weiter.

    Frage daher : Wie kann ich wärend der Laufzeit eines der Forms zum Hauptform machen ???

    Gruß
    Stefan

  • #2
    Hallo Stefan,

    soweit ich mir das angeschaut habe geht das nicht warum mußt du das tun?

    Gruß Andr

    Comment


    • #3
      Hallo Andre,

      ich führe das mal etwas genauer aus. Das Erste Formular ist im Prinzip ein Startlogo. Nach einem Timerereigniss schließt sich das Form1,und das Form 2 wird geöffnet.

      Wenn dieses (Form2) dann geschlossen wird, schließt sich mit dem close-Befehl eigentlich nur noch das 1 Form und beendet damit die Anwendung.

      Soweit klappt das auch. Wenn jetzt das Form 2 aber minimiert wird, gilt es als Unterform der Forms 1 und wird daher nicht in die Tastleiste minimiert, sondern eben darüber.Das sieht irgendwie nicht aus und wirkt ziemlich blöd. Eine bessere Lösung ist mir bisher nicht eingefallen.

      Nun war mein Ansatz eben der, vor dem schließen die volle Anwendungskontrolle an das 2 Form zu geben. Das erschien mir auf den ersten Blick der schnellste Weg, aber scheint nicht so leicht zu sein, wie ich es mir vorstelle....

      Ich bin für jede andere funktionierende Idee eines Startlogos dankbar.

      Schonmal Dank im voraus

      Stefa

      Comment


      • #4
        Hi Stefan,

        für mich spricht eigentlich nichts dagegen, Dein Form2 als Hauptformular anzulegen. Per Default Created Delphi erst alle Forms und zeigt dann die mit Visible = True markierten an. Wenn Du für Form2 Visible auf False setzt und Dein Startlogo im Projektquelltext sofort nach der Erstellung von Form2 und Form1 anzeigen läßt, dann brauchst Du nach Ablauf des Timers Form2.Visible nur auf True zu setzen oder das form mit Show anzeigen lassen. Das müßte eigentlich Dein Problem lösen. Ich habe sowas schon mal gemacht (geht sogar mit ProgressBar). Den Source müßte ich heute Abend mal raussuchen.

        Gruß Fal
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment


        • #5
          Hallo Steffan,

          Ich kann mich da Falk nur anschließen.
          (Da Application.MainForm ReadOnly ist und wenn man sich
          TForm mal anschaut lässt sich das auch nicht ändern.)

          Gruß Andr

          Comment


          • #6
            Hallo,

            wenn es nur um einen Splash-Screen geht, sind die "Verrenkungen" nicht notwendig.

            Das Splash-Formular kann man folgendermaßen in den Quelltext des Projektes (!) einbauen:

            <pre>
            {$R *.RES}

            begin

            SplashForm := TSplashForm.create(application);
            SplashForm.show;
            SplashForm.update;

            Application.Initialize;
            Application.HelpFile := 'AdressDoc.hlp';
            Application.CreateForm(TDM, DM);
            Application.CreateForm(THauptForm, HauptForm);
            Application.Run;
            end.
            </pre>

            Im Hauptformular kann man dann z.B. im Event OnShow angeben, dass der Splash-Screen geschlossen wird.

            Viel Erfolg..

            Comment


            • #7
              Hallo Zusammen,

              Ich kann mich meinem Vorredner nur anschliesen, ich habe meinen alten Quelltext rausgekramt und der sieht genau so aus. Wenn man in den SplashScreen noch eine Progressbar einbaut, kann man noch ein i draufsetzen:<br>
              begin
              StartUpForm := TStartUpForm.Create(Application);<br>
              StartUpForm.Show;<br>
              StartUpForm.Update;<br>
              Application.Title := 'Teeny Weeny Demo';<br>
              Application.CreateForm(TMainForm, MainForm);<br>
              StartUpForm.Progress := 33;<br>
              Application.CreateForm(TAboutBox, AboutBox);<br>
              StartUpForm.Progress := 66;<br>
              Application.CreateForm(TFrm_Edit, Frm_Edit);<br>
              StartUpForm.Progress := 100;<br>
              StartUpForm.Hide;<br>
              StartUpForm.Free;<br>
              Application.Run;<br>
              end.<br>
              <br>

              Gruß Fal
              Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

              Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

              Comment

              Working...
              X