MultiColor

  • Hi leute,

    kein nützliches Script,
    aber dafür ein schönes :)

    Spoiler anzeigen
    [autoit]

    Opt("MustDeclareVars",1)
    Opt("GUIOnEventMode",1)

    [/autoit] [autoit][/autoit] [autoit]

    Const $GUI_GR_COLOR = 8
    Const $GUI_GR_RECT = 10

    [/autoit] [autoit][/autoit] [autoit]

    Const $TITLE = "MultiColor"
    Const $WIDTH = 400
    Const $HEIGHT = 400

    [/autoit] [autoit][/autoit] [autoit]

    Const $SQUAREWIDTH = 20
    Const $SQUAREHEIGHT = 20

    [/autoit] [autoit][/autoit] [autoit]

    main()
    Func main()
    GUICreate($TITLE, $WIDTH, $HEIGHT, -1, -1, -1,-1,0)
    GUISetOnEvent(-3,"_EXIT")

    _paintsquares(GUICtrlCreateGraphic(0,0,$WIDTH,$HEIGHT))

    GUISetState(@SW_SHOW)
    While 1
    Sleep(1000)
    WEnd
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _EXIT()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _paintsquares($Graphics)
    Local $x,$y
    Local $color

    For $x=0 To $WIDTH Step $SQUAREWIDTH
    For $y=0 To $HEIGHT Step $SQUAREHEIGHT
    $color = getRandomColor()
    GUICtrlSetGraphic ($Graphics,$GUI_GR_COLOR,$color,$color)
    GUICtrlSetGraphic ($Graphics,$GUI_GR_RECT,$x,$y,$SQUAREWIDTH,$SQUAREHEIGHT)
    Next
    Next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func getRandomColor()
    Local $color

    $color = "0x"
    For $i=1 To 6 Step 1
    $color&=getHex(Random (0,15,1))
    Next

    Return $color
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func getHex($number)
    If $number < 10 And $number >= 0 Then
    Return String($number)
    ElseIf $number == 10 Then
    Return "A"
    ElseIf $number == 11 Then
    Return "B"
    ElseIf $number == 12 Then
    Return "C"
    ElseIf $number == 13 Then
    Return "D"
    ElseIf $number == 14 Then
    Return "E"
    ElseIf $number == 15 Then
    Return "F"
    Else
    Return "0"
    EndIf
    EndFunc

    [/autoit]
  • Und eins mit bewegung ;)

    Spoiler anzeigen
    [autoit]

    Opt("MustDeclareVars",1)
    Opt("GUIOnEventMode",1)

    [/autoit] [autoit][/autoit] [autoit]

    Const $GUI_GR_COLOR = 8
    Const $GUI_GR_RECT = 10
    Const $GUI_GR_REFRESH = 22

    [/autoit] [autoit][/autoit] [autoit]

    Const $TITLE = "MultiColor"
    Const $WIDTH = 800
    Const $HEIGHT = 800

    [/autoit] [autoit][/autoit] [autoit]

    Const $SQUAREWIDTH = 40
    Const $SQUAREHEIGHT = 40

    [/autoit] [autoit][/autoit] [autoit]

    main()
    Func main()
    Local $Graphics,$timer

    GUICreate($TITLE, $WIDTH, $HEIGHT, -1, -1, -1,-1,0)
    GUISetOnEvent(-3,"_EXIT")

    $Graphics = GUICtrlCreateGraphic(0,0,$WIDTH,$HEIGHT)
    _paintsquares($Graphics)

    GUISetState(@SW_SHOW)
    While 1
    Sleep(1000)
    _paintsquares($Graphics)
    WEnd
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _EXIT()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _paintsquares($Graphics)
    Local $x,$y
    Local $color

    For $x=0 To $WIDTH Step $SQUAREWIDTH
    For $y=0 To $HEIGHT Step $SQUAREHEIGHT
    $color = getRandomColor()
    GUICtrlSetGraphic ($Graphics,$GUI_GR_COLOR,$color,$color)
    GUICtrlSetGraphic ($Graphics,$GUI_GR_RECT,$x,$y,$SQUAREWIDTH,$SQUAREHEIGHT)
    Next
    Next
    GUICtrlSetGraphic ($Graphics,$GUI_GR_REFRESH)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func getRandomColor()
    Local $color

    $color = "0x"
    For $i=1 To 6 Step 1
    $color&=getHex(Random (0,15,1))
    Next

    Return $color
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func getHex($number)
    If $number < 10 And $number >= 0 Then
    Return String($number)
    ElseIf $number == 10 Then
    Return "A"
    ElseIf $number == 11 Then
    Return "B"
    ElseIf $number == 12 Then
    Return "C"
    ElseIf $number == 13 Then
    Return "D"
    ElseIf $number == 14 Then
    Return "E"
    ElseIf $number == 15 Then
    Return "F"
    Else
    Return "0"
    EndIf
    EndFunc

    [/autoit]
  • Zitat

    ich würde mich über ne beschreibung und n screen freuen :D

    Das Script öffnet ein Fenster in dem sich bunte(!) Rechtecke befinden die verschiedene Farben haben!!!111einseinself

    Features:

    - viele Farben
    - besser als das meiste was im Fernsehen kommt
    - bunt

    Funktioniert.PNG

    Einmal editiert, zuletzt von bluelamp (28. Oktober 2008 um 19:20)

    • Offizieller Beitrag

    Die beiden Funktionen "getRandomColor()" und "getHex()" kann man weglassen und dann in der Funktion "_paintsquares()" gleich das hier einsetzen:

    [autoit]


    $color = '0x' & StringMid(Hex(Random(0, 16777215, 1)), 3)

    [/autoit]

    Das Problem ist bloß, dass mit den GUICtrlSetGraphic-Routinen von AutoIt irgendwas nicht so richtig funktioniert, denn nach kurzer Zeit kommt bei Deinem Script das hier raus:
    statistics_1.0_Beta_3.zip

  • Zitat

    Die beiden Funktionen "getRandomColor()" und "getHex()" kann man weglassen und dann in der Funktion "_paintsquares()" gleich das hier einsetzen:

    Wo ist den hier der Smiley der sich auf dem Kopf rumhämmert ? :D
    Interne Funktionen sind natürlich besser.

    Zitat

    Das Problem ist bloß, dass mit den GUICtrlSetGraphic-Routinen von AutoIt irgendwas nicht so richtig funktioniert, denn nach kurzer Zeit kommt bei Deinem Script das hier raus

    Bei mir gibt es das Problem nicht....

  • Wenn das tatsächlich so viele Probleme macht bei anderen Rechnern werd ich mich in Zukunft wohl mehr auf GDI+ konzentrieren :)