![]() |
"Sleep"-t das programm wenn man...
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:
(spaß bei seite^^)
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; |
Re: "Sleep"-t das programm wenn man...
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 :gruebel: |
Re: "Sleep"-t das programm wenn man...
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 :mrgreen: |
Re: "Sleep"-t das programm wenn man...
Zitat:
(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^^ |
Re: "Sleep"-t das programm wenn man...
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) |
Re: "Sleep"-t das programm wenn man...
Zitat:
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:
oder muss ich das umdrehen:
if (Gewicht = Gewicht div 100 * 1)then
begin Application.ProcessMessages; sProgressBar1.Position := 1; end;
Delphi-Quellcode:
???
if (Gewicht = Gewicht div 100 * 1)then
begin sProgressBar1.Position := 1; Application.ProcessMessages; end; |
Re: "Sleep"-t das programm wenn man...
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; |
Re: "Sleep"-t das programm wenn man...
Zitat:
hab ich doch, dass ist nicht der ganze quellcode -_- |
Re: "Sleep"-t das programm wenn man...
ok, bei 100 MB / 1 GB könnte es schon dauern (ist ja recht selten, daß eine EXE mal so groß ist)
Zitat:
denn sonst hättest du ja mehr gepostet :zwinker:
Delphi-Quellcode:
=
if (Gewicht = Gewicht div 100 * 100) then
Delphi-Quellcode:
if Gewicht mod 100 = 0 then
|
Re: "Sleep"-t das programm wenn man...
Zitat:
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 :thumb: habe es gerade nochmal versucht^^ iwie schuftet er "nur" und zeigt die progressbar net an^^ ich versuchs gleich mit 1gb^^ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:05 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