Announcement

Collapse
No announcement yet.

Startfenster mit ProgressBar

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

  • Startfenster mit ProgressBar

    hallo leute,

    bevor es hier crashte, hatten wir unter anderem das thema, wie erstelle ich ein startfenster, dass so lange stehen beleibt, bis alle meine formst createt sind.

    matthias postete hierzu folgenden code:

    <pre>
    Application.Initialize;
    with TSplashForm.Create(nil) do
    try
    Screen.Cursor := crHourglas;
    Progressbar1.Position := 0;
    Show;
    Update;
    Application.CreateForm(TForm1, Form1);
    Progressbar1.Position := 10;
    ...
    Application.CreateForm(TForm10,Form10);
    Progressbar1.Position := 100;
    Screen.Cursor := crDefault;
    finally
    Free;
    end;
    Application.Run;
    </pre>
    ich habe das auch probiert und war begeistert, denn es funtkioniert und stellt sicher, dass der user das hauptform erst zu gesicht bekommt, wenn es fertig erstellt ist.

    <b>nun mein problem:</b> ich habe heute morgen in das hauptform eine actiontoolbar hinzugefügt. seitdem funktioniert die oben erwähnte startroutine nicht mehr so, wie erwünscht. das hauptform wird sofort angezeigt (natürlich halb nackt).<br><br>
    <b><font color="blue">unterdrückt oder verhindert eventuell diese toolbar mein startfenster oder das createn des forms im hintergrund ???</font color></b>

    das tom

  • #2
    Normalerweise nicht, wenn sie ein Teil deines Hauptfensters ist. Schau noch mal in den Projektquelltext (*.dpr), wo der obige Code steht.

    Durch etwas größere Änderungen innerhalb der Formulare usw., kann es passieren, dass Delphi u.U. das Erzeugen des Hauptformulars wieder <b>nach</b>

    <pre>Application.Initialize</pre>

    reingesetzt hat. Einfach mal gucken, ob die Struktur noch so aussieht wie in dem Code oben. Wenn nicht, einfach wiederherstellen, und es sollte wieder gehen.

    Gruß,
    Mathias.

    PS: Das gilt auch nach dem Einfügen oder Entfernen von weiteren Formularen

    Comment


    • #3
      hi mathias,

      ich finden den fehler einfach nicht. es muss wohl doch was anderes sein. oder ich bin von der blindheit geschlagen. hier mal meine *.dpr
      <br><br>
      <pre>
      program maker;

      uses
      Forms, Windows,
      Tablemaker in 'Tablemaker.pas' {Tablemaker_Haupt},
      Frm_Codemaker in 'Frm_Codemaker.pas' {Codemaker},
      Frm_Vorschau in 'Frm_Vorschau.pas' {Vorschau},
      Frm_Verzeichniswahl in 'Frm_Verzeichniswahl.pas' {Verzeichniswahl},
      Frm_Scrollleiste in 'Frm_Scrollleiste.pas' {Scrollleiste},
      Frm_Edit in 'Frm_Edit.pas' {Editform},
      Frm_Inserter in 'Frm_Inserter.pas' {Inserter},
      Unit1 in 'Unit1.pas' {Startfenster},
      ABOUT in 'ABOUT.PAS' {AboutBox};

      {$R *.res}

      begin
      Application.Initialize;
      Application.HelpFile := '';
      Application.Title := 'CSS-Maker';

      with TStartfenster.Create(nil) do
      try
      Screen.Cursor := -1;
      Progressbar1.Position := 0;
      Show;
      Update;

      Progressbar1.Position := 10;
      Application.CreateForm(TTablemaker_Haupt, Tablemaker_Haupt);
      Progressbar1.Position := 20;
      Sleep(150);
      Application.CreateForm(TInserter, Inserter);
      Inserter.WebBrowser1.Navigate('about:blank');
      Progressbar1.Position := 30;
      Sleep(150);
      Application.CreateForm(TCodemaker, Codemaker);
      Progressbar1.Position := 50;
      Sleep(150);
      Application.CreateForm(TVorschau, Vorschau);
      Progressbar1.Position := 60;
      Sleep(150);
      Application.CreateForm(TVerzeichniswahl, Verzeichniswahl);
      Progressbar1.Position := 70;
      Sleep(150);
      Application.CreateForm(TScrollleiste, Scrollleiste);
      Scrollleiste.WebBrowser1.Navigate('about:blank');
      Progressbar1.Position := 80;
      Sleep(150);
      Application.CreateForm(TEditform, Editform);
      Editform.WebBrowser1.Navigate('about:blank');
      Progressbar1.Position := 90;
      Sleep(150);
      Application.CreateForm(TAboutBox, AboutBox);
      Progressbar1.Position := 100;
      Sleep(150);
      Screen.Cursor := 0;
      finally
      Free;
      end;
      Application.Run;
      end.
      </pre>
      <br><br>
      eigentlich hoffe ich eher, dass hier der fehler liegt. den ich habe die actiontoolbar wieder entfernt und das problem besteht leider immer noch.
      danke dir
      ciao to

      Comment


      • #4
        hi mathias,

        die antwort hat mich fast den verstnad gekostet. der code wurde nicht von delphi verändert. zumindest nicht der quellcode der *.dpr !
        <br><br>
        das problem war, dass die eigenschaft "visible:=true" des hauptformulares gesetzt wurde. somit wurde es direkt beim createn halbleer angezeigt.
        <br><br>
        auf so eine idee muss man erst einmal kommen.
        <br><br>
        danke dir trotzdem
        tom
        <br><br>
        ps.: hast du eine ahnung, was passiert ist, dass alle posting weg sind !

        Comment


        • #5
          Ich weiß nur eins:
          Es ist nicht meine Schuld. ))

          Ich hatte mir zwar vom SysOp gewünscht, dass er den Internet-Ordner mal aufräumt und die ganzen Postings aus dem Hauptordner rauswirft (bei Delphi darf man ja auch nicht im Hauptordner posten!), aber dass man das gleich so interpretiert ... *kicher*

          Nee, das war jetzt gehässig.
          Tut mir leid, EF-Verantwortliche.

          Gruß,
          Mathias

          Comment

          Working...
          X