AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Fortschritt bei Setuproutinen - Wie wird dieser errechnet?
Thema durchsuchen
Ansicht
Themen-Optionen

Fortschritt bei Setuproutinen - Wie wird dieser errechnet?

Ein Thema von noHuman · begonnen am 10. Jul 2006 · letzter Beitrag vom 12. Jul 2006
Antwort Antwort
Benutzerbild von noHuman
noHuman

Registriert seit: 12. Jul 2005
Ort: Österreich/Stmk
56 Beiträge
 
Turbo Delphi für Win32
 
#1

Fortschritt bei Setuproutinen - Wie wird dieser errechnet?

  Alt 10. Jul 2006, 20:48
Hi!

Nach längerer Suche und testen von Inno Setup und NSIS möchte ich nun meinen eigenen Setup schreiben.

Das ist auch ken großes Problem, bis auf die ProgressBar die den Fortschritt anzeigt.
Ich habe mir schon die Sourcen von Inno Setup angeschaut, konnte aber weit und breit nichts
finden, was den Fortschritt berechnet.

Deswegen frage ich euch mal, ob ihr das wisst oder Ideen dazu habt.
(Und an Code mit lauter sleep() oder delay()'s denke ich erst garnicht )

Danke im Voraus!

MfG, noHuman
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Fortschritt bei Setuproutinen - Wie wird dieser errechne

  Alt 10. Jul 2006, 20:53
Nuja, ich nehm mal an, da wird erst mal ein grober überschlag genommen, wie viel MB insgesamt zu kopieren sind. Progressbar.Maximum := MB_gesamt * 1024; , und dann eben immer nachm kopieren einer datei die progressbar akutalisieren.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von noHuman
noHuman

Registriert seit: 12. Jul 2005
Ort: Österreich/Stmk
56 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Fortschritt bei Setuproutinen - Wie wird dieser errechne

  Alt 10. Jul 2006, 21:11
Hi!

Danke für deine Antwort!

Nuja, ich habe eine Menge an Dateien die insgesamt 1,2 MB groß sind.
Dazu noch 30 Registryeinträge...

Also Inno schafft das dann trotzdem irgendwie aufzuteilen...
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Fortschritt bei Setuproutinen - Wie wird dieser errechne

  Alt 10. Jul 2006, 21:18
evtl. werden reigstry-einträge einfach pauschal als z.B. 1 kB genommen... is ja nicht so der große batzen.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Nicolai1234

Registriert seit: 21. Feb 2004
1.008 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Fortschritt bei Setuproutinen - Wie wird dieser errechne

  Alt 10. Jul 2006, 21:34
Zitat von DGL-luke:
evtl. werden reigstry-einträge einfach pauschal als z.B. 1 kB genommen... is ja nicht so der große batzen.
Ich denke auch, dass da ein großer Teil nur au "Erfahrung" beruht... Teste also ein bisschen, welche Aktionen wie lange dauern.
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#6

Re: Fortschritt bei Setuproutinen - Wie wird dieser errechne

  Alt 11. Jul 2006, 16:25
Ziemlich viele dieser Fortschrittsanzeigen sind sowieso für den Popo wie oft ist es mir schon passiert, dass ein Setup minutenlang bei einem x-beliebigen Wert hängt, um den Rest dann im Bruchteil einer Sekunde zu durchlaufen. Insofern kann es wohl nicht wirklich berechnet werden...

  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Fortschritt bei Setuproutinen - Wie wird dieser errechne

  Alt 11. Jul 2006, 16:34
[OFFTPOIC]
Ähnliche Erfahrungen hatte ich auch schon (insbesondere bei Flash-Objekten)^^

als ich noch kein dsl hatte, ging der Fortschrittsbalken zuerst kontinuierlich nach oben, auch ziemlich schnell.

Und, ganz logisch, bei 99% hat es dann 10 minuten gedauert

[/OffTopic]
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Fortschritt bei Setuproutinen - Wie wird dieser errechne

  Alt 11. Jul 2006, 16:50
Also bei den Dateien würde ich nicht nur die Dateigröße nehmen ... das Anlegen des Verzeichniseintrags, die Clustergröße und noch anderes kommt och noch mit dazu ... merkt man vorallem auf langsamen Datenträgern (z.B. Diskette, USB 1.0-Speicherstifte), da sind 1000 1 Byte-Dateien nicht so schnell kopiert, wie eine 1 KB-Datei ^^

Also ich würde da z.B. in Clustern Rechnen ... erstmal is die Zahl dann kleiner, man kann also auch bei mehr als 2 GB den Wert noch direkt an die Progressbar übergeben (die meisten Komponenten kennen ja nur einen Integer und der is nich so groß).

Also etwa für jede Datei:
(Dateigröße - 1) div (ClustersPerSector * BytesPerSector) + 3

Dateigröße:
(Dateigröße - 1) div (ClustersPerSector * BytesPerSector) + 1
Verzeichiseintrag (lesen, verändern und neu schreiben):
nochmal 2 Schritte

für's Anlegen von Verzeichnissen auch jeweils 2 Schritte

für andere Dinge könnte man dann z.B. für 100 Registryeinträge jeweils nocheinen Schritt zurechnen und so weiter ...



Ganz genan wirst du es nie hinbekommen ... weil du ja sonst jedesmal vom nInstallieren 'nen Testlauf fahren müßtest, dann anhand der Werte den Fortschritt berechnen,

Und/oder wärend des Installierens diese Werte dann nochmal anpassen.


Aber sobald der Use dann mal die Maus bewegt, wird sich bestimmt wieder irgendwo 'ne keinigkeit verändern, so daß es wieder nicht stimmt.

Also kannst due (wie es schon gesagt wurde) nur mit Erfahrungswerten rechnen

Windows XP geht z.B. von einer Installationsdauer von 60 minuten aus ... ja klar, als Win XP rauskam waren die Rechner noch langsamer und jetzt is der schon nach 'ner 1/4 Stunde fertig
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
markusl

Registriert seit: 25. Apr 2006
Ort: Rotkreuz
21 Beiträge
 
Delphi 5 Enterprise
 
#9

Re: Fortschritt bei Setuproutinen - Wie wird dieser errechne

  Alt 11. Jul 2006, 16:53
Inno Setup weiss beim Packaging der Daten ja, wie gross die Datenmenge, die Anzahl der Dateien usw. ist.
Daher kann es zumindest während der Kopierphase recht genau darstellen, wie weit das Setup fortgeschritten ist.
Alle weiteren Aktionen, die bei Inno Setup z.B. im [Run]-Block durchgeführt werden, führen nicht automatisch
zu einem Updaten des Fortschritt-Balkens. Da kommt man ohne eigenes Setzen des Progressbar oder Custom-Pages nicht weiter.

HTH

Markus
  Mit Zitat antworten Zitat
Benutzerbild von noHuman
noHuman

Registriert seit: 12. Jul 2005
Ort: Österreich/Stmk
56 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Fortschritt bei Setuproutinen - Wie wird dieser errechne

  Alt 12. Jul 2006, 08:49
Hi!

Danke für eure Antworten

Ich werde mir das hier heute Abend ansehen...

MfG, noHuman
  Mit Zitat antworten Zitat
Antwort Antwort


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