1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. N0THING

Beiträge von N0THING

  • Erstlingswerk : Farbspiel

    • N0THING
    • 14. Februar 2011 um 16:32

    Das mit der Transparents ist gewollt.
    Schwierigkeitsgrad wird dadurch erhöht.

    Danke fürs Feedback

  • Erstlingswerk : Farbspiel

    • N0THING
    • 13. Februar 2011 um 22:18

    Guten Abend

    Ich will hier nun mein erstes, kleines Programm vorstellen.
    Es ist ein kleines Spiel:
    Auf einem 3x3 großen Feld werden nacheinander Farben in zufälliger Reihenfolge und an zufälliger Stelle aufblinken.
    Aufgabe ist es diese danach wieder in die richtige Reihenfolge zu bringen, dazu einfach auf die Buttons klicken.

    Freue mich auf Meinungen, Verbesserungen und Anregungen.
    Bitte geht mit mir nicht so hart ins Gericht
    Bin halt ein totaler Anfänger^^

    Edit: Variablen werden jetzt vorher deklariert
    Hier das Skript:

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $anz = 5
    $anzcheck = $anz
    $code = ""
    $answer = ""
    $trans = 255
    $auf = 0
    $Form1 = GUICreate("Farbspiel", 541, 371, 192, 124)
    $Label1 = GUICtrlCreateLabel("", 8, 8, 76, 33)
    $MenuItem1 = GUICtrlCreateMenu("Start")
    $MenuItem2 = GUICtrlCreateMenuItem("Start", $MenuItem1)
    $MenuItem3 = GUICtrlCreateMenuItem("Anzahl Farbkombinationen", $MenuItem1)
    Global $Button [10]
    _Buttons(1,0xFF0000,80,56,121,81)
    _Buttons(2,0x666666,208,56,121,81)
    _Buttons(3,0x00FF00,336,56,121,81)
    _Buttons(4,0x666666,80,144,121,81)
    _Buttons(5,0x000000,208,144,121,81)
    _Buttons(6,0x666666,336,144,121,81)
    _Buttons(7,0xFFFF00,80,232,121,81)
    _Buttons(8,0x666666,208,232,121,81)
    _Buttons(9,0x0000FF,336,232,121,81)

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

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    If $anzcheck = 0 Then
    If $answer = $code Then
    MsgBox(0,"Richtig","Die Lösung stimmt")
    GUICtrlSetData($label1,"")
    $answer = ""
    $anzcheck = $anz
    Else
    MsgBox(0,"Falsche Lösung","Die Lösung ist nicht korrekt")
    GUICtrlSetData($label1,"")
    $answer = ""
    $anzcheck = $anz
    EndIf
    EndIf
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $MenuItem3
    $anz = InputBox("Anzahl der Farbkombinationen festlegen","Geben sie die Anzahl der Farbkombinationen ein","5")
    $anzcheck = $anz
    Case $Button[1]
    _Faerben2(1,0xFF0000)
    Case $Button[2]
    _Faerben2(2,0x666666)
    Case $Button[3]
    _Faerben2(3,0x00FF00)
    Case $Button[4]
    _Faerben2(4,0x666666)
    Case $Button[5]
    _Faerben2(5,0x000000)
    Case $Button[6]
    _Faerben2(6,0x666666)
    Case $Button[7]
    _Faerben2(7,0xFFFF00)
    Case $Button[8]
    _Faerben2(8,0x666666)
    Case $Button[9]
    _Faerben2(9,0x0000FF)
    Case $MenuItem2
    GUICtrlSetData($label1,"")
    For $y = 1 To 9
    GUICtrlSetBkColor($Button[$y],0xFFFFFF)
    Next
    $code = ""
    For $x = 1 To $anz

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

    For $y = 1 To 9
    GUICtrlSetBkColor($Button[$y],0xFFFFFF)
    GUICtrlSetState($Button[$y],$GUI_DISABLE)
    Next
    sleep(1000)
    $but = Random(1,9,1)
    If $but = 1 Then _Faerben(1,0xFF0000)
    If $but = 2 Then _Faerben(2,0x666666)
    If $but = 3 Then _Faerben(3,0x00FF00)
    If $but = 4 Then _Faerben(4,0x666666)
    If $but = 5 Then _Faerben(5,0x000000)
    If $but = 6 Then _Faerben(6,0x666666)
    If $but = 7 Then _Faerben(7,0xFFFF00)
    If $but = 8 Then _Faerben(8,0x666666)
    If $but = 9 Then _Faerben(9,0x0000FF)
    Sleep(1000)
    Next

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

    For $y = 1 To 9
    GUICtrlSetBkColor($Button[$y],0xFFFFFF)
    GUICtrlSetState($Button[$y],$GUI_ENABLE)
    Next
    $answer = ""
    $trans = 255
    $auf = 0
    WinSetTrans("Farbspiel","",$trans)
    GUICtrlSetData($label1,$anz)
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func _Faerben($butt,$farbe)
    GUICtrlSetBkColor($Button[$butt],$farbe)
    WinSetTrans("Farbspiel","",$trans)
    If $auf = 0 Then $trans -= 20
    If $auf = 1 Then $trans += 20
    If $trans = 255 Then $auf = 0
    If $trans = 35 Then $auf = 1
    $code &= $butt
    EndFunc

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

    Func _Faerben2($butt,$farbe)
    $anzcheck -= 1
    $answer &= $butt
    GUICtrlSetData($label1,$anzcheck)
    GUICtrlSetBkColor($Button[$butt],$farbe)
    sleep(400)
    GUICtrlSetBkColor($Button[$butt],0xFFFFFF)
    EndFunc

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

    Func _Buttons($buttonn,$farbe,$left,$top,$breite,$hoehe)
    $Button[$buttonn] = GUICtrlCreateButton("", $left, $top, $breite, $hoehe)
    GUICtrlSetBkColor($Button[$buttonn],$farbe)
    GUICtrlSetState($Button[$buttonn],$GUI_DISABLE)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
  • EditBox + GuiCtrlSetData Problem

    • N0THING
    • 20. Januar 2011 um 18:59

    Stimmt
    Habe ich nicht bedacht, weil ich sofort danach wieder etwas einfüge und es so nicht sehe/bemerke^^

  • EditBox + GuiCtrlSetData Problem

    • N0THING
    • 20. Januar 2011 um 18:20

    Danke
    aber dann habe ich das Problem das er wieder nach oben springt...

  • EditBox + GuiCtrlSetData Problem

    • N0THING
    • 20. Januar 2011 um 17:40

    Danke für die Funktion Großvater
    Habe da aber noch ein Problem
    Ich will das EditFeld zurücksetzen also "" leeren
    Das gelingt mir aber nicht

    Spoiler anzeigen
    [autoit]


    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    $Form1 = GUICreate("", 639, 438, 192, 124, -1, BitOR($WS_EX_TRANSPARENT,$WS_EX_WINDOWEDGE))
    $Edit1 = GUICtrlCreateEdit("Text", 129, 32, 401, 265)
    GUISetState(@SW_SHOW)

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

    AdlibRegister("_Refresh",500)
    While 1

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func _Refresh()
    Static $I = 0
    Local $EM_GETSEL = 0xB0, $EM_SETSEL = 0xB1, $WM_SETREDRAW = 0x000B
    Local $SelStart = DllStructCreate("INT"), $SelEnd = DllStructCreate("INT")
    $I += 1
    GUICtrlSendMsg($Edit1, $WM_SETREDRAW, 0, 0)
    GUICtrlSendMsg($Edit1, $EM_GETSEL, DllStructGetPtr($SelStart), DllStructGetPtr($SelEnd))
    GUICtrlSendMsg($Edit1, $EM_SETSEL, -2, -1) ; Textcursor ans Ende setzen
    GuiCtrlSetData($Edit1, "" , 1)
    GUICtrlSendMsg($Edit1, $EM_SETSEL, DllStructGetData($SelStart, 1), DllStructGetData($SelEnd, 1))
    GUICtrlSendMsg($Edit1, $WM_SETREDRAW, 1, 0)
    EndFunc

    [/autoit]

    Was mache ich falsch? Wie gehts richtig?

  • EditBox + GuiCtrlSetData Problem

    • N0THING
    • 19. Januar 2011 um 20:10

    Sehr nett das du meinen Horizont in Sachen AutoIt erweiterst!
    So weit, so gut
    Nochmals Danke
    Die einfachsten Lösungen sind wohl die Besten^^

  • EditBox + GuiCtrlSetData Problem

    • N0THING
    • 19. Januar 2011 um 19:57

    Danke Name22
    mit der GUIEdit.au3 habe ich mich noch nicht so beschäftigt, habe immer nur die Standard GUI-Funktionen genutzt.
    Deine Lösung habe ich gleich eingebaut und sie funktioniert so wie sie es soll.
    Oscar ich glaube ein ListView wäre unpassend da es meistens längere Texte sind.
    Finde es nur schade das die Lösung nicht einfacher ist.
    Ein Parameter mehr der das behebt wäre schon sinnvoll, wie ich finde.

  • EditBox + GuiCtrlSetData Problem

    • N0THING
    • 19. Januar 2011 um 15:42

    Hallo liebe Autoit-Gemeinde,

    ich habe ein kleines Problem mit einer EditBox und GuiCtrlSetData:
    -- habe eine Funktion die alle 500ms die EditBox aktualisiert
    -- die EditBox wird mit GuiCtrlSetData gefüllt, aber jedes mal wenn das passiert, springt er zum Anfang
    -- wenn ich GuiCtrlSetData($Edit,"Text",True) benutze springt er lediglich zum Ende

    Ich möchte währenddessen aber weiterhin ganz normal scrollen

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    $text = ""
    For $x = 1 TO 100
    $text &= @Crlf & "Text"
    Next

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("", 639, 438, 192, 124, -1, BitOR($WS_EX_TRANSPARENT,$WS_EX_WINDOWEDGE))
    $Edit1 = GUICtrlCreateEdit("", 129, 32, 401, 265)
    GUICtrlSetData($edit1,$text)

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

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    AdlibRegister("_Refresh",500)
    While 1

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func _Refresh ()
    GuiCtrlSetData($edit1,$text)
    EndFunc

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

    Jemand eine Idee das zu lösen oder zu umgehen?

    Danke für alle Antworten

  • StringBetween Problem

    • N0THING
    • 17. Januar 2011 um 15:42

    Hier mal mein Vorschlag

    Spoiler anzeigen
    [autoit]


    #Include <String.au3>
    #Include <Array.au3>
    $string = ClipGet()
    $search = _StringBetween($string,">","<")
    _ArrayDisplay($search)

    [/autoit]


    Wie du siehst, musst du dann zwar jeden zweiten Array auslesen, aber das ist nicht so schlimm oder?

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™