Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Statusformular???? (https://www.delphipraxis.net/17909-statusformular.html)

schuetze09 11. Mär 2004 12:42


Statusformular????
 
Hallo,

ich habe mir eine kleine Anwendung erstellt, zu beginn werden einige Programmparameter eingestellt und eine Verbindung zur Datenbank hergestellt. Dieser Vorgang dauert etwas. Um die Zeit zu überbrücken, wollte ich ein kleines Statusfenster mit einer ProgressBar einblenden, welche immer hin und her läuft (damit was zu sehen ist und der Benutzer nicht denkt, das sich das Prog aufgehangen hat).
Nun meine Frage: Wie krieg ich das hin????
Ich hab es schon mit einem Thread probiert, denn ich in einer Anleitung gefunden habe, aber da ich noch nicht so viel Ahnung habe, hat's leider nicht funktioniert.

Ich hoffe jemand hat ne Idee oder ein Beispiel dazu.

MfG
schuetze09

Synonym 11. Mär 2004 12:50

Re: Statusformular????
 
die Jedi Komponenten bieten dazu eine spezielle Komponente!

Schau doch mal da
!

synonym

DelphiDeveloper 11. Mär 2004 13:17

Re: Statusformular????
 
such doch mal hier im forum nach splash screen

schuetze09 11. Mär 2004 15:17

Re: Statusformular????
 
Danke für die Info´s, werde mich mal umschauen.

MfG
schuetze09

schuetze09 11. Mär 2004 16:49

Re: Statusformular????
 
So, ich habe mir mal die Themen zu Splash-Screens angesehen, ist ne feine Sache, jedoch nicht so 100%ig was ich wollte. Das mit so einem laufender Progressbar habe ich da nicht hinbekommen.
Der Splash-Screen ist ja nur da und tut nichts, aber auf dem wollte ich schon eine ProgressBar haben die dann über einen Timer läuft, also so:

Delphi-Quellcode:
procedure TfrmSplash.Timer1Timer(Sender: TObject);
var i: integer;
begin
  i := ProgressBar1.Position;
  inc(i);
  if i > ProgressBar1.Max then i := 0;
  ProgressBar1.Position := i;
end;
die Progbar soll dann solange laufen bis im Hauptform bei OnCreate alles abgearbeitet ist, dann kann sich das frmSplash auch schließen....

hat jemand ne Idee???

MfG
schuetze09

DelphiDeveloper 12. Mär 2004 02:42

Re: Statusformular????
 
das kannst du doch in dem dpr file machen; hier ein Codeschnipsel aus einer anwendung die ich mal vor
Jahren erstellt habe.
Hoffe damit kommst du weiter!

Code:
begin
  Application.Initialize;
  try
    Application.Title := 'xx';
    FormSplash := TFormSplash.Create(Application);
    FormSplash.Show;
    FormSplash.Gauge1.Progress := 20;
    sleep(50);
    FormSplash.Update;

    Application.CreateForm(TDMA, DMA);
    FormSplash.Gauge1.Progress := 30;
    sleep(200);
    FormSplash.Update;

    Application.CreateForm(TDMStoredProcs, DMStoredProcs);
    FormSplash.Gauge1.Progress := 40;
    sleep(200);
    FormSplash.Update;

    Application.CreateForm(TDMMail, DMMail);
    FormSplash.Gauge1.Progress := 50;
    sleep(200);
    FormSplash.Update;

    Application.CreateForm(TDM1, DM1);
    FormSplash.Gauge1.Progress := 60;
    sleep(200);
    FormSplash.Update;

    Application.CreateForm(TDMDruck, DMDruck);
    FormSplash.Gauge1.Progress := 70;
    sleep(50);
    FormSplash.Update;

    Application.CreateForm(TFormMain, FormMain);
    FormSplash.Gauge1.Progress := 80;
    FormSplash.Update;
    sleep(50);

    Application.CreateForm(TDMLesen, DMLesen);
    FormSplash.Gauge1.Progress := 85;
    FormSplash.Update;
    sleep(50);
    FormSplash.Gauge1.Progress := 90;
    FormSplash.Update;
    sleep(50);
    FormSplash.Gauge1.Progress := 95;

  finally
    FormSplash.Hide;
    FormSplash.Free; // Splashformular freigeben

  end; // try
  Application.run;
end.

schuetze09 12. Mär 2004 21:15

Re: Statusformular????
 
Danke für den Tipp,

ist eine gute Idee. Werd ich ausprobieren.

MfG
schuetze09

Luckie 12. Mär 2004 21:18

Re: Statusformular????
 
Und mit den ganzen Sleeps bremnst du alles schön aus. Juchhei. Dann lieber ein schnell startendes Programm mit Aboutbox.

Hansa 12. Mär 2004 23:15

Re: Statusformular????
 
Stop ! Die sleeps sind peanuts ! Ist zwar auch nicht so die feine Art, das erfüllt aber schon seinen Zweck.

schuetze09 13. Mär 2004 06:50

Re: Statusformular????
 
morgen,

also das Beispiel von DelphiDeveloper funktioniert zwar, spiegelt aber nicht so das wieder was ich eigentlich wollte, aber wenn´s halt nicht besser geht???

MfG
schuetze09

Luckie 13. Mär 2004 06:51

Re: Statusformular????
 
Und was wolltest du, wenn nicht das?

schuetze09 13. Mär 2004 06:57

Re: Statusformular????
 
Das kommt dem ja im Prinzip schon nahe.
In meinem Programm stelle ich am Anfang von OnShow eine Datenbankverbindung her, das dauert manchmal etwas, der Bildschirm bleibt demnach leer. Mancher User könnte dann denken das Programm hat sich aufgehangen. Aus dem Grund wollte ich einen kleine ProgressBar die immer hin und her läuft.

Das mit den Steps ist ja im Prinzip auch nicht übel, aber wahrscheinlich gibt es auch noch elegantere Lösungen. Die Progressbar ist ja nur dazu da, um den User zu beschäftigen, sie muss nicht den Verbindungsaufbau darstellen.

MfG
schuetze09

Luckie 13. Mär 2004 07:01

Re: Statusformular????
 
Dann lass eine Animation laufen oder so was.

schuetze09 13. Mär 2004 07:08

Re: Statusformular????
 
Und wie, wenn ich in meiner MainForm bei OnCreate die Datenbankverbindung herstelle???
Wenn ich da ein anderes Form mit einer Animation öffnen lasse, dann ist das ja wohl auch nicht ganz das, da die Animation und der Datenbankconnect ja nicht nebeneinander ablaufen, sondern immer eins nach dem andern.
Oder verhstehe ich das falsch?

MfG
schuetze09

Luckie 13. Mär 2004 07:39

Re: Statusformular????
 
Zitat:

Zitat von schuetze09
Danke für die Info´s, werde mich mal umschauen.

Das http://www.delphipraxis.net/internal...ect.php?t=9679 hast du auch gefunden?

schuetze09 14. Mär 2004 10:59

Re: Statusformular????
 
Das ist ein wirklich gutes Tutorial (-:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz