Guten Tag
Ich schreibe gerade ein kleines Progrämmchen für das GTA San Andreas. Mit dem Programm kann man (wenn es dann mal fertig ist) sagen, welche Autos in welcher Gruppe sind.
Aus irgendeinem Grund fragt mein Programm aber die While-Schleife nicht ab.
Hier mal der Quelltext:
Spoiler anzeigen
#include <GuiConstants.au3>
#include <file.au3>
#Include <GuiListBox.au3>
Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]Global $lH = 20
Global $i_bH = 15
Global $group[19]
Global $btn[19]
Global $line = 8
Global $cars = @ScriptDir & "\cars.txt"
$main = GUICreate("Cargroup Editor for GTA San Andreas - CopyRight by StengelProductions", 940, 485)
GUICtrlCreateLabel("Worker:", 20, $lH, 100, 25)
GUICtrlCreateLabel("Business:", 20, $lH + 25, 100, 25)
GUICtrlCreateLabel("Clubbers", 20, $lH + 50, 100, 25)
GUICtrlCreateLabel("Farmers:", 20, $lH + 75, 100, 25)
GUICtrlCreateLabel("Beachfolk:", 20, $lH + 100, 100, 25)
GUICtrlCreateLabel("Parkfolk:", 20, $lH + 125, 100, 25)
GUICtrlCreateLabel("Casual Rich:", 20, $lH + 150, 100, 25)
GUICtrlCreateLabel("Casual Average:", 20, $lH + 175, 100, 25)
GUICtrlCreateLabel("Casual Poor:", 20, $lH + 200, 100, 25)
GUICtrlCreateLabel("Prostitutes:", 20, $lH + 225, 100, 25)
GUICtrlCreateLabel("Criminals:", 20, $lH + 250, 100, 25)
GUICtrlCreateLabel("Golfers:", 20, $lH + 275, 100, 25)
GUICtrlCreateLabel("Servants:", 20, $lH + 300, 100, 25)
GUICtrlCreateLabel("Aircrew:", 20, $lH + 325, 100, 25)
GUICtrlCreateLabel("Entertainer:", 20, $lH + 350, 100, 25)
GUICtrlCreateLabel("Out-Of-Town:", 20, $lH + 375, 100, 25)
GUICtrlCreateLabel("Desert Folk:", 20, $lH + 400, 100, 25)
GUICtrlCreateLabel("Aircrew on Runway:", 20, $lH + 425, 100, 25)
$group[1] = GUICtrlCreateInput("", 150, $i_bH, 650, 25)
$group[2] = GUICtrlCreateInput("", 150, $i_bH + 25, 650, 25)
$group[3] = GUICtrlCreateInput("", 150, $i_bH + 50, 650, 25)
$group[4] = GUICtrlCreateInput("", 150, $i_bH + 75, 650, 25)
$group[5] = GUICtrlCreateInput("", 150, $i_bH + 100, 650, 25)
$group[6] = GUICtrlCreateInput("", 150, $i_bH + 125, 650, 25)
$group[7] = GUICtrlCreateInput("", 150, $i_bH + 150, 650, 25)
$group[8] = GUICtrlCreateInput("", 150, $i_bH + 175, 650, 25)
$group[9] = GUICtrlCreateInput("", 150, $i_bH + 200, 650, 25)
$group[10] = GUICtrlCreateInput("", 150, $i_bH + 225, 650, 25)
$group[11] = GUICtrlCreateInput("", 150, $i_bH + 250, 650, 25)
$group[12] = GUICtrlCreateInput("", 150, $i_bH + 275, 650, 25)
$group[13] = GUICtrlCreateInput("", 150, $i_bH + 300, 650, 25)
$group[14] = GUICtrlCreateInput("", 150, $i_bH + 325, 650, 25)
$group[15] = GUICtrlCreateInput("", 150, $i_bH + 350, 650, 25)
$group[16] = GUICtrlCreateInput("", 150, $i_bH + 375, 650, 25)
$group[17] = GUICtrlCreateInput("", 150, $i_bH + 400, 650, 25)
$group[18] = GUICtrlCreateInput("", 150, $i_bH + 425, 650, 25)
$btn[1] = GUICtrlCreateButton("Ändern", 820, $i_bH, 100, 25)
GUICtrlSetOnEvent(-1, "_change")
$btn[2] = GUICtrlCreateButton("Ändern", 820, $i_bH + 25, 100, 25)
GUICtrlSetOnEvent(-1, "_change")
$btn[3] = GUICtrlCreateButton("Ändern", 820, $i_bH + 50, 100, 25)
GUICtrlSetOnEvent(-1, "_change")
$btn[4] = GUICtrlCreateButton("Ändern", 820, $i_bH + 75, 100, 25)
GUICtrlSetOnEvent(-1, "_change")
$btn[5] = GUICtrlCreateButton("Ändern", 820, $i_bH + 100, 100, 25)
GUICtrlSetOnEvent(-1, "_change")
$btn[6] = GUICtrlCreateButton("Ändern", 820, $i_bH + 125, 100, 25)
GUICtrlSetOnEvent(-1, "_change")
$btn[7] = GUICtrlCreateButton("Ändern", 820, $i_bH + 150, 100, 25)
GUICtrlSetOnEvent(-1, "_change")
$btn[8] = GUICtrlCreateButton("Ändern", 820, $i_bH + 175, 100, 25)
GUICtrlSetOnEvent(-1, "_change")
$btn[9] = GUICtrlCreateButton("Ändern", 820, $i_bH + 200, 100, 25)
GUICtrlSetOnEvent(-1, "_change")
$btn[10] = GUICtrlCreateButton("Ändern", 820, $i_bH + 225, 100, 25)
GUICtrlSetOnEvent(-1, "_change")
$btn[11] = GUICtrlCreateButton("Ändern", 820, $i_bH + 250, 100, 25)
GUICtrlSetOnEvent(-1, "_change")
$btn[12] = GUICtrlCreateButton("Ändern", 820, $i_bH + 275, 100, 25)
GUICtrlSetOnEvent(-1, "_change")
$btn[13] = GUICtrlCreateButton("Ändern", 820, $i_bH + 300, 100, 25)
GUICtrlSetOnEvent(-1, "_change")
$btn[14] = GUICtrlCreateButton("Ändern", 820, $i_bH + 325, 100, 25)
GUICtrlSetOnEvent(-1, "_change")
$btn[15] = GUICtrlCreateButton("Ändern", 820, $i_bH + 350, 100, 25)
GUICtrlSetOnEvent(-1, "_change")
$btn[16] = GUICtrlCreateButton("Ändern", 820, $i_bH + 375, 100, 25)
GUICtrlSetOnEvent(-1, "_change")
$btn[17] = GUICtrlCreateButton("Ändern", 820, $i_bH + 400, 100, 25)
GUICtrlSetOnEvent(-1, "_change")
$btn = GUICtrlCreateButton("Ändern", 820, $i_bH + 425, 100, 25)
GUICtrlSetOnEvent(-1, "_change")
$cargui = GUICreate("Auto Auswählen", 480, 360, -1, -1, -1, -1, $main)
$ingroup = _GUICtrlListBox_Create($cargui, "", 20, 20, 160, 210)
$notingroup = _GUICtrlListBox_Create($cargui, "", 300, 20, 160, 210)
$addcar = GUICtrlCreateButton("Hinzufügen", 190, 20, 100, 25)
GUICtrlSetOnEvent(-1, "_add")
$delcar = GUICtrlCreateButton("Löschen", 190, 65, 100, 25)
GUICtrlSetOnEvent(-1, "_del")
$addallcars = GUICtrlCreateButton("Alle Hinzufügen", 190, 110, 100, 25)
GUICtrlSetOnEvent(-1, "_addall")
$delallcars = GUICtrlCreateButton("Alle Löschen", 190, 155, 100, 25)
GUICtrlSetOnEvent(-1, "_delall")
$ok = GUICtrlCreateButton("Übernehmen", 190, 197, 100, 25)
GUICtrlSetOnEvent(-1, "_ok")
$pic2 = GUICtrlCreatePic("", 300, 240, 160, 112, $SS_SUNKEN)
$pic1 = GUICtrlCreatePic("", 20, 240, 160, 112, $SS_SUNKEN)
$logo = GUICtrlCreatePic("", 184, 240, 112, 112, $SS_SUNKEN)
GUICtrlSetImage($logo, "gfx\sp.jpg")
If Not FileExists(@scriptdir & "\cars.txt") Then
GUISetState(@SW_DISABLE, $main)
MsgBox(262160, "Error", "Die Datei ""cars.txt"" konnte nicht gefunden werden." & @CRLF & "Drücken Sie OK um das Programm zu beenden.")
Exit
EndIf
If RegRead("HKLM\SOFTWARE\Rockstar Games\GTA San Andreas\Installation", "Installed") <> 1 Then
GUISetState(@SW_DISABLE, $main)
MsgBox(262160, "Error", "GTA San Andreas ist nicht auf Ihrem Computer Installiert." & @CRLF & "Drücken Sie OK um das Programm zu beenden.")
Exit
EndIf
$searchfile = String(StringTrimRight(RegRead("HKLM\SOFTWARE\Rockstar Games\GTA San Andreas\Installation", "ExePath"), 11) & "data\cargrp.dat")
$file = StringTrimLeft($searchfile, 1)
For $read_line = 1 to 18
$readen_line = string(filereadline($file, $line))
GUICtrlSetData($group[$read_line], $readen_line)
Do
$readen_line = String(StringTrimRight($readen_line, 1))
GUICtrlSetData($group[$read_line], $readen_line)
Until StringIsLower(StringRight(GUICtrlRead($group[$read_line]), 1)) = 1 Or StringInStr("1234567890", StringRight(GUICtrlRead($group[$read_line]), 1)) <> 0
$line += 1
Next
GUISetState(@SW_SHOW, $main)
[/autoit] [autoit][/autoit] [autoit]While 1
$msg = GUIGetMsg(1)
Select
Case $msg[0] = $GUI_EVENT_CLOSE
If $msg[1] = $main Then
GUISetState(@SW_DISABLE, $main)
$endask = MsgBox(262160, "CarGroup Editor", "Wollen sie das Programm wirklich beenden?")
If $endask = 6 Then
Exit
EndIf
ElseIf $msg[1] = $cargui Then
GUISetState(@SW_HIDE, $cargui)
GUISetState(@SW_ENABLE, $main)
EndIf
EndSelect
WEnd
Func _change()
GUISetState(@SW_DISABLE, $main)
GUISetState(@SW_SHOW, $cargui)
Global $ctrlid = @gui_ctrlid - 38
_GUICtrlListBox_BeginUpdate ($ingroup)
_GUICtrlListBox_BeginUpdate ($notingroup)
For $carcount = 1 to _FileCountLines($cars)
$carname = FileReadLine($cars, $carcount)
$isingroup = String(guictrlread($group[$ctrlid]))
If StringInStr($isingroup, $carname) = 0 then
_GUICtrlListBox_AddString($notingroup, $carname)
Else
_GUICtrlListBox_AddString($ingroup, $carname)
EndIf
Next
_GUICtrlListBox_EndUpdate ($ingroup)
_GUICtrlListBox_EndUpdate ($notingroup)
EndFunc
Func _add()
$selectedcar = _GUICtrlListBox_GetCurSel($notingroup)
$cartoadd = _GUICtrlListBox_GetText ($notingroup, $selectedcar)
_GUICtrlListBox_AddString($ingroup, $cartoadd)
_GUICtrlListBox_DeleteString($notingroup, $selectedcar)
EndFunc
Func _del()
$selectedcar = _GUICtrlListBox_GetCurSel ($ingroup)
$cartoadd = _GUICtrlListBox_GetText ($ingroup, $selectedcar)
_GUICtrlListBox_AddString($notingroup, $cartoadd)
_GUICtrlListBox_DeleteString($ingroup, $selectedcar)
EndFunc
Func _delall()
_GUICtrlListBox_BeginUpdate ($ingroup)
_GUICtrlListBox_BeginUpdate ($notingroup)
Do
$cartodel = _GUICtrlListBox_GetText ($ingroup, 0)
_GUICtrlListBox_AddString($notingroup, $cartodel)
_GUICtrlListBox_DeleteString($ingroup, 0)
Until _GUICtrlListBox_GetCount($ingroup) = 0
_GUICtrlListBox_EndUpdate ($ingroup)
_GUICtrlListBox_EndUpdate ($notingroup)
EndFunc
Func _addall()
_GUICtrlListBox_BeginUpdate ($ingroup)
_GUICtrlListBox_BeginUpdate ($notingroup)
Do
$cartoadd = _GUICtrlListBox_GetText ($notingroup, 0)
_GUICtrlListBox_AddString($ingroup, $cartoadd)
_GUICtrlListBox_DeleteString($notingroup, 0)
Until _GUICtrlListBox_GetCount($notingroup) = 0
_GUICtrlListBox_EndUpdate ($ingroup)
_GUICtrlListBox_EndUpdate ($notingroup)
EndFunc
Func _ok()
;~ funktion
EndFunc
Weiss jemand von euch warum die While-Schleife nicht abgefragt wird?
Danke im Voraus