progressanzeige realisieren
22. Jun 2007, 11:54
hallo!
ich hab aktuell folgendes problem:
ich will eine progress sprich fortschrittsanzeige realisieren. dabei hab ich eine prozessfortschrittsbalken und einen gesamtfortschrittsbalken jeweils in einem panel. das deshalb, weil ich mein fenster modular halten will, damit eventuell auch nur einer der beiden balken verwendet werden kann.
nun hab ich aber folgendes problem: ich habe eine procedure, die mir den balken und die anzeige (xxx / yyy) neu setzt. dieser procedure übergebe ich einen progressvalue, der das ausmass des fortschritts angibt. weiters kann dieser progressvalue entweder nur eine zahl (z.b. 1) aber auch eine mit einer einheit behaftete zahl sein (z.b. 1MB).
nun soll die funktion folgendes tun:
sind beide balken sichtbar, dann rückt der untere balken (total) in abhängigkeit vom oberen (process) weiter.
beispiel: ich habe 3 files mit 2Mb, 2Mb und 4Mb, somit laufen oben die nacheinander durch. die position des balkens kann ich ja mit round((current + progressvalue) / maximal) berechnen. beim unteren könnte ich den balken detto so setzen.
ist der obere auf 100% angekommen (abfangen dass man nicht drüber kommt eventuell vorsehen), solls mit dem nächsten weitergehen (klar, ein reset und set mit neuen werten).
die anzeige (xxx / yyy) läßt sich ja da leicht mit einem format(.) realisieren.
ich glaube euch ist mitlerweile klar, was ich da realisieren will, kennt man doch von so einigen installationspackages, bei denen oben der balken für das aktuelle file läuft und unten darunter der balken für die gesamte installation. und genau sowas will ich da nun realisieren. (mit dem kleinen unterschied, dass eventuell auch nur einer der balken dargestellt wird, die funktionalität aber wenn möglich schon so gelöst ist, dass es egal ist, ob einer oder beide zu sehen ist, die jeweilige procedure unabhängig davon das richtige macht).
habt ihr da eine idee, wie man sowas schnell und vorallem einfach realisiert oder realisieren könnte? hab da momentan zwar schon einige ideen, allerdings zerfällt das bei mir in zig if-bedingungen usw., dass ich mir denke, das muss doch einfacher gehen.
hätte nämlich eine globale progress gemacht und da drinnen eine "allgemeine" balken und anzeigenaktualisierungs-procedure aufgerufen, der ich die jeweiligen parameter auf den weg mitgebe, also entweder vom total oder vom progress (da ja gleiche funktionalität). was haltet ihr davon oder habt ihr eine bessere bzw. effizientere lösung?
stephan.
|