Hey,
Gibt es eine Möglichkeit die Maximale Größe einer Progressbar (GUICtrlCreateProgress) zu ändern? Bei Koda gibt es diese Funktion dies zu machen. Das wird da mit "GUICtrlSetLimit" gemacht. Leider funktioniert es nicht... Gibt es noch eine andere Möglichkeit?
LG Jakolo
Progressbar Maximum ändern
-
- [ offen ]
-
Jakolo -
10. Dezember 2009 um 18:57 -
Geschlossen -
Erledigt
-
-
zeig mal dein Skript, das funktioniert eigentlich super;)
-
soweit ich weiß ist GUICtrlSetLimit nur für input list und edit controls
ein limit ist ja auch egtl schwachsinnig oder? für was braucht man sowas?
-
Wenn du eine Progressbar per GUICtrlSetData änderst, ist der Wert ein Prozentwert. Die Progressbar kann gut und gerne bis 200.000 gehen - Bei 100% ist sie trotzdem voll.
-
Ich fände es ganz praktisch. ich mach nämlich grad nen progress zu nem download und da könnte ich dann einfach das maximum des progesses auf die datei größe setzen und dann während dem download immerzu die progressbar auf die schon heruntergeladene größe setzen. sonst ich hab eigendlich auch ne andere möglichkeit benutzt. (größe der datei / 100 und dann immer prüfen wenn so und so viel byte gedownloadet sind dann progress + 1)
naja trozdem danke.
jakolo
p.s. bei C# macht man das z.b. glaub ich so (die erste möglichkeit)Edit:
Bei mir geht genau bei der oben beschriebenen Möglichkeit der Progressbalken plötzlich nicht mehr richtig.
meine Source:Spoiler anzeigen
[autoit]#include <ProgressConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>$listURL = "http://autoitpatcher.au.funpic.de/list.txt"
[/autoit] [autoit][/autoit] [autoit]$Form1 = GUICreate("Form1", 394, 183, 192, 124)
[/autoit] [autoit][/autoit] [autoit]
$Progress1 = GUICtrlCreateProgress(9, 7, 372, 169)
GUISetState(@SW_SHOW)$ListSize = InetGetSize ($listURL)
[/autoit] [autoit][/autoit] [autoit]
$zahl = Execute ($ListSize / 100)
$zahl2 = $zahl
$a = 1
;~ MsgBox (0,"",$ListSize & " " & $zahl)
$ListDL = InetGet ($listURL,@ScriptDir & "\list.txt",0,1)
While @InetGetActive
If @InetGetBytesRead >= $zahl2 Then
GUICtrlSetData ($Progress1,$a)
$zahl2 += $zahl
$a += 1
EndIf
WEndMsgBox (0,"Fertig","Download erflogreich beendet")
[/autoit] [autoit][/autoit] [autoit]Do
[/autoit]
Sleep (100)
until GUIGetMsg() = $GUI_EVENT_CLOSELiegt das vielleicht an der größe der list.txt? Das der download zu schnell zu ende ist?
Hoffe ihr könnt mir helfen -
Heyho,
[autoit]
ich kann dir zwar nicht wirklich weiterhelfen, aber habe da mal 'ne Frage:
Warum schreibst du:$zahl = Execute ($ListSize / 100)
[/autoit]
[autoit]
Ich dachte nämlich bisher, das ist nur dazu da, um Strings auszurechnen, beispielsweise
eine Ausgabe von einem Input. ("(10+10)*3")
Könntest doch einfach nur schreiben$zahl = $ListSize / 100
[/autoit]
oder nicht? Sagt mir bitte wenn ich Falsch liege -
Keine Ahnung ohne "Excute" hab ich das noch nie probiert... Excute liefert aufjedenfall das richtige Ergebnis.
LG Jakolo -
mhm
mal ne frage, wenn dies nit so geht, is zwar bissl off topic, aber uahc mit limit zu tun.
Könnte man so eig nen Slider auch mit Limit versehen?Ansonsten, schade dass man ner Progressbar nit so viele dinge setzen kann.
Naja limit ist auch iwie unlogisch -
soweit ich weiß ist GUICtrlSetLimit nur für input list und edit controls
also nö^^
aber ein slider enthält ja sowieso nur die werte die du ihm zuweißt also für was ein limit?
-
- Offizieller Beitrag
Hallo
Natürlich kann man den Slider mit GuiCtrlSetLimit beeinflussen (siehe hilfe).
Die Progressbar mit GuiCtrlSetLimit zu beeinflussen macht nur Sinn, wenn man eine große Progressbar hat, wo ein prozent mehr als ca. 10px sind (wirkt dann ruckartig).
Sonst kann man das auch immer ziemlich einfach umrechnen mit dreisatz:100 * @InetGetBytesRead/ $iSize
btw: @InetGetBytesRead ist veraltet, jetzt wird InetGetInfo benutztGruß
Spider