progressbar

07/19/2010 22:29 omer36#1
hab mal wieder ne kleine frage, undzwar will ich, wenn ich ein button drücke die progressbar sich jedesmal um 20erhöht, aber bekomm das iwie nicht hin ...
in internet hab ich dazu nicht wirklich was gefunden....


mein bsp. code:

PHP Code:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("Test"271168192124)
GUISetBkColor(0x000000)
$Button1 GUICtrlCreateButton("weiter"32807341$WS_GROUP)
$Button2 GUICtrlCreateButton("abbrechen"128807341$WS_GROUP)
$Progress1 GUICtrlCreateProgress(1213623717)
GUICtrlSetData($Progress1,0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
        Case 
$Button1
            weiter
()
        Case 
$Button2
            
Exit
    EndSwitch
WEnd


Func weiter
()
GUICtrlSetData($Progress1, +20)
EndFunc 
so wird es nur um 20erhöht, aber mehr nicht...
MfG
07/19/2010 22:32 Praim#2
Ich bin nicht so der Profi ( eig garnich oO ) in Sachen AutoIt, aber ich glaube, du musst der Funktion weiter() sagen, dass sie bis 100 laufen soll.
Ich würde mal vermuten, du kannst das machen indem du das hier:
Code:
GUICtrlSetData($Progress1, +20)
Sleep (1000)
GUICtrlSetData($Progress1, +20) 
Sleep (1000)
GUICtrlSetData($Progress1, +20) 
Sleep (1000)
GUICtrlSetData($Progress1, +20) 
Sleep (1000)
GUICtrlSetData($Progress1, +20) 
Sleep (1000)
Aber wie gesagt, ich kenne mich echt nicht so gut aus damit :)
Hoffe ich konnte dir trotzdem helfen.

mfg

€: sryy geht nicht :(
07/19/2010 22:36 omer36#3
ne klappt nicht ^^
07/19/2010 22:39 Shadow992#4
Du setzt mit GuictrlSetData(...) ja einen bestimmten Wert fest.
+20 ist ja das selbe wie 20.
Du musst also immer den Wert nehmen, wo die progressbar gerade sein soll.
Hier ein Beispiel:
PHP Code:
GUICtrlSetData($Progress150
Das würde die progressbar zur Hälfte füllen
PHP Code:
GUICtrlSetData($Progress175
Das würde die Progressbar zu 3/4 füllen
PHP Code:
GUICtrlSetData($Progress1100
Und das würde die progressbar zu 100% füllen.
07/19/2010 22:43 bladerofdarknes#5
so wie shadow es sagt gehts.
07/19/2010 22:44 omer36#6
Quote:
Originally Posted by Shadow992 View Post
Du setzt mit GuictrlSetData(...) ja einen bestimmten Wert fest.
+20 ist ja das selbe wie 20.
Du musst also immer den Wert nehmen, wo die progressbar gerade sein soll.
Hier ein Beispiel:
PHP Code:
GUICtrlSetData($Progress150
Das würde die progressbar zur Hälfte füllen
PHP Code:
GUICtrlSetData($Progress175
Das würde die Progressbar zu 3/4 füllen
PHP Code:
GUICtrlSetData($Progress1100
Und das würde die progressbar zu 100% füllen.
das weiss ich ja shadow, aber wirklich meine lösung ist es nicht,
weil ich will ja mit ein klick auf den selben button die pro.bar jedesmal um 20erweitern...


Quote:
so wie shadow es sagt gehts.
hmm.. iwie versteh ich es grade nicht -.-
07/19/2010 22:45 PenGuin :O#7
Wie sinnvoll dein Post wieder ist, blade... :facepalm:
Natürlich geht es so, sonst würde er es nicht schreiben o_O
Habs mal als Spam reportet.

@Topic,
Variable deklarieren mit 0 und dann jedesmal wenn Button gedrückt, soll sich die Variable um 20 erhöhen und dann GUICtrlSetData($Progress, $Variable)

€:

Code:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>

Global $Step = 0

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Test", 271, 168, 192, 124)
GUISetBkColor(0x000000)
$Button1 = GUICtrlCreateButton("weiter", 32, 80, 73, 41, $WS_GROUP)
$Button2 = GUICtrlCreateButton("abbrechen", 128, 80, 73, 41, $WS_GROUP)
$Progress1 = GUICtrlCreateProgress(12, 136, 237, 17)
GUICtrlSetData($Progress1,0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            weiter()
        Case $Button2
            Exit
    EndSwitch
WEnd


Func weiter()
	$Step += 20
	GUICtrlSetData($Progress1, $Step)
EndFunc
€2: Another report.
Außerdem, wenn omer scho ngesagt hat, dass es von prime nicht geht, wozu dann sagen, dass shadows Lösung geht?
07/19/2010 22:50 bladerofdarknes#8
omg report mich du postfreak nc :)
wenn 2 leute was unterschiedliches posten kann man wohl sagen welches richtig ist ;)

Quote:
GUICtrlSetData($Progress1, 20)
GUICtrlSetData($Progress1, 40)
GUICtrlSetData($Progress1, 60)
GUICtrlSetData($Progress1, 80)
GUICtrlSetData($Progress1, 100)
07/19/2010 22:56 omer36#9
okk danke dir, klappt.
07/21/2010 14:00 DraaaKe#10
Quote:
Originally Posted by bladerofdarknes View Post
omg report mich du postfreak nc :)
wenn 2 leute was unterschiedliches posten kann man wohl sagen welches richtig ist ;)
So wie du das sagst mit 20 40 60 usw.... Man sollte schon vorher bisschen denken. Er will bei jedem click auf den Button das Es um 20 weiter geht. Entweder so wies Pinguin gepostet hat oder so:

$ProgressBarAktuell = guictrlread($Progressbar1)
$Variable = $ProgressBarAktuell + "20"
guictrlsetdata($Progressbar1, $Variable)

Damit lest es den aktuellen wert aus, und rechnet 20 dazu.
07/22/2010 13:18 Adroxxx#11
#closed