AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Erbitte Hilfe bei MarqueeProgressBar !!

Ein Thema von Störtebeker · begonnen am 16. Jul 2007 · letzter Beitrag vom 16. Jul 2007
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#21

Re: Erbitte Hilfe bei MarqueeProgressBar !!

  Alt 16. Jul 2007, 17:45
Estmal Thx. für eure tatkräftigen Ideen. Er kommt zwar nicht mit irgendwelchen Fehlern, jedoch ist es sowohl mit der DELAY-Variante als auch mit der TIMER-Variante so, dass der Splash nur noch kurz aufblitzt, und zum eigentlichen Program wechselt, wenn man da noch was "schrauben" könnte, wäre es denke ich fast perfekt.
  Mit Zitat antworten Zitat
KrasserChecker

Registriert seit: 21. Jul 2004
120 Beiträge
 
#22

Re: Erbitte Hilfe bei MarqueeProgressBar !!

  Alt 16. Jul 2007, 17:52
Du darfst den Splashscreen natürlich NICHT gleich vor dem Application.Run freigeben.
Sondern erst später:

Delphi-Quellcode:
Splash := TSplash.Create(nil);
try
  Splash.Show;

  // andere Formulare erzeugen

  Application.Run;
finally
  Splash.Free;
end;
Noch besser wäre es sogar, wenn auf dem Splashscreen (wenn der Progressbar voll ist) sowas hier gemacht wird:

"Splash.Close;"
"Hauptfenster.Show"
  Mit Zitat antworten Zitat
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#23

Re: Erbitte Hilfe bei MarqueeProgressBar !!

  Alt 16. Jul 2007, 18:10
Hat schon ein bisschen weiter geholfen. Nun ist das Problem, dass der SplashScreen aufblendet udn gleichzeitig das eigentliche Programm, also es blendet sich praktisch die Form, die erst nach dem SplashScreen kommen soll ebenfalls auf und schiebt sich in den Vordergrund.

Delphi-Quellcode:

program Project4;

uses
  Forms,
  Unit1 in 'Unit1.pas{Form1},
  Unit2 in 'Unit2.pas{Form2},
  Unit3 in 'Unit3.pas{Form3},
  Unit4 in 'Unit4.pas{Form4},
  SplashScreen in 'SplashScreen.pas{Form5};

{$R *.res}

begin
  Application.Initialize;
  Form5 := TForm5.Create(Application);

       with TForm5.Create(nil)do
   try
   Form5.Show;
        Form5.Update;

  MarqueeProgressBar1.Max := 100;
    Show; // Startbildschirm mit ProgressBar anzeigen
    Update; // Anzeige von Form5 auslösen

  Application.Initialize;
  Application.Title := 'Project4';
  Application.CreateForm(TForm4, Form4);
  MarqueeProgressBar1.StepBy(25);
  Application.CreateForm(TForm1, Form1);
  MarqueeProgressBar1.StepBy(25);
  Application.CreateForm(TForm3, Form3);
  MarqueeProgressBar1.StepBy(25);
  Application.CreateForm(TForm2, Form2);
  MarqueeProgressBar1.StepBy(25);
  Application.Run;
  Finally
   Form5.free;
   Form5.close; // Splash Form
   Form4.Show; // Main Form
  end;


end.
und er kommt, wenn ich auf dem Main Formular auf den Button gehe, der das Programm schließen soll mit einer "AccessViolation"
  Mit Zitat antworten Zitat
KrasserChecker

Registriert seit: 21. Jul 2004
120 Beiträge
 
#24

Re: Erbitte Hilfe bei MarqueeProgressBar !!

  Alt 16. Jul 2007, 18:23
Delphi-Quellcode:
Form5.free;
Form5.close; // Splash Form
Wird wohl kaum funktionieren. Du kannst ein Formular ja schlecht noch schliessen, wenn Du den Speicher schon freigegeben hast.

Außerdem dachte ich auch eher an sowas hier auf dem Splash-Screen:

Delphi-Quellcode:
if ProgressBar.Percent = 100 then
begin
  Close;
  Application.Run;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#25

Re: Erbitte Hilfe bei MarqueeProgressBar !!

  Alt 16. Jul 2007, 18:56
Das mit dem Speicher und dem Schließen leuchtet mir ein aber bei dem anderen muss ich leider sagen:

(Sry, aber )
  Mit Zitat antworten Zitat
Hafish

Registriert seit: 22. Mär 2007
37 Beiträge
 
#26

Re: Erbitte Hilfe bei MarqueeProgressBar !!

  Alt 16. Jul 2007, 20:30
Ich versteh das nicht ganz, du scheinst ja gar keine MarqueeProgressBar zu verwenden, sondern eine normale

Wenn du eine MarqueeProgressBar verwendest brauchst du doch gar nicht von Position 0-100 zu kommen. Außerdem ist es wenig bis gar nicht zweckdienlich auf einem Splash Screen eine normale Progressbar anzuzeigen, denn wie schon gesagt weiß man ja nicht wann das Programm denn wirklich fertig ist. Wenn man bei einer Progressbar nicht abschätzen kann wie lange es noch dauert kann man sie sich sparen!

Warum benutzt du die MarqueeProgressBar nicht einfach so wie sie vorgesehen ist? Einfach auf ein Formular, Timer dazu, der alle 50 ms die Bar eins erhöht und fertig.
Und wenn du jetzt nicht irgendwelche Thread-Geschichten anfangen willst dann benutze doch einfach die Windows Threads: Pack den Splash Screen in ne eigene Exe, dann startest du die bei Programmstart (evtl mit Parameter) und vor dem Aufruf des Hauptformulars schließt du die Splash-Screen Exe wieder. Fertig. So hast du keine Probleme mit Refresh/Processmessage etc., da die exe alles selbst verwaltet.

Ach so: Benutzt nie nie nie Sleep bei nem Splash Screen. Splash Screens sollen dem Benutzer bei längeren Programm-Starts zeigen dass noch was passiert und nicht dafür sorgen, dass der Programm Start länger dauert^^
  Mit Zitat antworten Zitat
Benutzerbild von Störtebeker
Störtebeker

Registriert seit: 9. Jul 2007
398 Beiträge
 
#27

Re: Erbitte Hilfe bei MarqueeProgressBar !!

  Alt 16. Jul 2007, 20:53
Thx. für eure Hilfe, aber ich habe mich jetzt erstmal zumindest für den SplashScreen für die Variante entschieden, die man auch bei ADOBE Produkten im SplashScreen findet.

- Keine Progressbar sondern da wird dann praktisch in Worten angezeigt, was gerade geladen wird.
- Das Label (was sich auf dem SplashScreen) wechselt dann halt immer mit jeder Form.

z.b: Form1: Initialize...
Form2: Reading fonts...

- Komme ich ein bisschen besser mit zurecht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz