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. Stoani

Beiträge von Stoani

  • Daten speichern in einer versteckten Editbox?

    • Stoani
    • 11. Januar 2012 um 00:19

    1. eine Variable IST eine Zwischenablage.
    2. Eine Textdatei erstellen und diese vergrypten das keiner an den Inhalt kommt.
    3.Eine Editbox erstellen und die Sichtbarkeit auf false stellen.

  • IE - Seitenaufruf beschränken

    • Stoani
    • 9. Januar 2012 um 20:50
    Zitat von SgtIgram

    er war sich zu fein diese 5-6 zeilen selber zu schreiben genau wie bei den andern threads.

    Ja Meister. :rofl:
    Stimmt Meister. :huh:
    Mhm...... :wacko:

    Blödsinn. :thumbdown:

  • IE - Seitenaufruf beschränken

    • Stoani
    • 9. Januar 2012 um 16:38

    Also war der Tipp mit der If-Abfrage zwar keine Lösung aber ein Denkansatz. Soviel zum Thema unnötig......

    Gefällt mir gut , funtkionierts auch? ^^

  • IE - Seitenaufruf beschränken

    • Stoani
    • 9. Januar 2012 um 16:27

    woher soll ich das wissen? Weiß ich wie gut derjenige welcher die Frage gestellt hat bereits mit AutoIt vertraut ist?
    Nein.


    _______________________________________________________
    EDIT:


    @SoftCreatR

    Ich hab gerade kein Scite zur Verfügung deshalb kann ich kein Test.- bzw Examplescript schreiben :)

  • IE - Seitenaufruf beschränken

    • Stoani
    • 9. Januar 2012 um 16:23

    und was hältst du davon, nur eine einzige adresse (bzw. deren unteradressen) in der Adresszeile laden zu lassen?
    D.h.:

    If $inhaltadresszeile = $inhalterlaubt Then
    ; dein Script
    ElseIf $adresse <> $inhalterlaubt Then
    ; verhindern
    EndIf


    Ist zwar umständlich aber möglich ;)

    ;------------------------------Edit-------------------


    Sorry für den Doppelpost, mein Browers spinnt grad...


    ;---------------------------Edit2------------------

    @Sgtlgram

    Solche Antworten sind in einem Forum wie diesem einfach nur Kontraproduktiv und Motivationskiller.

  • IE - Seitenaufruf beschränken

    • Stoani
    • 9. Januar 2012 um 16:22

    und was hältst du davon, nur eine einzige adresse (bzw. deren unteradressen) in der Adresszeile laden zu lassen?
    D.h.:

    If $adresse = erlaubt Then

  • Flimmernde Buttons [Problem mit Backgroundimage]

    • Stoani
    • 7. Januar 2012 um 19:42

    Peinlich Peinlich....

    Ich hatte es genau so schon versucht, aber da ich das Skript nicht direkt im [include]-ordner gespeichert habe, wurde es auch nie so verwendet wie ich es wollte. X(
    Danke pheethebee für die rasche und korrekte Hilfe!



    Solved Solved Solved Solved Solved Solved Solved Solved Solved Solved Solved Solved Solved Solved Solved Solved

  • Flimmernde Buttons [Problem mit Backgroundimage]

    • Stoani
    • 7. Januar 2012 um 19:22

    Hallo erstmal,

    wenn ich ein neues GUI entwerfe, entstehen leider immer die gleichen Probleme. Eines davon würd ich nun gerne mal aus der Welt schaffen.
    Und zwar geht es um folgendes:

    Ein GUI-Fenster(500px * 300px) mit einem Hintergrundbild.

    Das Hintergrundbild ist bei mir der Anfang allen übels, erst muss man die richtige Reihenfolge beim erstellen des GUIS einhalten. Dann muss man das Bild noch extra disablen [GUICtrlSetState($bgrImg,$GUI_DISABLE)]

    Alles noch schön und gut. Dann kommt aber schon das nächste Problem mit dem $bgrImg.
    Ich dachte mir: "Buttons? Die sehen mit der Zeit langweilig aus und passen nicht zu einem bunten GUI. Wieso nicht einfach ein kleines Bild mit [GUICtrlCreatePic] erstellen welches seine Farbe solange verändert, wie man draufklickt?!". Gesagt getan.:

    Ich hab mir eine kleine Funktion gemacht, welche diesen "Austausch auf Klick" vornimmt.
    ->

    [autoit]

    #include-once

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

    ; #INDEX# =======================================================================================================================
    ; Title .........: ButtonChangeColor
    ; Author(s) .....: Fabian Steinkogler
    ; ===============================================================================================================================

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

    ; #CURRENT# =====================================================================================================================
    ;_ButtonChangeColor
    ; ===============================================================================================================================

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _ButtonChangeColor
    ; Description ...: Ändert das jeweilige als Button gebrauchte Bild solange diese gedrückt wird.
    ; Syntax.........: _ButtonChangeColor($gImg1,$gImg2)
    ; Parameters ....: $gImg - Name der Variable des Bildes
    ;................: $sImg1 - Pfad zur ersten Datei
    ;................: $sImg2 - Pfad zur zweiten Datei
    ; Author ........: Fabian Steinkogler
    ; ===============================================================================================================================

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

    Func _ButtonChangeColor($gImg,$sImg1,$sImg2)
    If _IsPressed(01) = 1 Then ;Wenn die linke Maustaste gedrückt wird, dann...
    Do ;erneuere...
    GUICtrlSetImage($gImg,$sImg2, -1) ;das Bild solange...
    Until _IsPressed(01) = 0 ;bis die linke Maustaste nicht mehr gedrückt wird.
    EndIf
    GUICtrlSetImage($gImg,$sImg1, -1) ;danach soll das Bild wieder durch das alte ersetzt werden.
    EndFunc

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


    Ja ich weiß, eine eigene UDF wäre nicht nötig gewesen, abgesehen davon, dass es von der Sorte schon X gibt. Aber ich fand es einfach nett, da ich das ganze hoffentlich noch öfters verwenden werde.

    Nun aber zum eigentlichen GUI:
    ->

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <Misc.au3>
    #include <Buttons.au3>

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

    $mGUI = GUICreate("Login", 500, 300, 300, 218, -1, BitOR($WS_EX_TOOLWINDOW,$WS_EX_WINDOWEDGE))
    $bgrImg = GUICtrlCreatePic(".\mainbgrimg.bmp", 0, 0, 500, 300)
    GUICtrlSetState(-1,$GUI_DISABLE)
    $gImg1 = GUICtrlCreatePic(".\settingsico1.bmp", 472, 272, 25, 25)
    $gImg2 = GUICtrlCreatePic(".\helpbtnimg1.bmp", 464, 0, 35, 35)

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

    GUICtrlCreateInput("Name",242,60,203,26,1,512)
    GUICtrlSetFont(-1,12,400,default,"Technic")
    GUICtrlCreateInput("Passwort",242,100,203,24,33,512)
    GUICtrlSetFont(-1,12,400,default,"MS Sans Serif")
    GUISetState(@SW_SHOW)

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

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

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

    Case $gImg1
    _ButtonChangeColor($gImg1,".\settingsico1.bmp",".\settingsico2.bmp")
    MsgBox(64,"","Error")
    Case $gImg2
    _ButtonChangeColor($gImg2,".\helpbtnimg1.bmp",".\helpbtnimg2.bmp")
    MsgBox(64,"","Error")
    EndSwitch
    WEnd

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


    Tja das Problem stellte sich beim Test recht schnell herraus:
    Aus irgendeinem Grund mischt sich das verdammte $bgrImg wieder mal ein und blinzelt hin und da zwischen den Frames heraus (als weißes Flackern).

    Für alle die es sich selber ansehen wollen:
    http://www.file-upload.net/download-4011285/upload.zip.html

    und wie es sich für einen Download gehört ein VirusTotalScanReport:
    http://www.virustotal.com/file-scan/compact.html?id=011c1c0686e8c4083bc168d86fb24980cd1e83b436ea490dbefb9f2cb645dc2f-1325959811#

    Mit freundlichen Grüßen
    Fabian Steinkogler

  • Le solutionneur

    • Stoani
    • 7. Januar 2012 um 14:55

    Servus! -> Da hier nicht nur die Deutschen vertreten sind sondern auch ein paar Affen aus den Alpen, auch von mir ein herzliches Willkommen :)
    Wünsch dir viel Spaß und Erfolg bei deiner AutoIt Karriere.


    Grüße
    Stoani

  • _FilerReadToArray und eine Menge komischer Variablen :)

    • Stoani
    • 17. November 2011 um 20:49

    Hallo misterspeed,

    erstmal Danke für deine Antwort! :thumbup:


    Die Idee mit dem Auslesen einer einzigen Datei ist zwar gut, allerdings möchte ich das Programm so gestalten, dass der Benutzer (Klassenkollegen,etc) die Fragen selber Ergänzen kann. Deshalb auch das externe "Inputskript".
    Was mir bei der Idee unklar ist, ist die Vorgehensweise nachdem die Frage bzw. Antwort ausgelesen wurden. Denn:
    Wenn ich das ganze in einer Textdatei speichere, wie kann ich sicherstellen das der Output in die richtige "Sektion" geschrieben wurde?
    Vielleicht ist es ja eh lösbar, doch mir ist der Befehl dazu glaub ich nicht bekannt. Oder ich hab deinen Vorschlag zum Auslesen noch nicht ganz verstanden :S

    Leichter wäre es, wenn ich das Ganze aus einer .ini-Datei auslese, da ich dort sowieso alles in Sektionen einteilen kann.

    Auf jedenfall sind deine Beispielskripte extrem hilfreich für mich. Danke.


    Es gibt doch nix schöneres wie ein Problem beim Skripten :D Ist irgendwie fast eine Art von Sudoku... xD

    Mit freundlichen Grüßen
    Stoani


    ___________________________________ Edit ___________________________________

    Sorry. Ich hätte das nicht schreiben sollen, bevor ich es nicht richtig versucht habe. Läuft SUPER!


    -> :thumbup:


    Mit freundlichen Grüßen
    Stoani

  • _FilerReadToArray und eine Menge komischer Variablen :)

    • Stoani
    • 16. November 2011 um 21:01

    Guten Tag/Abend

    Also:
    Ich hab mich wiedermal an einer neuen Variablenskripterei versucht...
    Leider ist es auch beim Versuch geblieben.

    Ich vermute das Problem ist, dass ich einfach den Überblick verloren habe.

    Das Skript verfügt zwar über eine Legende, trotzdem möchte ich hier nocheinmal die Funktion des Skriptes erläutern.
    Eigentlich ist es ja nicht nur ein Skript, das eine Rolle spielt.
    Es sind eher zwei.


    Das erste ist ein Tool mit welchem Fragen und Antworten für eine Art "Quiz" manuell eingetragen werden können. Warum? Damit jeder der mit dem "Quiz" lernen möchte auch seine eigenen Fragen und Antworten zum Standardcontent dazufügen können.

    Skript Nummer 1:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <WindowsConstants.au3>
    $hGui = GUICreate("Includer", 490, 114, 192, 124)
    $Frage = GUICtrlCreateInput("Frage", 8, 16, 473, 21)
    $Antwort = GUICtrlCreateInput("Antwort", 8, 48, 225, 21)
    $bInclude = GUICtrlCreateButton("Include", 240, 48, 89, 25)
    ;~ DllCall('uxtheme.dll', 'none', 'SetThemeAppProperties', 'int', 0) ;To set the ProgressBar to WindowsKlassikStile
    $pB = GUICtrlCreateProgress(8, 80, 321, 25)
    $rV = GUICtrlCreateRadio("Violine", 344, 56, 57, 17)
    $rkB = GUICtrlCreateRadio("kl. Bratsche", 400, 56, 81, 17)
    $rgB = GUICtrlCreateRadio("gr. Bratsche", 400, 80, 81, 17)
    $rC = GUICtrlCreateRadio("Cello", 344, 80, 49, 17)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $bInclude
    Global $r1Read = GUICtrlRead($rV), $r2Read = GUICtrlRead($rkB), $r3Read = GUICtrlRead($rgB), $r4Read = GUICtrlRead($rC)
    For $i = 0 To $r4Read -1
    $r1Read = GUICtrlRead($rV)

    Next
    Select
    Case $r1Read = 1
    $fRead = GUICtrlRead($Frage)
    $aRead = GUICtrlRead($Antwort)
    DirCreate(".\Violine")
    FileWriteLine(".\Violine\aVioline.txt",$aRead)
    FileWriteLine(".\Violine\fVioline.txt",$fRead)
    Case $r2Read = 1
    $fRead = GUICtrlRead($Frage)
    $aRead = GUICtrlRead($Antwort)
    DirCreate(".\kl. Bratsche")
    FileWriteLine(".\kl. Bratsche\akl. Bratsche.txt",$aRead)
    FileWriteLine(".\kl. Bratsche\fkl. Bratsche.txt",$fRead)
    Case $r3Read = 1
    $fRead = GUICtrlRead($Frage)
    $aRead = GUICtrlRead($Antwort)
    DirCreate(".\gr. Bratsche")
    FileWriteLine(".\gr. Bratsche\agr. Bratsche.txt",$aRead)
    FileWriteLine(".\gr. Bratsche\fgr. Bratsche.txt",$fRead)
    Case $r4Read = 1
    $fRead = GUICtrlRead($Frage)
    $aRead = GUICtrlRead($Antwort)
    DirCreate(".\Cello")
    FileWriteLine(".\Cello\aCello.txt",$aRead)
    FileWriteLine(".\Cello\fCello.txt",$fRead)
    EndSelect
    Do
    $pRead = GUICtrlRead($pB)
    GUICtrlSetData($pB, $pRead + 25)
    Tooltip("Loading")
    Sleep(60)
    Tooltip("Loading.")
    Sleep(60)
    Tooltip("Loading..")
    Sleep(60)
    Tooltip("Loading...")
    Sleep(60)
    Tooltip("Loading..")
    Sleep(60)
    Tooltip("Loading.")
    Sleep(60)
    Until $pRead = 100
    ToolTip("Ready")
    Sleep(100)
    ToolTip("")
    EndSwitch
    WEnd

    [/autoit]

    Wie sicher einige sofort erkennen, ist der Ladebalken reine Zirde.... :P

    Was macht das Skript:

    Es schreibt die in die Inputboxen eingegeben Daten mittels FileWriteLine in den jeweiligen Ordner des Instruments und sortiert nach Fragen und Antworten.


    Dann sind wir auch schon bei Skript Nummer 2:

    Spoiler anzeigen
    [autoit]

    #Region=========================== Legende ======================================
    ;Der Buchstabe "a" am Anfang einer Variable steht immer für "Antwort"
    ;Bei den Bratschenvariablen steht immer ein "kl" oder "gr" am Anfang. Das steht für "kleine Bratsche" oder "große Bratsche". Nötig, da es von Bratschen zwei verschiedene "Standardgrößen" gibt.
    ;aklBratsche bedeutet also: Antworten für kleine Bratschen
    ;agrBratsche (siehe -1)
    ;aViolin = Eine Liste aller Antworten welche im Ordner ".\Violin" in der "aVioline.txt" - Datei gespeichert sind.

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

    ;Das selbe gibt es nun natürlich auch mit den "Fragen". Der Ablauf ist der gleiche.

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

    ;i am Anfang einer Variable steht bei mir für Index. Hier habe ich versucht, die Anzahl der Fragen und Antworten auszulesen. Dies wir für das erstellen des letzten Arrays(Zweidimensional) benötigt.

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

    ;af steht für "Antwort und Frage". Das ist die Variable für das letzte Array.

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

    ;Die Daten für das Array werden wie schon gesagt aus Textdateien ausgelesn. Diese werden mittels einem externen Programmes geschrieben. Dieses funktioniert mit zwei Inputboxen und speichert die Antworten und Fragen auch gleich in die entsprechenden Ordner.
    #EndRegion======================== Legende ======================================

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

    ;===========================Include==============================
    #include <array.au3>
    #include <file.au3>
    ;===========================Antworten=============================

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

    Global $aViolin, $aklBratsche, $agrBratsche, $aCello
    If Not _FileReadToArray(".\Violine\aVioline.txt",$aViolin) Then
    MsgBox(4096,"Error", " Error: " & @error&@CRLF&".\Violine\aVioline.txt")
    Exit
    EndIf
    For $x = 1 to $aViolin[0]
    ConsoleWrite($aViolin[$x]&@Crlf)
    Next

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

    If Not _FileReadToArray(".\kl. Bratsche\akl. Bratsche.txt",$aklBratsche) Then
    MsgBox(4096,"Error", " Error: " & @error&@CRLF&".\kl. Bratsche\akl. Bratsche.txt")
    Exit
    EndIf
    For $x = 1 to $aklBratsche[0]
    ConsoleWrite($aklBratsche[$x]&@Crlf)
    Next

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

    If Not _FileReadToArray(".\gr. Bratsche\agr. Bratsche.txt",$agrBratsche) Then
    MsgBox(4096,"Error", " Error: " & @error&@CRLF&".\gr. Bratsche\agr. Bratsche.txt")
    Exit
    EndIf
    For $x = 1 to $agrBratsche[0]
    ConsoleWrite($agrBratsche[$x]&@Crlf)
    Next

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

    If Not _FileReadToArray(".\Cello\aCello.txt",$aCello) Then
    MsgBox(4096,"Error", " Error: " & @error&@CRLF&".\Cello\aCello.txt")
    Exit
    EndIf
    For $x = 1 to $aCello[0]
    ConsoleWrite($aCello[$x]&@Crlf)
    Next
    ;===========================Fragen=============================
    Global $fViolin, $fklBratsche, $fgrBratsche, $fCello
    If Not _FileReadToArray(".\Violine\fVioline.txt",$fViolin) Then
    MsgBox(4096,"Error", " Error: " & @error&@CRLF&".\Violine\fVioline.txt")
    Exit
    EndIf
    For $x = 1 to $fViolin[0]
    ConsoleWrite($fViolin[$x]&@Crlf)
    Next

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

    If Not _FileReadToArray(".\kl. Bratsche\fkl. Bratsche.txt",$fklBratsche) Then
    MsgBox(4096,"Error", " Error: " & @error&@CRLF&".\kl. Bratsche\fkl. Bratsche.txt")
    Exit
    EndIf
    For $x = 1 to $fklBratsche[0]
    ConsoleWrite($fklBratsche[$x]&@Crlf)
    Next

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

    If Not _FileReadToArray(".\gr. Bratsche\fgr. Bratsche.txt",$fgrBratsche) Then
    MsgBox(4096,"Error", " Error: " & @error&@CRLF&".\gr. Bratsche\fgr. Bratsche.txt")
    Exit
    EndIf
    For $x = 1 to $fgrBratsche[0]
    ConsoleWrite($fgrBratsche[$x]&@Crlf)
    Next

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

    If Not _FileReadToArray(".\Cello\fCello.txt",$fCello) Then
    MsgBox(4096,"Error", " Error: " & @error&@CRLF&".\Cello\fCello.txt")
    Exit
    EndIf
    ;==================Index der einzelnen .txt Dateien auslesen==================================
    For $x = 1 to $fCello[0]
    ConsoleWrite($fCello[$x]&@Crlf)
    Next
    For $iViolin = 0 To UBound($fViolin) -1
    ConsoleWrite($iViolin&@Crlf)
    Next
    For $iklBratsche = 0 To UBound($fklBratsche) -1
    ConsoleWrite($iklBratsche&@Crlf)
    Next
    For $igrBratsche = 0 To UBound($fgrBratsche) -1
    ConsoleWrite($igrBratsche&@Crlf)
    Next
    For $iCello = 0 To UBound($fCello) -1
    ConsoleWrite($iCello&@Crlf)
    Next
    ;========================In ein zweidimensionales Array eintragen============================
    Global $afViolin [$iViolin][2]
    $afViolin[$iViolin][1] = $fViolin
    $afViolin[$iViolin][2] = $aViolin

    Global $afklBratsche [$iklBratsche][2]
    $afklBratsche[$iklBratsche][1] = $fklBratsche
    $afklBratsche[$iklBratsche][2] = $aklBratsche

    Global $afgrBratsche [$igrBratsche][2]
    $afgrBratsche[$igrBratsche][1] = $fgrBratsche
    $afgrBratsche[$igrBratsche][2] = $agrBratsche

    Global $afCello [$iCello][2]
    $afCello[$iCello][1] = $fCello
    $afCello[$iCello][2] = $aCello

    [/autoit]


    Was macht das Skript:

    Es liest die Daten aus den .txt-Dateien aus und schreibt diese in ein eindimensionales Array. Jeweils eines für Antworten und Fragen.
    Im nächsten Schritt werden die Beiden Arrays (a und f) in einem Array zusammengeführt. Dabei sollten die Fragen in Spalte 1 und die Antworten in Spalte 2 eingeordnet werden.

    Genau hier liegt der Haken...


    Mit freundlichen Grüße
    Stoani

  • 2D - Array und Auslesen

    • Stoani
    • 12. November 2011 um 18:44

    Erstmal danke für die Hilfe @all (besonders an i2c)

    Das Programm ist derweilen so weit:

    - Namen der Person speichern
    - Fragen generieren (bis keine mehr da sind)
    - Die Lösung bis zu 10 mal verwendbar (je nach Einstellung)
    - Speichern ob richtig oder falsch
    - Editbox Counter der Fragen
    - 29 Fragen im Array
    - Auswerten des Ergebnisses
    - Speichern des Ergebnisses in einem .txt-File

    Würd mich freuen, wenn ein paar von euch das Ganze testen, um die gröbsten Bugs rauszufinden.


    Hier der Code:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    #include <array.au3>
    ;~ ===================================================================================================================================
    $input = InputBox("Highscore","Gib hier deinen Namen ein!","")

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

    $vDLL = 'user32.dll'
    $Masze = GUICreate("Maße", 600, 440, 400, 180)
    GUISetIcon(@ScriptDir&"\data\Ma%C3%9Fe.ico",$Masze)
    GUISetBkColor(0x000000)
    $bImg = GUICtrlCreatePic("C:\Users\Stoani\Pictures\asdasd.jpg", 0, 0, 490, 440)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $frage_button = GUICtrlCreateButton("Frage stellen", 10, 392, 196, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $loesung_button = GUICtrlCreateButton("Lösung zeigen", 10, 352, 97, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $Antwort = GUICtrlCreateInput("", 16, 184, 185, 27, BitOR($ES_CENTER, $WS_BORDER), 0)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $Liste = GUICtrlCreateEdit("", 216, 16, 365, 409, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $WS_BORDER), 0)
    GUICtrlSetData(-1, "Noch keine Frage gestellt!")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    $Frage = GUICtrlCreateEdit("", 16, 16, 185, 57, BitOR($ES_CENTER, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_WANTRETURN, $WS_BORDER), 0)
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $go_button = GUICtrlCreateButton("Bestätigen", 109, 352, 97, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUISetState()
    ;~ ===================================================================================================================================
    Global $Read, $index, $i = 0, $counter = 0, $true = 0, $false = 0, $input
    ;Damit kein "," in AutoIt gelangt!====================================================================================
    HotKeySet("{,}","Komma")
    HotKeySet("{NUMPADDOT}","Komma")
    Func Komma()
    Send(".")
    EndFunc
    ;===================================================================================================================
    Global $mA[29][3]

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

    $mA[0][0] = "Wie lange ist der Korpus ?"
    $mA[0][1] = "356"
    $mA[1][0] = "Wie lange ist die Korpusmensur ?"
    $mA[1][1] = "195"
    $mA[2][0] = "Wie lange ist die Halsmensur ?"
    $mA[2][1] = "130"
    $mA[3][0] = "Wieviel beträgt die Halsstärke am Sattel(exklusive Griffbrett)?"
    $mA[3][1] = "13"
    $mA[4][0] = "Wieviel beträgt die Halsstärke vor dem Halsfuß(exklusive Griffbrett)?"
    $mA[4][1] = "14"
    $mA[5][0] = "Wieviel beträgt die Halsstärke am Sattel(inklusive Griffbrett)?"
    $mA[5][1] = "19"
    $mA[6][0] = "Wieviel beträgt die Halsstärke am Sattel(inklusive Griffbrett)?"
    $mA[6][1] = "21"
    $mA[7][0] = "Wie hoch ist der Halsüberstand ?"
    $mA[7][1] = "6"
    $mA[8][0] = "Wie lange ist das Griffbrett ?"
    $mA[8][1] = "270"
    $mA[9][0] = "Wie breit ist das Griffbrett am Sattel ?"
    $mA[9][1] = "23.5"
    $mA[10][0] = "Wie breit ist das Griffbrett am Ende?"
    $mA[10][1] = "42"
    $mA[11][0] = "Wie hoch ist der Griffbrettrand ?"
    $mA[11][1] = "5"
    $mA[12][0] = "Wie stark ist die Griffbretthohlung unter der Diskantsaite ?"
    $mA[12][1] = "0.5"
    $mA[13][0] = "Wie stark ist die Griffbretthohlung unter der Basssaite ?"
    $mA[13][1] = "0.7"
    $mA[14][0] = "Radius der Griffbrettrundung ?"
    $mA[14][1] = "42"
    $mA[15][0] = "Wie hoch ist die Griffbrettprojektion ?"
    $mA[15][1] = "27"
    $mA[16][0] = "Wie lange ist die Mensur ?"
    $mA[16][1] = "330"
    $mA[17][0] = "Abstand vom Steg zum Saitenhalter ?"
    $mA[17][1] = "55"
    $mA[18][0] = "Saitenband am Sattel ?"
    $mA[18][1] = "16.3"
    $mA[19][0] = "Saitenband am Steg ?"
    $mA[19][1] = "33.5"
    $mA[20][0] = "Abstand von Saite zu Saite am Steg ?"
    $mA[20][1] = "11.5"
    $mA[21][0] = "Saitenlage bei Stahlsaiten [Diskantsaite] ?"
    $mA[21][1] = "3.5"
    $mA[22][0] = "Saitenlage bei Darmsaiten [Diskantsaite] ?"
    $mA[22][1] = "2.5"
    $mA[23][0] = "Saitenlage bei Stahlsaiten [Basssaite] ?"
    $mA[23][1] = "4"
    $mA[24][0] = "Saitenlage bei Darmsaiten [Basssaite] ?"
    $mA[24][1] = "5.5"
    $mA[25][0] = "Wieviel Grad beträgt der Saitenknickwinkel ?"
    $mA[25][1] = "158"
    $mA[26][0] = "Wie stark ist der Steg an der Oberseite ?"
    $mA[26][1] = "1.3"
    $mA[27][0] = "Wie stark sind die Stegfüße ?"
    $mA[27][1] = "4.2"
    $mA[28][0] = "Wie hoch ist der Steg ?"
    $mA[28][1] = "32"

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

    For $i = 0 To UBound($mA) - 1
    $mA[$i][2] = 0
    Next
    ;~ =======================================================================
    $i = 0
    $false = 0
    $true = 0
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $frage_button
    GUICtrlSetData($Liste,29 - $counter&"/29 verbleibend")
    GUICtrlSetState($go_button, $GUI_ENABLE)
    $counter += 1
    If $counter <= UBound($mA) Then
    Do
    $index = Random(0, UBound($mA) - 1, 1)
    Until $mA[$index][2] = 0
    $cRead = $mA[$index][0]
    GUICtrlSetData($Frage, $cRead)
    $mA[$index][2] = 1 ; setzt Frage als bereits gestellt
    ConsoleWrite($mA[$index][0]&@CRLF&$mA[$index][1]&@CRLF)
    Else
    If $true >= 28 Then
    If $i <= 5 Then
    GUICtrlSetData($Liste,"Du hast "&$true&"/29 Fragen richtig beantwortet!"&@CRLF&"Die Lösung wurde "&$i&"mal gebraucht!"&@CRLF&@CRLF&"Das gibt die Note 1 !")
    EndIf
    ElseIf $true <= 15 Then
    GUICtrlSetData($Liste,"Du hast mehr als die Hälfte der Fragen falsch beantwortet!"&@CRLF&$true&"/29 Fragen richtig beantwortet!"&@CRLF&"Die Lösung wurde "&$i&"mal gebraucht!"&@CRLF&@CRLF&"Das gibt die Note 5 !"&@CRLF&"Versuch es nocheinmal!")
    ElseIf $true >= 25 Then
    If $i <= 6 Then
    GUICtrlSetData($Liste,"Du hast "&$true&"/29 Fragen richtig beantwortet!"&@CRLF&"Die Lösung wurde "&$i&"mal gebraucht!"&@CRLF&@CRLF&"Das gibt die Note 2 !")
    EndIf
    ElseIf $true >= 22 Then
    If $i <= 7 Then
    GUICtrlSetData($Liste,"Du hast "&$true&"/29 Fragen richtig beantwortet!"&@CRLF&"Die Lösung wurde "&$i&"mal gebraucht!"&@CRLF&@CRLF&"Das gibt die Note 3 !")
    EndIf
    ElseIf $true >= 19 Then
    If $i <= 8 Then
    GUICtrlSetData($Liste,"Du hast "&$true&"/29 Fragen richtig beantwortet!"&@CRLF&"Die Lösung wurde "&$i&"mal gebraucht!"&@CRLF&@CRLF&"Das gibt die Note 4 !"&@CRLF&"Ich glaub du kannst das besser!")
    EndIf
    EndIf
    FileWriteLine("Highscore.txt",$input&" hat "&$true&"/29 Fragen richtig beantwortet und die Lösung "&$i&" mal verwendet.")
    EndIf
    Case $loesung_button
    $i = $i + 1
    If $i = 10 Then
    MsgBox(0, "", "Du hast bereits 10mal die Lösung gebraucht! Bitte nochmal probieren!")
    Exit
    EndIf
    GUICtrlSetData($Liste, "Die Lösung ist: " & $mA[$index][1]&"mm")
    Sleep(4000)
    ControlClick("Maße","Frage stellen",4,"Left",1)
    Case $go_button

    $Read = GUICtrlRead($Antwort)
    If $Read <> $mA[$index][1] Then
    $false = $false +1 ;Zählt wie oft die Antwort falsch war.
    GUICtrlSetState($go_button, $GUI_DISABLE)
    GUICtrlSetData($Liste, "Falsche Antwort!" & @CRLF & "Lösung anzeigen?")
    ConsoleWrite("False"&@CRLF)
    GUICtrlSetData($Antwort,"")
    ElseIf $Read = $mA[$index][1] Then
    $true = $true + 1
    GUICtrlSetData($Liste, "Das Maß beträgt " & $Read & "mm!" & @CRLF & "Richtige Antwort!")
    ConsoleWrite("True"&@CRLF)
    GUICtrlSetState($go_button, $GUI_DISABLE)
    GUICtrlSetState($frage_button, $GUI_DISABLE)
    Sleep(3000)
    GUICtrlSetState($go_button, $GUI_ENABLE)
    GUICtrlSetState($frage_button, $GUI_ENABLE)
    ControlClick("Maße","Frage stellen",4,"Left",1)
    GUICtrlSetData($Antwort,"")
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    ________________________________________EDIT_______________________________________________________

    Hier die neue Version mit neuem GUI:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    #include <array.au3>
    ;~ =====================
    $input = InputBox("Highscore","Gib hier deinen Namen ein!","")
    $vDLL = 'user32.dll'
    $Form1 = GUICreate("Maße", 1001, 701, 265, 114)
    GUISetBkColor(0x800000)
    $Pic1 = GUICtrlCreatePic(@ScriptDir&"\data\b_img_02.jpg", 0, 0, 1000, 700)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Frage = GUICtrlCreateEdit("", 200, 50, 600, 80, BitOR($ES_CENTER,$ES_READONLY,$ES_WANTRETURN), BitOR($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE))
    GUICtrlSetData(-1, StringFormat("\r\n"))
    GUICtrlSetFont(-1, 16, 800, 0, "Tw Cen MT")
    GUICtrlSetColor(-1, 0x000000)
    $frage_button = GUICtrlCreateButton("Next --->", 800, 600, 140, 40)
    GUICtrlSetFont(-1, 14, 800, 0, "Tw Cen MT")
    $Liste = GUICtrlCreateEdit("", 200, 300, 600, 260, BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN), BitOR($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE))
    GUICtrlSetData(-1, "Starten Sie den Trainer indem Sie auf den"& " Next-Button " &"klicken")
    GUICtrlSetFont(-1, 16, 800, 0, "Tw Cen MT")
    GUICtrlSetColor(-1, 0x000000)
    $Antwort = GUICtrlCreateEdit("", 400, 150, 200, 34, BitOR($ES_CENTER,$ES_WANTRETURN), BitOR($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE))
    GUICtrlSetData(-1, "[Antwort]")
    GUICtrlSetFont(-1, 16, 800, 0, "Tw Cen MT")
    GUICtrlSetColor(-1, 0x000000)
    $loesung_button = GUICtrlCreateButton("?", 200, 565, 40, 40, $BS_CENTER)
    GUICtrlSetFont(-1, 16, 800, 0, "Tw Cen MT")
    $go_button = GUICtrlCreateButton("OK", 615, 150, 40, 34)
    GUICtrlSetFont(-1, 14, 800, 0, "Tw Cen MT")
    GUISetState()
    ;~ ===================================================================================================================================
    Global $Read, $index, $i = 0, $counter = 0, $true = 0, $false = 0, $input
    ;Damit kein "," in AutoIt gelangt!====================================================================================
    HotKeySet("{,}","Komma")
    HotKeySet("{NUMPADDOT}","Komma")
    Func Komma()
    Send(".")
    EndFunc
    ;===================================================================================================================
    Global $mA[29][3]

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

    $mA[0][0] = "Wie lange ist der Korpus ?"
    $mA[0][1] = "356"
    $mA[1][0] = "Wie lange ist die Korpusmensur ?"
    $mA[1][1] = "195"
    $mA[2][0] = "Wie lange ist die Halsmensur ?"
    $mA[2][1] = "130"
    $mA[3][0] = "Wieviel beträgt die Halsstärke am Sattel(exklusive Griffbrett)?"
    $mA[3][1] = "13"
    $mA[4][0] = "Wieviel beträgt die Halsstärke vor dem Halsfuß(exklusive Griffbrett)?"
    $mA[4][1] = "14"
    $mA[5][0] = "Wieviel beträgt die Halsstärke am Sattel(inklusive Griffbrett)?"
    $mA[5][1] = "19"
    $mA[6][0] = "Wieviel beträgt die Halsstärke am Sattel(inklusive Griffbrett)?"
    $mA[6][1] = "21"
    $mA[7][0] = "Wie hoch ist der Halsüberstand ?"
    $mA[7][1] = "6"
    $mA[8][0] = "Wie lange ist das Griffbrett ?"
    $mA[8][1] = "270"
    $mA[9][0] = "Wie breit ist das Griffbrett am Sattel ?"
    $mA[9][1] = "23.5"
    $mA[10][0] = "Wie breit ist das Griffbrett am Ende?"
    $mA[10][1] = "42"
    $mA[11][0] = "Wie hoch ist der Griffbrettrand ?"
    $mA[11][1] = "5"
    $mA[12][0] = "Wie stark ist die Griffbretthohlung unter der Diskantsaite ?"
    $mA[12][1] = "0.5"
    $mA[13][0] = "Wie stark ist die Griffbretthohlung unter der Basssaite ?"
    $mA[13][1] = "0.7"
    $mA[14][0] = "Radius der Griffbrettrundung ?"
    $mA[14][1] = "42"
    $mA[15][0] = "Wie hoch ist die Griffbrettprojektion ?"
    $mA[15][1] = "27"
    $mA[16][0] = "Wie lange ist die Mensur ?"
    $mA[16][1] = "330"
    $mA[17][0] = "Abstand vom Steg zum Saitenhalter ?"
    $mA[17][1] = "55"
    $mA[18][0] = "Saitenband am Sattel ?"
    $mA[18][1] = "16.3"
    $mA[19][0] = "Saitenband am Steg ?"
    $mA[19][1] = "33.5"
    $mA[20][0] = "Abstand von Saite zu Saite am Steg ?"
    $mA[20][1] = "11.5"
    $mA[21][0] = "Saitenlage bei Stahlsaiten [Diskantsaite] ?"
    $mA[21][1] = "3.5"
    $mA[22][0] = "Saitenlage bei Darmsaiten [Diskantsaite] ?"
    $mA[22][1] = "2.5"
    $mA[23][0] = "Saitenlage bei Stahlsaiten [Basssaite] ?"
    $mA[23][1] = "4"
    $mA[24][0] = "Saitenlage bei Darmsaiten [Basssaite] ?"
    $mA[24][1] = "5.5"
    $mA[25][0] = "Wieviel Grad beträgt der Saitenknickwinkel ?"
    $mA[25][1] = "158"
    $mA[26][0] = "Wie stark ist der Steg an der Oberseite ?"
    $mA[26][1] = "1.3"
    $mA[27][0] = "Wie stark sind die Stegfüße ?"
    $mA[27][1] = "4.2"
    $mA[28][0] = "Wie hoch ist der Steg ?"
    $mA[28][1] = "32"

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

    For $i = 0 To UBound($mA) - 1
    $mA[$i][2] = 0
    Next
    ;~ =======================================================================
    $i = 0
    $false = 0
    $true = 0
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $frage_button
    GUICtrlSetData($Liste,29 - $counter&"/29 verbleibend")
    GUICtrlSetState($go_button, $GUI_ENABLE)
    $counter += 1
    If $counter <= UBound($mA) Then
    Do
    $index = Random(0, UBound($mA) - 1, 1)
    Until $mA[$index][2] = 0
    $cRead = $mA[$index][0]
    GUICtrlSetData($Frage, $cRead)
    $mA[$index][2] = 1 ; setzt Frage als bereits gestellt
    ConsoleWrite($mA[$index][0]&@CRLF&$mA[$index][1]&@CRLF)
    Else
    If $true >= 28 Then
    If $i <= 5 Then
    GUICtrlSetData($Liste,"Du hast "&$true&"/29 Fragen richtig beantwortet!"&@CRLF&"Die Lösung wurde "&$i&"mal gebraucht!"&@CRLF&@CRLF&"Das gibt die Note 1 !")
    EndIf
    ElseIf $true <= 15 Then
    GUICtrlSetData($Liste,"Du hast mehr als die Hälfte der Fragen falsch beantwortet!"&@CRLF&$true&"/29 Fragen richtig beantwortet!"&@CRLF&"Die Lösung wurde "&$i&"mal gebraucht!"&@CRLF&@CRLF&"Das gibt die Note 5 !"&@CRLF&"Versuch es nocheinmal!")
    ElseIf $true >= 25 Then
    If $i <= 6 Then
    GUICtrlSetData($Liste,"Du hast "&$true&"/29 Fragen richtig beantwortet!"&@CRLF&"Die Lösung wurde "&$i&"mal gebraucht!"&@CRLF&@CRLF&"Das gibt die Note 2 !")
    EndIf
    ElseIf $true >= 22 Then
    If $i <= 7 Then
    GUICtrlSetData($Liste,"Du hast "&$true&"/29 Fragen richtig beantwortet!"&@CRLF&"Die Lösung wurde "&$i&"mal gebraucht!"&@CRLF&@CRLF&"Das gibt die Note 3 !")
    EndIf
    ElseIf $true >= 19 Then
    If $i <= 8 Then
    GUICtrlSetData($Liste,"Du hast "&$true&"/29 Fragen richtig beantwortet!"&@CRLF&"Die Lösung wurde "&$i&"mal gebraucht!"&@CRLF&@CRLF&"Das gibt die Note 4 !"&@CRLF&"Ich glaub du kannst das besser!")
    EndIf
    EndIf
    FileWriteLine("Highscore.txt",$input&" hat "&$true&"/29 Fragen richtig beantwortet und die Lösung "&$i&" mal verwendet.")
    EndIf
    Case $loesung_button
    $i = $i + 1
    If $i = 10 Then
    MsgBox(0, "", "Du hast bereits 10mal die Lösung gebraucht! Bitte nochmal probieren!")
    Exit
    EndIf
    GUICtrlSetData($Liste, "Die Lösung ist: " & $mA[$index][1]&"mm")
    Sleep(4000)
    ControlClick("Maße","Next --->",5,"Left",1)
    Case $go_button

    $Read = GUICtrlRead($Antwort)
    If $Read <> $mA[$index][1] Then
    $false = $false +1 ;Zählt wie oft die Antwort falsch war.
    GUICtrlSetState($go_button, $GUI_DISABLE)
    GUICtrlSetData($Liste, "Falsche Antwort!" & @CRLF & "Lösung anzeigen?")
    ConsoleWrite("False"&@CRLF)
    GUICtrlSetData($Antwort,"")
    ElseIf $Read = $mA[$index][1] Then
    $true = $true + 1
    GUICtrlSetData($Liste, "Das Maß beträgt " & $Read & "mm!" & @CRLF & "Richtige Antwort!")
    ConsoleWrite("True"&@CRLF)
    GUICtrlSetState($go_button, $GUI_DISABLE)
    GUICtrlSetState($frage_button, $GUI_DISABLE)
    Sleep(3000)
    GUICtrlSetState($go_button, $GUI_ENABLE)
    GUICtrlSetState($frage_button, $GUI_ENABLE)
    ControlClick("Maße","Next --->",5,"Left",1)
    GUICtrlSetData($Antwort,"")
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    PS.: Um die Bilder (Background, Icon,...) sehen zu können, müsst ihr den ganzen .zip Ordner downloaden.

    Compiled als zip.:

    Dateien

    Measurment Alpha 1.3.0.zip 415,65 kB – 321 Downloads source.au3 7,97 kB – 324 Downloads Measurment Alpha 1.3.2.zip 937,05 kB – 338 Downloads
  • 2D - Array und Auslesen

    • Stoani
    • 7. November 2011 um 14:05

    Danke derweilen! :)

    Mittagspause ist aus ;)

    Bis später -

    Stoani

  • 2D - Array und Auslesen

    • Stoani
    • 7. November 2011 um 13:35

    1C:\Users\*******\********\**********\1 (2).au3 (85) : ==> "For" statement is badly formatted.:
    For $i = 100
    For $i = 100^ ERROR
    >Exit code: 1 Time: 5.019

    EDIT===========================

    Das funktioniert nur beim ersten Array:

    [autoit]

    For $i = 100 To $index = Random(0, UBound($mA) - 1, 1)
    If $mA[$index][2] = 0 Then ExitLoop
    Next
    $cRead = $mA[$index][0]
    GUICtrlSetData($Frage, $cRead)
    $mA[$index][2] = 1

    [/autoit]
  • 2D - Array und Auslesen

    • Stoani
    • 7. November 2011 um 12:23

    Danke!

    Genau das wars Problem.


    Funktioniert jetzt ganz gut!

    (AutoIT geht grad ned?!)

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <Misc.au3>
    #include <array.au3>
    ;~ ===================================================================================================================================
    $vDLL = 'user32.dll'
    $Masze = GUICreate("Maße", 490, 440, 400, 180)
    $bImg = GUICtrlCreatePic("C:\Users\Stoani\Pictures\asdasd.jpg", 0, 0, 490, 440)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $frage_button = GUICtrlCreateButton("Neue Frage",10 , 392, 196, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $loesung_button = GUICtrlCreateButton("Lösung zeigen", 10, 352, 97, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $Antwort = GUICtrlCreateInput("", 16, 184, 185, 27, BitOR($ES_CENTER,$WS_BORDER), 0)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $Liste = GUICtrlCreateEdit("", 216, 16, 265, 409, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$WS_BORDER), 0)
    GUICtrlSetData(-1, "Noch keine Frage gestellt!")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    $Frage = GUICtrlCreateEdit("", 16, 16, 185, 57, BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN,$WS_BORDER), 0)
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $go_button = GUICtrlCreateButton("Go!", 109, 352, 97, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUISetState()
    ;~ ===================================================================================================================================
    Global $Read, $index, $i = 0
    ;~ ====================================
    Global $mA[14][2]

    $mA[0][0] = "Wie lange ist der Korpus ?"
    $mA[0][1] = "356mm"
    $mA[1][0] = "Wie lange ist die Korpusmensur ?"
    $mA[1][1] = "195mm"
    $mA[2][0] = "Wie lange ist die Halsmensur ?"
    $mA[2][1] = "130mm"
    $mA[3][0] = "Wieviel beträgt die Halsstärke am Sattel(exklusive Griffbrett)?"
    $mA[3][1] = "13mm"
    $mA[4][0] = "Wieviel beträgt die Halsstärke vor dem Halsfuß(exklusive Griffbrett)?"
    $mA[4][1] = "14mm"
    $mA[5][0] = "Wieviel beträgt die Halsstärke am Sattel(inklusive Griffbrett)?"
    $mA[5][1] = "19mm"
    $mA[6][0] = "Wieviel beträgt die Halsstärke am Sattel(inklusive Griffbrett)?"
    $mA[6][1] = "21mm"
    $mA[7][0] = "Wie hoch ist der Randüberstand ?"
    $mA[7][1] = "6mm"
    $mA[8][0] = "Wie lange ist das Griffbrett ?"
    $mA[8][1] = "270mm"
    $mA[9][0] = "Wie breit ist das Griffbrett am Sattel ?"
    $mA[9][1] = "23,5mm"
    $mA[10][0] = "Wie breit ist das Griffbrett am Hals. -Korpusübergang ?"
    $mA[10][1] = "42mm"
    $mA[11][0] = "Wie hoch ist der Griffbrettrand ?"
    $mA[11][1] = "5mm"
    $mA[12][0] = "Wie stark ist die Griffbretthohlung unter der Diskantsaite ?"
    $mA[12][1] = "0,5mm"
    $mA[13][0] = "Wie stark ist die Griffbretthohlung unter der Basssaite ?"
    $mA[13][1] = "0,7mm"




    ;~ =======================================================================
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $frage_button
    $index = Random(0, Ubound($mA)-1, 1)
    $cRead = $mA[$index][0]
    GUICtrlSetData($Frage,$cRead)
    Case $loesung_button
    $i = $i + 1
    ConsoleWrite($i)
    If $i = 10 Then
    MsgBox(0,"","Du hast bereits 10mal die Lösung gebraucht! Bitte nochmal probieren!")
    $i = 0
    Exit
    EndIf


    GUICtrlSetData($Liste,"Die Lösung ist: "&$mA[$index][1])
    Case $go_button
    $Read = GUICtrlRead($Antwort)
    If $Read <> $mA[$index][1] Then
    GUICtrlSetData($Liste,"Falsche Antwort!"&@CRLF&"Lösung anzeigen?")
    ElseIf $Read = $mA[$index][1] Then
    GUICtrlSetData($Liste,"Das Maß beträgt "&$Read&"!"&@CRLF&"Richtige Antwort!")
    EndIf
    EndSwitch
    WEnd


    Hat jemand einen Denkansatz für meinen nächsten Schritt?

    Das ganze wird nun "Random" ausgewählt.
    Jetzt kommt es aber vor, dass eine Frage 3mal hintereinander kommt und eine andere so gut wie gar nie.
    Könnte man etwas machen, um die Frage aus dem Array zu nehmen wenn sie richtig beantwortet wurde?

    So in etwa?

    [autoit]

    If $Read <> $mA[$index][1] Then
    GUICtrlSetData($Liste,"Falsche Antwort!"&@CRLF&"Lösung anzeigen?")
    ElseIf $Read = $mA[$index][1] Then
    GUICtrlSetData($Liste,"Das Maß beträgt "&$Read&"!"&@CRLF&"Richtige Antwort!")
    _ArrayDelete($mA,$index)
    EndIf

    [/autoit]

    Grüße Stoani

  • 2D - Array und Auslesen

    • Stoani
    • 6. November 2011 um 21:09
    [autoit]

    $index = Random(0, Ubound($mA)-1, 1)
    MsgBox(0,"",$index)
    $aRead = $mA[$index][0]
    GUICtrlSetData($Frage,$aRead)

    [/autoit]


    Danke für die Geduld :S


    EDIT_1_________________________________________________________________________________________________________________________________
    Es stimmt eh alles.
    Fehler:

    $Index 0 = Zeile 1


    EDIT_2_________________________________________________________________________________________________________________________________
    Irgendwie komme ich immer auf "AntwortRead <> Antwort"

    Mag mal jemand drüberlesen?
    ---->

    Spoiler anzeigen
    [autoit]

    ;~ =================================
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <Misc.au3>
    #include <array.au3>
    ;~ ===================================================================================================================================
    $vDLL = 'user32.dll'
    $Masze = GUICreate("Maße", 490, 440, 400, 180)
    $bImg = GUICtrlCreatePic("C:\Users\Stoani\Pictures\asdasd.jpg", 0, 0, 490, 440)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $frage_button = GUICtrlCreateButton("Neue Frage",10 , 392, 196, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $loesung_button = GUICtrlCreateButton("Lösung zeigen", 10, 352, 97, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $Antwort = GUICtrlCreateInput("", 16, 184, 185, 27, BitOR($ES_CENTER,$WS_BORDER), 0)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $Liste = GUICtrlCreateEdit("", 216, 16, 265, 409, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$WS_BORDER), 0)
    GUICtrlSetData(-1, "Noch keine Frage gestellt!")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    $Frage = GUICtrlCreateEdit("", 16, 16, 185, 57, BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN,$WS_BORDER), 0)
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $go_button = GUICtrlCreateButton("Go!", 109, 352, 97, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUISetState()
    ;~ ===================================================================================================================================
    Global $Read = GUICtrlRead($Antwort), $index
    ;~ ====================================
    Global $mA[5][2]

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

    $mA[0][0] = "Wie lange ist der Korpus?"
    $mA[0][1] = "356mm"
    $mA[1][0] = "Wie lange ist die Korpusmensur?"
    $mA[1][1] = "195mm"
    $mA[2][0] = "Wie lange ist die Halsmensur?"
    $mA[2][1] = "130mm"
    $mA[3][0] = "Wieviel beträgt die Halsstärke am Sattel(exklusive Griffbrett)?"
    $mA[3][1] = "13mm"
    $mA[4][0] = "Wieviel beträgt die Halsstärke vor dem Halsfuß(exklusive Griffbrett)?"
    $mA[4][1] = "14mm"
    ;~ =======================================================================
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $frage_button
    $index = Random(0, Ubound($mA)-1, 1)
    $cRead = $mA[$index][0]
    GUICtrlSetData($Frage,$cRead)
    Case $loesung_button
    Case $go_button
    If $Read <> $mA[$index][1] Then
    GUICtrlSetData($Liste,"Falsche Antwort!")
    ElseIf $Read = $mA[$index][1] Then
    GUICtrlSetData($Liste,"Richtige Antwort!")
    EndIf
    EndSwitch
    WEnd
    ;~ =======================================================================

    [/autoit]


    Danke


    PS.: Die Antworten stehen im Skript ;)

  • OpenCl goes AutoIt Update 31.Dezember 2016

    • Stoani
    • 6. November 2011 um 20:27

    Meinst du die hier von progandy??

    Dateien

    gdi.zip 108,6 kB – 819 Downloads
  • 2D - Array und Auslesen

    • Stoani
    • 6. November 2011 um 20:19

    Halloo :)


    Ich hab mich jetzt erstmals mit Array's beschäftigt und bin, glaub ich, knapp am Ziel vorbei....

    Ich wollte ein Programm schreiben welches mittels "Random()" eine zufällige Frage aussucht, diese in eine Editbox schreibt (GUICTRLSetData) und auf das Drücken der "0D" - Taste(Enter) hin eine Inputbox mit der Antwort abfragt.

    Die Fragen und Antworten habe ich in ein 2-Dimensionales Array gepackt.
    ---->

    Spoiler anzeigen
    [autoit]

    Local $mA[5][2]

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

    $mA[0][0] = "Frage1"
    $mA[0][1] = "Antwort1"
    $mA[1][0] = "Frage2"
    $mA[1][1] = "Antwort2"
    $mA[2][0] = "Frage3"
    $mA[2][1] = "Antwort3"
    $mA[3][0] = "Frage4"
    $mA[3][1] = "Antwort4"
    $mA[4][0] = "Frage5"
    $mA[4][1] = "Antwort5"

    [/autoit]


    Ich kann den Inhalt auch auslesen:
    ---->

    Spoiler anzeigen
    [autoit]

    For $i = 0 To UBound($mA) -1
    For $k = 0 To UBound($mA,2) -1
    $Test = ($mA[$i][$k] & @CRLF)
    ConsoleWrite($Test)
    Next
    Next

    [/autoit]


    Nun weiß ich nur nicht, wie ich die zufällige Auswahl einer Frage machen und die dazu passende Antwort abfragen kann.
    Es würd mich freuen wenn mir das jemand so erklären könnte, dass ich es versteh :whistling:


    Hier der gesamte Code mit Beschreibung:

    ---->

    Spoiler anzeigen
    [autoit]

    ;~ =================================
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <Misc.au3>
    #include <array.au3>
    ;~ =================================

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

    ;~ ===================================================================================================================================
    $vDLL = 'user32.dll'
    $Masze = GUICreate("Maße", 490, 440, 400, 180)
    $bImg = GUICtrlCreatePic("C:\Users\Stoani\Pictures\asdasd.jpg", 0, 0, 490, 440)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $frage_button = GUICtrlCreateButton("Neue Frage", 24, 392, 185, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $loesung_button = GUICtrlCreateButton("Lösung zeigen", 24, 352, 97, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $Antwort = GUICtrlCreateInput("Antwort", 16, 184, 185, 27, BitOR($ES_CENTER,$WS_BORDER), 0)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $Liste = GUICtrlCreateEdit("", 216, 16, 265, 409, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN,$WS_BORDER), 0)
    GUICtrlSetData(-1, "Liste")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    $Frage = GUICtrlCreateEdit("", 16, 16, 185, 57, BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN,$WS_BORDER), 0)
    GUICtrlSetData(-1, "Frage")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $x = 0
    GUISetState()
    ;~ ===================================================================================================================================

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

    ;~ ====================================
    Local $mA[5][2]

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

    $mA[0][0] = "Frage1"
    $mA[0][1] = "Antwort1"
    $mA[1][0] = "Frage2"
    $mA[1][1] = "Antwort2"
    $mA[2][0] = "Frage3"
    $mA[2][1] = "Antwort3"
    $mA[3][0] = "Frage4"
    $mA[3][1] = "Antwort4"
    $mA[4][0] = "Frage5"
    $mA[4][1] = "Antwort5"

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

    For $i = 0 To UBound($mA) -1
    For $k = 0 To UBound($mA,2) -1
    $Test = ($mA[$i][$k] & @CRLF)
    ConsoleWrite($Test)
    Next
    Next
    ;~ ====================================

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

    ;~ =======================================================================
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $frage_button
    $fRandom = GUICtrlRead(Random(Zufällige Frage(aus Array)))
    GUICtrlSetState($Frage,$fRandom)
    Case $loesung_button
    $aRead = GUICtrlRead(richtige Antwort)
    GUICtrlSetData($Liste,$aRead & @CRLF)

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

    Case $x
    If _ispressed("0D",$vDLL) Then
    $aRead = GUICtrlRead($Antwort)
    Else
    If $aRead <> richtige Antwort(aus Array) Then
    GUICtrlSetState($Liste,"Falsche Antwort!"
    ElseIf
    $aRead = richtige Antwort(aus Array) Then
    GUICtrlSetState($Liste,"Richtige Antwort!"
    EndIf
    EndIf
    EndSwitch
    WEnd
    ;~ =======================================================================

    [/autoit]


    Hier noch einige Bilder von dem GUI:
    [Blockierte Grafik: http://www.imgbox.de/users/public/images/bBDrHjC2nb.jpg] [Blockierte Grafik: http://www.imgbox.de/users/public/images/p5TUcT1XK5.jpg]


    Ich würd mich über Rückmeldungen freuen :)

    Grüßé Stoaní


    PS.: Es geht ums lernen nicht ums haben :)

  • Endlosloop Start-Stop

    • Stoani
    • 4. November 2011 um 14:27
    Spoiler anzeigen
    [autoit]

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

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

    Opt("GUIOnEventMode",1)
    $GUI_001 = GUICreate("001",200,300)
    $Button1 = GUICtrlCreateButton("Start",10,120,50,40)
    GUICtrlSetOnEvent(-1,"_Nummer1")
    $Button2 = GUICtrlCreateButton("Start",140,120,50,40)
    GUICtrlSetOnEvent(-1,"_Nummer2")
    GUISetOnEvent($GUI_EVENT_CLOSE,"_Exit",$GUI_001)
    GUISetState()

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

    Global $001 = 0, $001 = 1,$Button1, $Button2

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

    $001 = 2 ;<=== Damit der nicht von Anfang an mit Button1 anfängt
    While 1
    If $001 = 0 Then
    ;~ Hier musst du die Funktion für Button1 eintragen=============Anfang===================
    Beep(300,100)
    ;~ Hier musst du die Funktion für Button1 eintragen=============Ende===================
    ElseIf $001 = 1 Then
    $i = 0
    ;~ Hier musst du die Funktion für Button2 eintragen=============Anfang=================
    Do
    MsgBox(0, "Zahl $i ist:", $i)
    $i = $i + 1
    Until $i = 10
    ;~ Hier musst du die Funktion für Button2 eintragen=============Ende===================
    $001 = 0
    EndIf
    WEnd


    Func _Nummer1()
    $001 = 0
    EndFunc

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

    Func _Nummer2()
    $001 = 1
    EndFunc

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

    Func _Exit()
    Exit
    EndFunc

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


    Hoffe das ist ca. was du meinst...

  • Endlosloop Start-Stop

    • Stoani
    • 3. November 2011 um 13:47

    Hallo.
    Hoffe das funzt:

    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstants.au3>
    #Include <Misc.au3>
    Opt("GUIOnEventMode",1)
    ;==========================> GUIstart
    $Form1 = GUICreate("Test_GUI",200,300)
    $Button1 = GUICtrlCreateButton("Start",50,120,100,80)
    GUICtrlSetOnEvent(-1,"_Create")
    GUISetOnEvent($GUI_EVENT_CLOSE,"_Exit",$Form1)
    GUISetState()
    ;==========================> GUIend

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

    Global $iStartVar = 0,$dll = DllOpen("user32.dll")

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

    While 1
    Sleep(100)
    WEnd

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

    Func _Create()
    If $iStartVar = 1 Then
    $iStartVar = 0
    GUICtrlSetData($Button1,"Start")
    MsgBox(0,"Pause","Wie der Name schon sagt, hier kannst du eine Pause einfügen!")


    Else
    $iStartVar = 1
    GUICtrlSetData($Button1,"Pause")
    MsgBox(0,"Start","Hier kannst du nun deine gewünschte Aktion ausführen")
    Do
    Beep(880,100)
    Until _IsPressed(01,$dll)
    _Create()
    EndIf
    EndFunc

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

    Func _Exit()
    Exit
    EndFunc

    [/autoit]

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™