AGB  ·  Datenschutz  ·  Impressum  







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

"Sleep"-t das programm wenn man...

Ein Thema von DArc · begonnen am 18. Jul 2009 · letzter Beitrag vom 24. Jul 2009
Antwort Antwort
Seite 1 von 3  1 23      
DArc

Registriert seit: 3. Jun 2009
48 Beiträge
 
Delphi 7 Enterprise
 
#1

"Sleep"-t das programm wenn man...

  Alt 18. Jul 2009, 13:50
meine frage ist, ob das programm freezed, schläft oder was auch immer, wenn man
.res dateien extrahiert?

denn ich habe ein programm gemacht, dass die res datei zb als exe extrahiert
und habe auch ein ladebalken / progressbar gemacht. das problem ist, dass
die progressbar nicht lädt, sondern nur am ende angezeigt wird, da offensichtlich
das programm solange schläft ...

meine frage ist, ob es wirklich "sleep"-t

Delphi-Quellcode:
if (Antwort = 'Ja') then
begin
Label1.Caption := 'Need Help!';
Label2.Caption := 'Nächste Frage wäre dann:';
Label2.Caption := 'Könntet ihr mir helfen?';
end;
(spaß bei seite^^)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#2

Re: "Sleep"-t das programm wenn man...

  Alt 18. Jul 2009, 13:59
Wenn du dem Programm (z.B. durch Application.ProgressMessages) nicht die Möglichkeit gibst sich zu aktualisieren, kann sich an der Oberfläche auch nichts tun.

Aber was machst du nochmal?
Du holst eine EXE aus den Ressourcen oder wie?
Aber das kann doch nicht sooo lange dauern, das man dafür 'nen Ladebalken braucht
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#3

Re: "Sleep"-t das programm wenn man...

  Alt 18. Jul 2009, 14:01
Nein, das Programm schläft nicht, sondern arbeitet hart. Nämlich an dem extrahieren der Ressourcen.
Das Programm ist dabei so beschäftigt, dass es die Windows-Messages zum zeichnen der Oberfläche nicht abarbeiten kann.
Also öfter mal ein ProcessMessages rein, und *wuppdi* klappts auch mit dem Zeichnen des Fortschrittbalkens.

Roter Kasten: Da war jemand schneller
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
DArc

Registriert seit: 3. Jun 2009
48 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: "Sleep"-t das programm wenn man...

  Alt 18. Jul 2009, 14:03
Zitat von himitsu:
Wenn du dem Programm (z.B. durch Application.ProgressMessages) nicht die Möglichkeit gibst sich zu aktualisieren, kann sich an der Oberfläche auch nichts tun.

Aber was machst du nochmal?
du holst eine EXE aus den Ressourcen?
aber das kann doch nicht sooo lange dauern, daß man dafür 'nen Ladebalken braucht
ich wusste zuerst eben net, dass es wirklich so schnell geht, aber für größere dateien lohnt sich das natürlich schon ...
(die exe ist ungefähr 100mb - das ist eig. noch ziemlich klein in meinem projekt)

und ja, ich habe Application.ProcessMessage eingebaut ...

ich gebe euch mal den quellcode^^


Delphi-Quellcode:
if (Gewicht = Gewicht div 100 * 100) then
begin
Application.ProcessMessages;
sProgressBar1.Position := 100;
sButton1.Visible := False;
sButton2.Visible := True;
sButton3.Visible := False;
end;

usw. ...

edit: ich versuchs mal mit 1gb^^
bis gleich^^
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#5

Re: "Sleep"-t das programm wenn man...

  Alt 18. Jul 2009, 14:10
Dein Quellcode sieht seltsam aus... erst Nachrichten abarbeiten, dann Komponenten aktualisieren ist falsch herum... und wieso gleich auf 100... eine Schrittweite ist nicht erkennbar.

Die Progressbar ist aber auch meines Wissens nicht von Application.ProgressMessages abhängig (sollte also immer, auch unter Last die Anzeige aktualisieren)
  Mit Zitat antworten Zitat
DArc

Registriert seit: 3. Jun 2009
48 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: "Sleep"-t das programm wenn man...

  Alt 18. Jul 2009, 14:15
Zitat von Satty67:
Dein Quellcode sieht seltsam aus... erst Nachrichten abarbeiten, dann Komponenten aktualisieren ist falsch herum... und wieso gleich auf 100... eine Schrittweite ist nicht erkennbar.

Die Progressbar ist aber auch meines Wissens nicht von Application.ProgressMessages abhängig (sollte also immer, auch unter Last die Anzeige aktualisieren)

das gehört auch zu den letzten zeilen^^

klar ist es "gleich" auf 100
ist ja auch die letzte aktualisierung...

für 1:

Delphi-Quellcode:
if (Gewicht = Gewicht div 100 * 1)then
begin
Application.ProcessMessages;
sProgressBar1.Position := 1;
end;
oder muss ich das umdrehen:


Delphi-Quellcode:
if (Gewicht = Gewicht div 100 * 1)then
begin
sProgressBar1.Position := 1;
Application.ProcessMessages;
end;
???
Ich würde gerne die Welt verändern, doch Gott hat
vergessen mir die Quellcodes zu geben ... !
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#7

Re: "Sleep"-t das programm wenn man...

  Alt 18. Jul 2009, 14:24
Häh? Für einen Fortschrittsbalken reicht es nicht, den anfangs auf 0/1 und am Ende auf 100 zu setzen.
Du musst ihn in jedem Schritt auf den entsprechenden Wert setzen und nach dem Wert setzt auch neu Zeichnen lassen.

Also im Stil von:
Fortschittsbalken = atuellerWert/maximalWert *100;
Neuzeichnen;
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
DArc

Registriert seit: 3. Jun 2009
48 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: "Sleep"-t das programm wenn man...

  Alt 18. Jul 2009, 14:28
Zitat von Phoenix:
Häh? Für einen Fortschrittsbalken reicht es nicht, den anfangs auf 0/1 und am Ende auf 100 zu setzen.
Du musst ihn in jedem Schritt auf den entsprechenden Wert setzen und nach dem Wert setzt auch neu Zeichnen lassen.

Also im Stil von:
Fortschittsbalken = atuellerWert/maximalWert *100;
Neuzeichnen;

hab ich doch, dass ist nicht der ganze quellcode -_-
Ich würde gerne die Welt verändern, doch Gott hat
vergessen mir die Quellcodes zu geben ... !
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#9

Re: "Sleep"-t das programm wenn man...

  Alt 18. Jul 2009, 14:31
ok, bei 100 MB / 1 GB könnte es schon dauern (ist ja recht selten, daß eine EXE mal so groß ist)


Zitat:
hab ich doch, dass ist nicht der ganze quellcode -_-
das können wir doch nicht wissen, also gehen wir nur davon auß, daß des Alles ist,
denn sonst hättest du ja mehr gepostet

if (Gewicht = Gewicht div 100 * 100) then =if Gewicht mod 100 = 0 then
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
DArc

Registriert seit: 3. Jun 2009
48 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: "Sleep"-t das programm wenn man...

  Alt 18. Jul 2009, 14:35
Zitat von himitsu:
ok, bei 100 MB / 1 GB könnte es schon dauern (ist ja recht selten, daß eine EXE mal so groß ist)


Zitat:
hab ich doch, dass ist nicht der ganze quellcode -_-
das können wir doch nicht wissen, also gehen wir nur davon auß, daß des Alles ist,
denn sonst hättest du ja mehr gepostet

if (Gewicht = Gewicht div 100 * 100) then =if Gewicht mod 100 = 0 then

ich meints auch nicht böse^^

habe eine rar und eine exe datei ... die sind ungefähr 600 mb groß, und noch weitere 4 dateien, sprich 6 * 600mb^^
dann braucht man schon einen ladebalken^^


thx für alle tipps und für das vebresserte if


habe es gerade nochmal versucht^^

iwie schuftet er "nur" und zeigt die progressbar net an^^
ich versuchs gleich mit 1gb^^
Ich würde gerne die Welt verändern, doch Gott hat
vergessen mir die Quellcodes zu geben ... !
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 20: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