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.
Beiträge von Stoani
-
-
er war sich zu fein diese 5-6 zeilen selber zu schreiben genau wie bei den andern threads.
Ja Meister.

Stimmt Meister.
Mhm...... :wacko:Blödsinn.

-
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?

-
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

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

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 -
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# =======================================================================================================================
[/autoit][autoit][/autoit][autoit]
; Title .........: ButtonChangeColor
; Author(s) .....: Fabian Steinkogler
; ===============================================================================================================================; #CURRENT# =====================================================================================================================
[/autoit][autoit][/autoit][autoit]
;_ButtonChangeColor
; ===============================================================================================================================; #FUNCTION# ====================================================================================================================
[/autoit][autoit][/autoit][autoit]
; 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
; ===============================================================================================================================Func _ButtonChangeColor($gImg,$sImg1,$sImg2)
[/autoit][autoit][/autoit][autoit][/autoit]
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
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>
[/autoit][autoit][/autoit][autoit]
#include <WindowsConstants.au3>
#Include <Misc.au3>
#include <Buttons.au3>$mGUI = GUICreate("Login", 500, 300, 300, 218, -1, BitOR($WS_EX_TOOLWINDOW,$WS_EX_WINDOWEDGE))
[/autoit][autoit][/autoit][autoit]
$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)GUICtrlCreateInput("Name",242,60,203,26,1,512)
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
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)While 1
[/autoit][autoit][/autoit][autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitCase $gImg1
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]
_ButtonChangeColor($gImg1,".\settingsico1.bmp",".\settingsico2.bmp")
MsgBox(64,"","Error")
Case $gImg2
_ButtonChangeColor($gImg2,".\helpbtnimg1.bmp",".\helpbtnimg2.bmp")
MsgBox(64,"","Error")
EndSwitch
WEndTja 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.htmlund 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 -
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 -
Hallo misterspeed,
erstmal Danke für deine Antwort!

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
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
Ist irgendwie fast eine Art von Sudoku... xDMit freundlichen Grüßen
Stoani___________________________________ Edit ___________________________________
Sorry. Ich hätte das nicht schreiben sollen, bevor ich es nicht richtig versucht habe. Läuft SUPER!
->
Mit freundlichen Grüßen
Stoani -
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>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#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)While 1
[/autoit]
$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
WEndWie sicher einige sofort erkennen, ist der Ladebalken reine Zirde....

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 ======================================
[/autoit] [autoit][/autoit] [autoit]
;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.;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.
[/autoit] [autoit][/autoit] [autoit]
#EndRegion======================== Legende ======================================;===========================Include==============================
[/autoit] [autoit][/autoit] [autoit]
#include <array.au3>
#include <file.au3>
;===========================Antworten=============================Global $aViolin, $aklBratsche, $agrBratsche, $aCello
[/autoit] [autoit][/autoit] [autoit]
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)
NextIf Not _FileReadToArray(".\kl. Bratsche\akl. Bratsche.txt",$aklBratsche) Then
[/autoit] [autoit][/autoit] [autoit]
MsgBox(4096,"Error", " Error: " & @error&@CRLF&".\kl. Bratsche\akl. Bratsche.txt")
Exit
EndIf
For $x = 1 to $aklBratsche[0]
ConsoleWrite($aklBratsche[$x]&@Crlf)
NextIf Not _FileReadToArray(".\gr. Bratsche\agr. Bratsche.txt",$agrBratsche) Then
[/autoit] [autoit][/autoit] [autoit]
MsgBox(4096,"Error", " Error: " & @error&@CRLF&".\gr. Bratsche\agr. Bratsche.txt")
Exit
EndIf
For $x = 1 to $agrBratsche[0]
ConsoleWrite($agrBratsche[$x]&@Crlf)
NextIf Not _FileReadToArray(".\Cello\aCello.txt",$aCello) Then
[/autoit] [autoit][/autoit] [autoit]
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)
NextIf Not _FileReadToArray(".\kl. Bratsche\fkl. Bratsche.txt",$fklBratsche) Then
[/autoit] [autoit][/autoit] [autoit]
MsgBox(4096,"Error", " Error: " & @error&@CRLF&".\kl. Bratsche\fkl. Bratsche.txt")
Exit
EndIf
For $x = 1 to $fklBratsche[0]
ConsoleWrite($fklBratsche[$x]&@Crlf)
NextIf Not _FileReadToArray(".\gr. Bratsche\fgr. Bratsche.txt",$fgrBratsche) Then
[/autoit] [autoit][/autoit] [autoit]
MsgBox(4096,"Error", " Error: " & @error&@CRLF&".\gr. Bratsche\fgr. Bratsche.txt")
Exit
EndIf
For $x = 1 to $fgrBratsche[0]
ConsoleWrite($fgrBratsche[$x]&@Crlf)
NextIf Not _FileReadToArray(".\Cello\fCello.txt",$fCello) Then
[/autoit]
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] = $aCelloWas 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 -
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-FileWü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>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#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'
[/autoit] [autoit][/autoit] [autoit]
$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]$mA[0][0] = "Wie lange ist der Korpus ?"
[/autoit] [autoit][/autoit] [autoit]
$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"For $i = 0 To UBound($mA) - 1
[/autoit]
$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________________________________________EDIT_______________________________________________________
Hier die neue Version mit neuem GUI:
Spoiler anzeigen
[autoit]#include <ButtonConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#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]$mA[0][0] = "Wie lange ist der Korpus ?"
[/autoit] [autoit][/autoit] [autoit]
$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"For $i = 0 To UBound($mA) - 1
[/autoit]
$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
WEndPS.: Um die Bilder (Background, Icon,...) sehen zu können, müsst ihr den ganzen .zip Ordner downloaden.
Compiled als zip.:
-
Danke derweilen!

