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

Beiträge von RedHead

  • exe - icon

    • RedHead
    • 2. Mai 2012 um 12:36

    also irgendwie klappt das aber nicht :(
    habe

    [autoit]

    #AutoIt3Wrapper_Icon=Z:\BackUps\AutoIt - Scripts\##Fertig\Background\Background.ico

    [/autoit]


    angegeben und es bleibt trotzdem da autoit-icon :(

  • exe - icon

    • RedHead
    • 2. Mai 2012 um 12:30

    ok danke :)

  • exe - icon

    • RedHead
    • 2. Mai 2012 um 12:27

    und dann einfach statt "icon.ico" den pfad zur icon-datei oder? :)

  • exe - icon

    • RedHead
    • 2. Mai 2012 um 12:21

    hey leute...gibt es eine möglichkeit das icon der späteren exe datei bereits im script anzugeben?? :) wenn man den converter nimmt kann man dort ja ein icon angeben :) allerdings ist mir das zu umständlich und wollte wissen ob das irendwie mit

    [autoit]

    #AutoIt3Wrapper_Icon

    [/autoit]

    geht oder so ;)

  • Multitasking ist gefragt

    • RedHead
    • 1. Mai 2012 um 18:10
    Zitat von Nathax


    Ich würde AdlibRegister nehmen.

    bei adlipregister wird die funktion doch immer in einem bestimmten intervall aufgerufen, oder etwa nicht? 8| und ich habe ihn jetzt so verstanden das diese funktion nur an bestimmten stellen aufgerufen werden soll und das hauptprogramm trotzdem sofort weiter laufen soll 8|

  • Ohne Grund ein Fehler,"For" statement has no matching "Next" statement.

    • RedHead
    • 1. Mai 2012 um 18:08

    wenn du natürlich alle for schleifen richtig gesetzt hast und trotzdem solche fehlermeldung kommt, würde ich mal gucken ob du z.b. bei allen if-abfragen auch ein endif gesetzt hast ;)
    ich hatte auch mal das problem das ich so eine fehlermeldung bekommen habe, obwohl ich alle for schleifen richtig hatte :) da wurde dann nur aus irgendeinem grund das next am ende übersprungen weil ich ein endif vergessen hatte ;) ka wieso dann so eine fehlermeldung bei mir gekommen ist 8|

  • Multitasking ist gefragt

    • RedHead
    • 1. Mai 2012 um 18:01

    also die einfachste idee die mir jetzt so auf die schnelle eingefallen ist wäre, wenn du den teil in "lade_etwas()" einfach zu einer exe datei machst und die dann einfach startest. so wird der teil nur einmal kurz aufgerufen und läuft parallel zum hauptscript ;) ist jetzt natürlich nur so eine idee....keine ahnung ob das bei deinem programm gehen würde ;)

  • Clock timer

    • RedHead
    • 1. Mai 2012 um 17:58

    ich weiß zwar nicht genau ob ich dir weiter helfen kann, aber ich habe auch mal einen timer geschrieben :) vielleicht hiflt dir der code ja weiter ;)

    https://autoit.de/index.php?page…kill#post242180

  • buttonproblem

    • RedHead
    • 12. April 2012 um 15:32

    danke leute :)

    jetzt habe ich aber ein anderes problem :( in einer funktion wird ein "options"fenster erstellt (hier wird immernoch mit

    [autoit]

    Opt("GUIOnEventMode", 1)

    [/autoit]

    geabeitet ;) ). sobald ich nun auf den vorhandenen button klicke, damit der inhalt der combobox auslesen werden soll, wird mir eine fehlermeldung angezeigt, da die handle der comboboxen nicht an die funktion für den okbutton übergeben werden :( weiß einer wie ich das machen soll? :)

    [autoit]

    Func _Option()
    GUISetState(@SW_HIDE, $h_GUI_main)
    Local $h_GUI_option = GUICreate("TicTacToe - Option", 190, 140)
    GUICtrlCreateLabel("Spieler 1", 10, 10)
    Local $h_combo_spieler1 = GUICtrlCreateCombo("", 10, 30, 70, 20)
    GUICtrlSetData($h_combo_spieler1, "Kreis|Kreuz|Dreieck")
    GUICtrlCreateLabel("Spieler 2", 100, 10)
    Local $h_combo_spieler2 = GUICtrlCreateCombo("", 100, 30, 70, 20)
    GUICtrlSetData($h_combo_spieler2, "Kreis|Kreuz|Dreieck")
    Local $h_ok = GUICtrlCreateButton("OK", 10, 60, 170, 30)
    GUICtrlSetOnEvent($h_ok, "Button_OK")
    Local $h_abbruch = GUICtrlCreateButton("Abbruch", 10, 100, 170, 30)
    GUICtrlSetOnEvent($h_abbruch, "Button_Abbruch")
    GUISetState(@SW_SHOW, $h_GUI_option)
    EndFunc

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

    Func Button_OK()
    $spieler1_symbol_read = GUICtrlRead($h_combo_spieler1)
    $spieler2_symbol_read = GUICtrlRead($h_combo_spieler2)
    If $spieler1_symbol_read == "" Or $spieler2_symbol_read == "" Then
    MsgBox(64, "Info", "Bitte ein Symbol wählen!")
    ElseIf $spieler1_symbol_read == $spieler2_symbol_read Then
    MsgBox(64, "Info", "Bitte 2 verschiedene Symbole wählen!")
    Else
    GUISetState(@SW_SHOW, $h_GUI_main)
    GUIDelete($h_GUI_option)
    _Neues_Spiel()
    EndIf
    EndFunc

    [/autoit]
  • Pixel auslesen

    • RedHead
    • 12. April 2012 um 15:27

    probiers mal mit

    [autoit]

    PixelGetColor ( x , y [, hwnd] )

    [/autoit]

    und

    [autoit]

    PixelSearch ( left, top, right, bottom, color [, shade-variation [, step [, hwnd]]] )

    [/autoit]

    ;)

  • fakultätsproblem

    • RedHead
    • 11. April 2012 um 16:14
    Zitat von x0r


    Hi,

    also ich hätte es per "for next" gelöst, statt mit Rekursion :)

    MsgBox(0,"",fakultaet(20))

    func fakultaet($x)
    local $i, $res
    $res = 1
    for $i = 1 to $x
    $res = $res * $i
    Next
    return $res
    EndFunc

    Gruß
    x0r

    Alles anzeigen


    auf diese möglichkeit bin ich auch schon gekommen ;) aber wenn ich eine zahl einsetzte die größer ist als 65 wird auch hier wieder ein 0 zurück gegeben :(

  • buttonproblem

    • RedHead
    • 11. April 2012 um 16:09

    hi leute...
    ich bin gerade dabei mir aus langeweile ein tictactoe prgramm zu schreiben und habe ein problem. :( bei mir stellen 9 button, die ich mit einer for-schleife und einem array dargestellt habe, das spielfeld dar.

    [autoit]

    For $i = 0 To UBound($h_submenu_info, 1) - 1
    $h_submenu_info[$i] = GUICtrlCreateMenuItem($h_submenu_info[$i], $h_mainmenu_info)
    Next
    For $i = 0 To 2
    $h_button[$i] = GUICtrlCreateButton($h_button[$i], $i * 50 + 20, 20, 50, 50, 0x0040)
    GUICtrlSetOnEvent($h_button[$i], "Button_Klick")
    Next
    For $i = 3 To 5
    $h_button[$i] = GUICtrlCreateButton($h_button[$i], ($i - 3) * 50 + 20, 70, 50, 50, 0x0040)
    GUICtrlSetOnEvent($h_button[$i], "Button_Klick")
    Next
    For $i = 6 To 8
    $h_button[$i] = GUICtrlCreateButton($h_button[$i], ($i - 6) * 50 + 20, 120, 50, 50, 0x0040)
    GUICtrlSetOnEvent($h_button[$i], "Button_Klick")
    Next

    [/autoit]

    da ich mit

    [autoit]

    Opt("GUIOnEventMode", 1)

    [/autoit]

    arbeite und jeder button fast das selbe macht, habe ich jedem button die selbe funktion zugewiesen. mein problem ist nun das ich nicht weiß wie ich abfragen soll welcher button genau geklickt wurde. :( kann mir jemand helfen? :)

  • fakultätsproblem

    • RedHead
    • 11. April 2012 um 15:58
    Zitat von peethebee


    Das ist ein gutes Beispiel, an dem du ein bisschen was lesen kannst :).

    Links für dich:
    http://de.wikipedia.org/wiki/Rekursion#P…mit_Rekursionen, auch http://de.wikipedia.org/wiki/Rekursive_Programmierung
    http://de.wikipedia.org/wiki/Integer_overflow

    Johannes


    danke :) die links helfen mit weiter ;)

  • fakultätsproblem

    • RedHead
    • 9. April 2012 um 14:29

    hi leute....
    ich habe mir hier im forum mehrere beiträge zum thema fakultät gelesen und viele programme waren "recht komplex"...dabei ist es doch "eigentlich ganz einfach" :)
    ich habe mir ein script geschrieben das ebenfalls die fakultät berechnet

    [autoit]

    Func fakultaet($i_zahl)
    If $i_zahl > 1 Then
    Return $i_zahl * fakultaet($i_zahl - 1)
    Else
    Return 1
    EndIf
    EndFunc

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

    MsgBox(0, "", fakultaet(20))

    [/autoit]

    allerdings wird aber eine bestimmten zahl am ende eine negative zahl ausgegeben und aber 65 wird nur noch null zurück gegeben...weiß einer vielleicht warum? :) ich komme nicht drauf :(

  • Infos aus 2 txt-Dateien lesen, vergleichen, in 3. schreiben

    • RedHead
    • 5. April 2012 um 14:23

    freut mich das ich dir helfen konnte ;)

    wollte eigentlich gerade eine möglichkeit posten dir mir eben eingefallen ist

    [autoit]

    #include <file.au3>
    #Include <Array.au3>

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

    dim $a_inhalt_von_txt_partner, $a_inhalt_von_txt_kunden
    $a_kunden_position_in_txt[1] = [""] ; ein leerer array wird erzeugt
    _FileReadToArray("Input_Partner.txt",$a_inhalt_von_txt_partner)
    _FileReadToArray("Input_Kunden.txt",$a_inhalt_von_txt_kunden)

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

    $h_output = FileOpen("Output_KP.txt",2)

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

    For $i = 0 To UBound($a_inhalt_von_txt_partner) - 1
    $i_counter = 0
    For $m = 0 To UBound($a_inhalt_von_txt_kunden) - 1
    $string = String($a_inhalt_von_txt_kunden[$m])
    $s_kennnummer = StringLeft($string, StringInStr($string, ";"))
    If StringInStr($a_inhalt_von_txt_partner[$i], $s_kennnummer) Then
    FileWriteLine($h_output, $a_inhalt_von_txt_partner[$i] & ";EOP;SOA;" & $a_inhalt_von_txt_kunden[$m])
    _FileWriteToLine("Input_Kunden.txt", $i_counter, $string, 1)
    _ArrayAdd($a_kunden_position_in_txt, $m); $m = position des kunden im array
    ; die position des kunden in der txt datei wir in einem array gespeichert damit der kunde später aus $a_inhalt_von_txt_kunden gelöscht werden können ;)
    $i_counter += 1
    ElseIf $i_counter >= 4 Then
    ExitLoop
    EndIf
    Next
    For $k = 1 To UBound($a_kunden_position_in_txt, 1) - 1
    _ArrayDelete($a_inhalt_von_txt_kunden, $a_kunden_position_in_txt[$k])
    Next

    Next

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

    FileClose($h_output)

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

    weiß natürlich nicht ob die überhaupt funktioniert ;)

  • Infos aus 2 txt-Dateien lesen, vergleichen, in 3. schreiben

    • RedHead
    • 5. April 2012 um 12:37
    Zitat von x0r

    allerdings fügt er mir nun mehr als 4 partner mit entsprechenden kunden ein


    wie viele mehr sinds denn?? ;)

    Zitat von x0r

    und das andere problem ist, ich müsste zuerst die kunden mit weniger nummern dran nehmen, denn die werden sonst gar nicht mehr gezählt und fallen weg


    meinst du damit kunden die eine geringere anzahl an kundenziffern haben oder deren kundennummer vom wert her einfach nur kleiner ist?? :) wenn du meinst das sie einfach nur kleiner sind kannst du ja am anfang erst mal die 4 kleinsten nummer raus suchen ;) das geht mit

    [autoit]

    _ArrayMin(Const ByRef $avArray [, $iCompNumeric = 0 [, $iStart = 0 [, $iEnd = 0]]])

    [/autoit]

    ich habe bei deinem scribt mal ein paar sachen hinzu gefühgt und ein paar kommentare geschrieben da ich nicht ganz genau weiß was du damit bezwecken willst ....

    [autoit]

    #include <file.au3>

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

    dim $a_inhalt_von_txt_partner, $a_inhalt_von_txt_kunden

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

    _FileReadToArray("Input_Partner.txt",$a_inhalt_von_txt_partner)
    _FileReadToArray("Input_Kunden.txt",$a_inhalt_von_txt_kunden)

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

    $h_output = FileOpen("Output_KP.txt",2)

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

    $i_counter = 1
    For $i = 0 To UBound($a_inhalt_von_txt_partner) - 1
    For $m = 0 To UBound($a_inhalt_von_txt_kunden) - 1
    $string = String($a_inhalt_von_txt_kunden[$m])
    $s_kennnummer = StringLeft($string, StringInStr($string, ";")) ;stringinstr ist sicherer da, sobald ausversehen ein leerzeichen auftaucht eine fehlermeldung kommen wird ;)
    If StringInStr($a_inhalt_von_txt_partner[$i], $s_kennnummer) Then
    FileWriteLine($h_output, $a_inhalt_von_txt_partner[$i] & ";EOP;SOA;" & $a_inhalt_von_txt_kunden[$m])
    _FileWriteToLine("Input_Kunden.txt", $i_counter, $string, 1)
    ; du schreibst hier aber in eine input txt datei!!! wolltest du nicht in eine output datei schreiben???
    $i_counter += 1
    ElseIf $i_counter = 5 Then
    ExitLoop
    EndIf
    Next
    If $i_counter = 5 Then ExitLoop
    Next

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

    FileClose($h_output)

    [/autoit]
  • ????? "variable".Befehl ??????

    • RedHead
    • 5. April 2012 um 10:24

    danke leute :thumbup: ihr habt mir sehr geholfen :thumbup:

  • ????? "variable".Befehl ??????

    • RedHead
    • 4. April 2012 um 17:59

    hey leute....
    ich habe schon öfters udfs gesehen die sahen ungefähr so aus

    [autoit]

    Func _ComputerGetDesktops(ByRef $aDesktopInfo)
    Local $colItems, $objWMIService, $objItem
    Dim $aDesktopInfo[1][20], $i = 1

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

    $objWMIService = ObjGet("winmgmts:\\" & $cI_Compname & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Desktop", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

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

    If IsObj($colItems) Then
    For $objItem In $colItems
    ReDim $aDesktopInfo[UBound($aDesktopInfo) + 1][20]
    $aDesktopInfo[$i][0] = $objItem.Name
    $aDesktopInfo[$i][1] = $objItem.BorderWidth
    $aDesktopInfo[$i][2] = $objItem.CoolSwitch
    $aDesktopInfo[$i][3] = $objItem.CursorBlinkRate
    $aDesktopInfo[$i][4] = $objItem.Description
    $aDesktopInfo[$i][5] = $objItem.DragFullWindows
    $aDesktopInfo[$i][6] = $objItem.GridGranularity
    $aDesktopInfo[$i][7] = $objItem.IconSpacing
    $aDesktopInfo[$i][8] = $objItem.IconTitleFaceName
    $aDesktopInfo[$i][9] = $objItem.IconTitleSize
    $aDesktopInfo[$i][10] = $objItem.IconTitleWrap
    $aDesktopInfo[$i][11] = $objItem.Pattern
    $aDesktopInfo[$i][12] = $objItem.ScreenSaverActive
    $aDesktopInfo[$i][13] = $objItem.ScreenSaverExecutable
    $aDesktopInfo[$i][14] = $objItem.ScreenSaverSecure
    $aDesktopInfo[$i][15] = $objItem.ScreenSaverTimeout
    $aDesktopInfo[$i][16] = $objItem.SettingID
    $aDesktopInfo[$i][17] = $objItem.Wallpaper
    $aDesktopInfo[$i][18] = $objItem.WallpaperStretched
    $aDesktopInfo[$i][19] = $objItem.WallpaperTiled
    $i += 1
    Next
    $aDesktopInfo[0][0] = UBound($aDesktopInfo) - 1
    If $aDesktopInfo[0][0] < 1 Then
    SetError(1, 1, 0)
    EndIf
    Else
    SetError(1, 2, 0)
    EndIf
    EndFunc ;_ComputerGetDesktops

    [/autoit]

    (DIESE UDF IST NICHT VON MIR)

    und meine frage ich jetzt wie das so ist mit befehlen wie

    [autoit]

    $objItem.ScreenSaverActive

    [/autoit]

    ...wie genau soll man solchen befehl verstehen und woher weiß ich was für ein befehl ich alles hinter dem punkt schreiben kann?? gibt es irgendwo eine liste wo all diese befehle aufgelistet sind und wie genau wirken sie??? :)

  • Infos aus 2 txt-Dateien lesen, vergleichen, in 3. schreiben

    • RedHead
    • 4. April 2012 um 17:46

    ich würde den inhalt der txt - dateien erstmal komplett mit

    [autoit]

    _FileReadToArray($sFilePath, ByRef $aArray)

    [/autoit]

    einlesen und dann den inhalt der ersten txt - datei mit einer for schleife durchgehen...ungefähr so...

    [autoit]

    $i_counter = 0
    For $i = 1 To UBound($a_inhalt_von_txt_partner) - 1
    For $m = 1 To UBound($a_inhalt_von_txt_kunden) - 1
    $string = String($a_inhalt_von_txt_kunden[$m])
    $s_kennnummer = StringTrimLeft($string, StringLen($string) - 8)
    If StringInStr($a_inhalt_von_txt_partner[$i], $s_kennnummer) Then
    FileWrite("KDPT.txt", $string) ; die datei muss vorher mit mode = 2 geöffnet werden, damit der inhalt gelöscht wird
    $i_counter += 1
    ElseIf $i_counter = 4 Then
    ExitLoop
    EndIf
    Next
    If $i_counter = 4 Then ExitLoop
    Next

    [/autoit]


    natürlich ist der lösungsvorschlag ungetestet und nicht perfekt, aber ich hoffe ich konnte dir helfen ;)

  • Brauche Hilfe bei einem fast "fertigem" Multiple Choice Program

    • RedHead
    • 4. April 2012 um 14:58

    hey leute...
    in den letzten paar tagen habe ich, wenn ich ein bisschen zeit hatte, an diesem multiple choice program geschrieben. dies ist soweit auch "fertig", allerdings bekomme ich es nicht mit der zufall wiedergabe der fragen hin. es kommen immer ein paar fragen doppelt bzw. werden ausgelassen. kann mir einer dabei helfen? :)

    ansonsten wäre es nett wenn ich von euch ein feedback zu meinem bisherigem werk bekomme ;)

    [autoit]


    ; =====================================================================
    ; Include-Dateien einbinden
    ; =====================================================================
    #Include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>
    ; =====================================================================
    ; Variablen defnieren
    ; =====================================================================
    Global Const $s_title = "Multiple - Choice"
    Global $a_menue_option[4] = ["Datenbank laden", "Datenbank editieren", "", "Beenden"]
    Global $a_menue_hilfe[3] = ["Google aufrufen", "Anleitung", "Über..."]
    Global $a_label[3] = ["Richtig:", "Bisher:", "Gesamt:"]
    Global $a_stand[3] = ["0", "0", "0"]
    Global $a_erledigte_fragen[1] = [1]
    Global $s_file = Default, $s_errortext = Default
    Global $h_GUI, $h_label_frage, $i_falsch = 0
    Global $h_checkbox_antwort_1, $h_checkbox_antwort_2, $h_checkbox_antwort_3, $h_checkbox_antwort_4
    Global $s_anleitungstext = "Die ist ein einfaches Frage - Antwort Spiel im Sinne von" & @CRLF & "Multiple - Choice!" & @CRLF & "Um ein Quiz zu starten einfach eine Datenbank laden." & @CRLF & "Dies muss allerdings ein Textdokument sein!"
    $s_anleitungstext &= @CRLF & "Die Fragen müssen eine spezielle Form haben." & @CRLF & @CRLF & "Zum Beispiel:" & @CRLF & "F:Was ist keine Jahreszeit?" & @CRLF
    $s_anleitungstext &= "B:bild.jpg" & @CRLF & "R1:Ostern" & @CRLF & "F2:Herbst" & @CRLF & "F3:Frühling" & @CRLF & "F4:Sommer" & @CRLF & @CRLF & "Die Atribute 'F' und 'R' gegen an ob die Frage richtig oder falsch ist!" & @CRLF
    $s_anleitungstext &= "Die Fragen müssen durchnummeriert werden!"
    Global $a_erledigte_fragen[1] = [""]
    Global $hex_rot = 0xDB0007, $hex_gruen = 0x00ff00
    Global $s_attribut = Default, $a_fragen_backup, $h_status
    ; =====================================================================
    ; =====================================================================
    ; Hauptprogramm
    ; =====================================================================
    ; =====================================================================
    $h_GUI = GUICreate($s_title, 300, 330, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_SIZEBOX))
    GUISetFont(10, 400, 0, "Comic Sans MS")
    $h_menue_option = GUICtrlCreateMenu("Option")
    For $i = 0 To UBound($a_menue_option) - 1
    $a_menue_option[$i] = GUICtrlCreateMenuItem($a_menue_option[$i], $h_menue_option)
    Next
    $h_menue_hilfe = GUICtrlCreateMenu("Hilfe")
    For $i = 0 To UBound($a_menue_hilfe) - 1
    $a_menue_hilfe[$i] = GUICtrlCreateMenuItem($a_menue_hilfe[$i], $h_menue_hilfe)
    Next
    $h_group = GUICtrlCreateGroup("Status", 5, 5, 290, 45)
    GUICtrlSetResizing($h_group, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKRIGHT)
    For $i = 0 To UBound($a_label) - 1
    $a_label[$i] = GUICtrlCreateLabel($a_label[$i], $i * 90 + 20, 25, 70, 20)
    $a_stand[$i] = GUICtrlCreateLabel($a_stand[$i], $i * 90 + 80, 25, 20, 20)
    Next
    GUICtrlSetResizing($a_label[0], $GUI_DOCKLEFT + $GUI_DOCKTOP)
    GUICtrlSetResizing($a_label[1], $GUI_DOCKTOP)
    GUICtrlSetResizing($a_label[2], $GUI_DOCKRIGHT + $GUI_DOCKTOP)
    GUICtrlSetResizing($a_stand[0], $GUI_DOCKLEFT + $GUI_DOCKTOP)
    GUICtrlSetResizing($a_stand[1], $GUI_DOCKTOP)
    GUICtrlSetResizing($a_stand[2], $GUI_DOCKRIGHT + $GUI_DOCKTOP)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $h_button = GUICtrlCreateButton("Überprüfen", 50, 250, 200, 30)
    GUICtrlSetResizing($h_button, $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM)
    GUISetState(@SW_SHOW, $h_GUI)

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

    While 1
    Switch GUIGetMsg()
    Case $a_menue_hilfe[1]
    MsgBox(64, "Anleitung", $s_anleitungstext)
    Case -4
    GUISetState(@SW_MINIMIZE, $h_GUI)
    Case -3
    Exit
    Case $a_menue_option[0]
    $s_file = FileOpenDialog($s_title, @ScriptDir & "\", "Text (*.txt)", 3)
    $a_inhalt = einlesen($s_file)
    If @error Then
    If @error = 1 Then $s_errortext = "Die Datei konnte nicht geöffnet werden!"
    If @error = 2 Then $s_errortext = "Der Inhalt konnte nicht gelesen werden!"
    If @error = 3 Then $s_errortext = "Fragen konnten nicht geordnet werden!"
    MsgBox(16, "Error", $s_errortext)
    Else
    $a_inhalt = sortieren($a_inhalt)
    GUICtrlSetData($a_stand[2], UBound($a_inhalt, 1))
    $h_label_frage = GUICtrlCreateLabel($a_inhalt[0][0], 50, 70)
    $a_fragen = StringSplit($a_inhalt[0][2], "|", 2)
    $a_fragen_backup = $a_fragen
    For $i = 0 To UBound($a_fragen, 1) - 1
    $a_fragen[$i] = GUICtrlCreateCheckbox(StringTrimLeft(String($a_fragen[$i]), StringInStr($a_fragen[$i], ":")), 70, $i * 30 + 105)
    Next
    EndIf
    Case $h_button
    If GUICtrlRead($h_button) = "Weiter" Then
    For $i = 0 To 3
    GUICtrlDelete($a_fragen[$i])
    Next
    GUICtrlDelete($h_label_frage)
    If GUICtrlRead($a_stand[1]) = GUICtrlRead($a_stand[2]) Then
    MsgBox(64, "Fertig", "Sie haben " & GUICtrlRead($a_stand[0]) & " von " & GUICtrlRead($a_stand[2]) & " Fragen richtig beantwortet!")
    Else
    ;~ Do
    ;~ $ausstehend = True
    ;~ $i_zufall = Random(2, UBound($a_inhalt, 1) - 1, 1)
    ;~ For $i = 0 To UBound($a_erledigte_fragen, 1) - 1
    ;~ If $a_erledigte_fragen[$i] = $i_zufall Then
    ;~ $ausstehend = False
    ;~ EndIf
    ;~ Next
    ;~ Until $ausstehend = True
    ;~ wic($a_erledigte_fragen)
    ;~ $i_ubound = UBound($a_erledigte_fragen, 1)
    ;~ ReDim $a_erledigte_fragen[$i_ubound + 1]
    ;~ $a_erledigte_fragen[$i_ubound] = $i_zufall
    $a_erledigte_fragen[0] += 1
    $i_zufall = $a_erledigte_fragen[0]
    $h_label_frage = GUICtrlCreateLabel($a_inhalt[$i_zufall][0], 50, 70)
    $a_fragen = StringSplit($a_inhalt[$i_zufall][2], "|", 2)
    $a_fragen_backup = $a_fragen
    For $i = 0 To UBound($a_fragen, 1) - 1
    $a_fragen[$i] = GUICtrlCreateCheckbox(StringTrimLeft(String($a_fragen[$i]), StringInStr($a_fragen[$i], ":")), 70, $i * 30 + 105)
    Next
    GUICtrlSetData($h_button, "Überprüfen")
    EndIf
    ElseIf GUICtrlRead($h_button) = "Überprüfen" And $s_file <> Default Then
    $i_falsch = 0
    For $i = 0 To 3
    $s_attribut = StringLeft(String($a_fragen_backup[$i]), 1)
    $h_status = GUICtrlRead($a_fragen[$i])
    If $h_status = 1 And $s_attribut = "R" Then
    GUICtrlSetBkColor($a_fragen[$i], $hex_gruen)
    ElseIf $h_status = 4 And $s_attribut = "R" Then
    GUICtrlSetBkColor($a_fragen[$i], $hex_rot)
    $i_falsch += 1
    ElseIf $h_status = 4 And $s_attribut = "F" Then
    GUICtrlSetBkColor($a_fragen[$i], $hex_gruen)
    ElseIf $h_status = 1 And $s_attribut = "F" Then
    GUICtrlSetBkColor($a_fragen[$i], $hex_rot)
    $i_falsch += 1
    EndIf
    Next
    If $i_falsch == 0 Then
    GUICtrlSetData($a_stand[0], GUICtrlRead($a_stand[0]) + 1)
    EndIf
    GUICtrlSetData($a_stand[1], GUICtrlRead($a_stand[1]) + 1)
    GUICtrlSetData($h_button, "Weiter")
    EndIf
    Case $a_menue_option[1]
    $s_file = FileOpenDialog($s_title, @ScriptDir & "\", "Text (*.txt)", 3)
    ShellExecute($s_file)
    Case $a_menue_option[3]
    Exit
    Case $a_menue_hilfe[0]
    _IECreate("www.google.de")
    Case $a_menue_hilfe[2]
    MsgBox(64, "Über...", "Erstellt von Redhead!")
    EndSwitch
    WEnd

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

    Func einlesen($s_file)
    Local $a_inhalt[1] = [""]
    Local $s_line = Default
    Local $i_ubound = Default
    Local $h_fileopen = FileOpen($s_file, 0)
    If $h_fileopen = -1 Then Return SetError(1, 0, 0)
    Local $s_inhalt = FileRead($h_fileopen, FileGetSize($s_file))
    If $s_inhalt = -1 Then Return SetError(2, 0, 0)
    FileClose($h_fileopen)
    If StringRight($s_inhalt, 1) = @LF Then $s_inhalt = StringTrimRight($s_inhalt, 1)
    If StringRight($s_inhalt, 1) = @CR Then $s_inhalt = StringTrimRight($s_inhalt, 1)
    If StringInStr($s_inhalt, @LF) Then
    Local $a_inhalt_ex = StringSplit(StringStripCR($s_inhalt), @LF, 2)
    Else
    Return SetError(3, 0, 0)
    EndIf
    For $i_counter = 0 To UBound($a_inhalt_ex) - 1
    $s_line = String($a_inhalt_ex[$i_counter])
    If StringLeft($s_line, 1) <> "#" And StringLeft($s_line, 1) <> ";" And StringStripWS($s_line, 8) <> "" Then
    $i_ubound = UBound($a_inhalt)
    ReDim $a_inhalt[$i_ubound + 1]
    $a_inhalt[$i_ubound] = $a_inhalt_ex[$i_counter]
    EndIf
    Next
    For $i_counter = 0 To UBound($a_inhalt) - 2
    $a_inhalt[$i_counter] = $a_inhalt[$i_counter + 1]
    Next
    ReDim $a_inhalt[UBound($a_inhalt) - 1]
    If UBound($a_inhalt) < 5 Then Return SetError(3, 0, 0)
    Return $a_inhalt
    EndFunc

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

    Func sortieren($a_array)
    Local $a_inhalt[1][3] = [["", "", ""]]
    Local $s_antworten = Default
    Local $i_ubound_1 = Default
    Local $i_ubound_2 = Default
    For $i = 0 To UBound($a_array) - 1 Step 6
    $s_antworten = $a_array[$i + 2] & "|" & _
    $a_array[$i + 3] & "|" & _
    $a_array[$i + 4] & "|" & _
    $a_array[$i + 5]
    $i_ubound_1 = UBound($a_inhalt, 1)
    $i_ubound_2 = UBound($a_inhalt, 2)
    ReDim $a_inhalt[$i_ubound_1 + 1][$i_ubound_2 + 1]
    $a_inhalt[$i_ubound_1][1] = StringTrimLeft(String($a_array[$i]), StringInStr($a_array[$i], ":"))
    $a_inhalt[$i_ubound_1][2] = StringTrimLeft(String($a_array[$i + 1]), StringInStr($a_array[$i + 1], ":"))
    $a_inhalt[$i_ubound_1][3] = $s_antworten
    Next
    For $i_counter = 0 To $i_ubound_1 - 1
    For $i = 0 To $i_ubound_2 - 2
    $a_inhalt[$i_counter][$i] = $a_inhalt[$i_counter + 1][$i + 1]
    Next
    Next
    ReDim $a_inhalt[UBound($a_inhalt, 1) - 1][UBound($a_inhalt, 2) - UBound($a_inhalt, 1) + 1]
    Return $a_inhalt
    EndFunc

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

    Func wic($text)
    If IsArray($text) Then
    Switch UBound($text, 0)
    Case 1
    For $i = 0 To UBound($text, 1) - 1
    ConsoleWrite($text[$i] & @CRLF)
    Next
    Case 2
    For $i = 0 To UBound($text, 1) - 1
    For $m = 0 To UBound($text, 2) - 1
    ConsoleWrite($text[$i][$m] & @CRLF)
    Next
    Next
    Case 3
    For $i = 0 To UBound($text, 1) - 1
    For $m = 0 To UBound($text, 2) - 1
    For $k = 0 To UBound($text, 3) - 1
    ConsoleWrite($text[$i][$m][$k] & @CRLF)
    Next
    Next
    Next
    EndSwitch
    Else
    ConsoleWrite($text & @CRLF)
    EndIf
    EndFunc

    [/autoit]

    Dateien

    Multiple - Choice.au3 10,04 kB – 215 Downloads Fragen.txt 662 Byte – 229 Downloads

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™