Mittagspause ist aus

Bis später -
Stoani
-
1C:\Users\*******\********\**********\1 (2).au3 (85) : ==> "For" statement is badly formatted.:
For $i = 100
For $i = 100^ ERROR
>Exit code: 1 Time: 5.019EDIT===========================
Das funktioniert nur beim ersten Array:
[autoit]For $i = 100 To $index = Random(0, UBound($mA) - 1, 1)
[/autoit]
If $mA[$index][2] = 0 Then ExitLoop
Next
$cRead = $mA[$index][0]
GUICtrlSetData($Frage, $cRead)
$mA[$index][2] = 1 -
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
WEndHat 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
[/autoit]
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)
EndIfGrüße Stoani
-
[autoit]
$index = Random(0, Ubound($mA)-1, 1)
[/autoit]
MsgBox(0,"",$index)
$aRead = $mA[$index][0]
GUICtrlSetData($Frage,$aRead)Danke für die Geduld

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];~ =================================
[/autoit] [autoit][/autoit] [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]$mA[0][0] = "Wie lange ist der Korpus?"
[/autoit]
$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
;~ =======================================================================
DankePS.: Die Antworten stehen im Skript

-
Meinst du die hier von progandy??
-
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"
[/autoit]
$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"Ich kann den Inhalt auch auslesen:
---->Spoiler anzeigen
[autoit]For $i = 0 To UBound($mA) -1
[/autoit]
For $k = 0 To UBound($mA,2) -1
$Test = ($mA[$i][$k] & @CRLF)
ConsoleWrite($Test)
Next
NextNun 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
Hier der gesamte Code mit Beschreibung:
---->Spoiler anzeigen
[autoit];~ =================================
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [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]
Local $mA[5][2]$mA[0][0] = "Frage1"
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$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"For $i = 0 To UBound($mA) -1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
For $k = 0 To UBound($mA,2) -1
$Test = ($mA[$i][$k] & @CRLF)
ConsoleWrite($Test)
Next
Next
;~ ====================================;~ =======================================================================
[/autoit] [autoit][/autoit] [autoit]
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitCase $frage_button
[/autoit] [autoit][/autoit] [autoit]
$fRandom = GUICtrlRead(Random(Zufällige Frage(aus Array)))
GUICtrlSetState($Frage,$fRandom)
Case $loesung_button
$aRead = GUICtrlRead(richtige Antwort)
GUICtrlSetData($Liste,$aRead & @CRLF)Case $x
[/autoit]
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
;~ =======================================================================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

-
Spoiler anzeigen
[autoit]#include <ButtonConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>Opt("GUIOnEventMode",1)
[/autoit] [autoit][/autoit] [autoit]
$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()Global $001 = 0, $001 = 1,$Button1, $Button2
[/autoit] [autoit][/autoit] [autoit]$001 = 2 ;<=== Damit der nicht von Anfang an mit Button1 anfängt
[/autoit] [autoit][/autoit] [autoit]
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
EndFuncFunc _Nummer2()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$001 = 1
EndFuncFunc _Exit()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
Exit
EndFuncHoffe das ist ca. was du meinst...
-
Hallo.
[autoit]
Hoffe das funzt:#include <ButtonConstants.au3>
[/autoit][autoit][/autoit][autoit]
#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()
;==========================> GUIendGlobal $iStartVar = 0,$dll = DllOpen("user32.dll")
[/autoit][autoit][/autoit][autoit][/autoit][autoit]While 1
[/autoit][autoit][/autoit][autoit]
Sleep(100)
WEndFunc _Create()
[/autoit][autoit][/autoit][autoit]
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
EndFuncFunc _Exit()
[/autoit]
Exit
EndFunc