Hey Leute,
ich in dem Skript das ich gerade entwickle, wird eine Funktion immer wieder wie in einer schleife aufgerufen.
Ein paar vorab Infos:
Entwicklungsumgebung: SciTE 3.2.0
OS: WINXP Pro
AutoIt3Wrapper v.2.1.0.33
Ich hab mal das gesamte Sktipt gepostet, damit ich nichts vergesse.
Es dreht sich um die Funktion AddListview() (Beginn Zeile 409). Die Funktion wird in der Zeile 105 aufgerufen.
Eigendlich sollten die Funktion erst ausgeführt werden, wenn der Button Hinzufügen (Der über die Funktion button() erstellt wird) gedrückt wird.
Im Moment, wird die Funktion beim start des Skripts ununterbrochen aufgerufen und ich kann mich nicht erklären woran das liegt.
Spoiler anzeigen
;~ ###################################################################################################################################
;~ ###################################################################################################################################
;~ ## ##
;~ ## Skript Name: Haushaltsbuch.exe ##
;~ ## Author: Thorsten Zelt ##
;~ ## Erstell Datum: 05.01.2013 ##
;~ ## ##
;~ ## Funktion: Übersicht über die Privaten Finazen ##
;~ ## ##
;~ ## Erläuterungen: Navigation: ##
;~ ## Der Wert der Variable "$navigation_index" bestimmt, welcher Menü Punkt in der Navigation ausgewählt wurde. ##
;~ ## - Wert 0: Navigation ##
;~ ## - Wert 1: Ausgaben ##
;~ ## - Wert 2: Versicherung ##
;~ ## - Wert 3: Einnahmen ##
;~ ## - Wert 4: Statistik ##
;~ ## ##
;~ ## GUI Arrays: ##
;~ ## Um die größes des jeweiligen Arrays zu ändern, müssen 2 Variable angepasst werden. ##
;~ ## Bspl. Ausgaben: ##
;~ ## - $ausgabenSchleifenEnde +1 (Index beginnt bei 1) ##
;~ ## - Dim $ausgaben[] +1 (Index beginnt bei 0) ##
;~ ## Button (Hinzufügen, Löschen, Speichern): ##
;~ ## In der Funktion button() werden die Button erstellt, eingeblendet und aufgeblendet. ##
;~ ## Die Variabel $buttonHide bestimmt bestimmt ob die Buttons eingeblendet oder ausgeblendet werden. ##
;~ ## Wert 0: Buttons werden ausgeblendet ##
;~ ## Wert 1: Buttons werden eingeblendet ##
;~ ## ##
;~ ###################################################################################################################################
;~ ###################################################################################################################################
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <GUIListView.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <TreeViewConstants.au3>
#include <GuiStatusBar.au3>
#include <Array.au3>
#include <Date.au3>
#include <DateTimeConstants.au3>
#include <GUIEdit.au3>
;~ Variable deklarieren
Global $menu_datei_schliessen
Global $navigation_index, $StartStatus, $navigation_main, $navigation_main_ausgaben, $navigation_main_versicherungen, $navigation_main_einnahmen, $navigation_main_statistik
Global $font, $komma, $eur
Global $buttonHide, $buttonHinzufuegen
Global $hallo
;Veariable werden gefüllt
$font = "Arial"
$komma = ","
$eur = "€"
; Array für den Inhalt der GUIs
Global $button, $buttonSchleifeEnde, $ausgabenSchleifenEnde
Global $ListviewAusgaben
$buttonSchleifeEnde = 2
$ausgabenSchleifenEnde = 13
$ListviewAusgabenUeberschrift = 4
Dim $start[2]
Dim $button[3]
Dim $ausgaben[14]
Dim $ListviewAusgabenUeberschrift[5]
Dim $versicherungen[1]
Dim $einnahmen[1]
Dim $statistik[1]
$ListviewAusgabenUeberschrift[0] = "Datum"
$ListviewAusgabenUeberschrift[1] = "Laden"
$ListviewAusgabenUeberschrift[2] = "Betrag"
$ListviewAusgabenUeberschrift[3] = "Bezahlt mit"
$ListviewAusgabenUeberschrift[4] = "Bereich"
#Region ### START Koda GUI section ### Form=
$main = GUICreate("Haushaltsbuch", 950, 700, 192, 114)
menu()
start()
$Label1 = GUICtrlCreateLabel("Haushaltsbuch", 272, 10, 180, 28, $SS_CENTER)
GUICtrlSetFont(-1, 18, 400, 0, $font)
navigation()
_GUICtrlStatusBar_Create($main)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $menu_datei_schliessen
Exit
Case $navigation_main
main()
Case $navigation_main_ausgaben
ausgaben()
Case $navigation_main_versicherungen
versicherung()
Case $navigation_main_einnahmen
einnahmen()
Case $navigation_main_statistik
statistik()
Case $buttonHinzufuegen
AddListview()
EndSwitch
WEnd
Func menu()
Dim $menu_datei, $menu_extra
$menu_datei = GUICtrlCreateMenu("Datei")
$menu_datei_schliessen = GUICtrlCreateMenuItem("Beenden", $menu_datei)
$menu_extra = GUICtrlCreateMenu("Extra")
$menu_extra_aktualisieren = GUICtrlCreateMenuItem("Aktualisieren", $menu_extra)
$menu_extra_optionen = GUICtrlCreateMenuItem("Optionen", $menu_extra)
EndFunc
Func navigation()
Dim $navigation
$navigation = GUICtrlCreateTreeView(6, 50, 126, 600, BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)
$navigation_main = GUICtrlCreateTreeViewItem("Navigation", $navigation)
$navigation_main_ausgaben = GUICtrlCreateTreeViewItem("Ausgaben", $navigation_main)
$navigation_main_versicherungen = GUICtrlCreateTreeViewItem("Versicherungen", $navigation_main)
$navigation_main_einnahmen = GUICtrlCreateTreeViewItem("Einnahmen", $navigation_main)
$navigation_main_statistik = GUICtrlCreateTreeViewItem("Statistik", $navigation_main)
GUICtrlSetState($navigation_main, BitOR($GUI_EXPAND, $GUI_DEFBUTTON)) ; Expand the "General"-item and paint in bold
EndFunc
Func start()
GUICtrlSetFont(10, 400, 0, $font)
$navigation_index = 0
$buttonHide = 0
$Start[0] = "Guten Tag " & @UserName & "." & @CRLF & @CRLF _
& "Vielen Dank das Sie sich für das Programm Haushaltsbuch entschieden haben." & @CRLF & @CRLF _
& "Das Programm Haushaltsbuch, wurde für die Übersicht der Privaten Finanzen erstellt." _
& @CRLF & "Das Haushaltsbuch wurde so einfach wie nur möglich gehalten. Es basiert auf der Einahmen Überschuss Rechnung." _
& @CRLF & @CRLF _
& @CRLF & "Sollten Sie mit dem Programm nicht zurecht kommen, wenden Sie sich an mich."
$start[1] = GUICtrlCreateLabel($Start[0], 145, 50, 400, 400)
GUICtrlSetFont(-1, 12, 400, 0, $font)
EndFunc
;~ ########################################################################################################################
;~ ######################### Beginn der Funktionen, die über die Navigation aufgerufen werden #############################
;~ ########################################################################################################################
Func main()
$buttonHide = 0
button()
Select
Case $navigation_index = 1
;~ GUICtrlSetState($Ausgaben[0], $GUI_HIDE)
VersteckeAusgabenItems()
GUICtrlSetState($start[1], $GUI_SHOW)
Case $navigation_index = 2
GUICtrlSetState($versicherungen[0], $GUI_HIDE)
GUICtrlSetState($start[1], $GUI_SHOW)
Case $navigation_index = 3
GUICtrlSetState($einnahmen[0], $GUI_HIDE)
GUICtrlSetState($start[1], $GUI_SHOW)
Case $navigation_index = 4
GUICtrlSetState($statistik[0], $GUI_HIDE)
GUICtrlSetState($start[1], $GUI_SHOW)
EndSelect
$navigation_index = 0
EndFunc
Func ausgaben()
$buttonHide = 1
button()
Select
Case $navigation_index = 0
GUICtrlSetState($start[1], $GUI_HIDE)
ErstelleAusgabenItems()
Case $navigation_index = 2
GUICtrlSetState($versicherungen[0], $GUI_HIDE)
ErstelleAusgabenItems()
Case $navigation_index = 3
GUICtrlSetState($einnahmen[0], $GUI_HIDE)
ErstelleAusgabenItems()
Case $navigation_index = 4
GUICtrlSetState($statistik[0], $GUI_HIDE)
ErstelleAusgabenItems()
EndSelect
$navigation_index = 1
EndFunc
Func versicherung()
$buttonHide = 1
button()
Select
Case $navigation_index = 0
GUICtrlSetState($start[1], $GUI_HIDE)
If $versicherungen[0] = "" Then
$versicherungen[0] = GUICtrlCreateLabel("Versicherungen", 145,50,120,25)
GUICtrlSetFont(-1, 12, 400, 0, $font)
Else
GUICtrlSetState($versicherungen[0], $GUI_SHOW)
EndIf
case $navigation_index = 1
VersteckeAusgabenItems()
If $versicherungen[0] = "" Then
$versicherungen[0] = GUICtrlCreateLabel("Versicherungen", 145,50,120,25)
GUICtrlSetFont(-1, 12, 400, 0, $font)
Else
GUICtrlSetState($versicherungen[0], $GUI_SHOW)
EndIf
Case $navigation_index = 3
GUICtrlSetState($einnahmen[0], $GUI_HIDE)
If $versicherungen[0] = "" Then
$versicherungen[0] = GUICtrlCreateLabel("Versicherungen", 145,50,120,25)
GUICtrlSetFont(-1, 12, 400, 0, $font)
Else
GUICtrlSetState($versicherungen[0], $GUI_SHOW)
EndIf
Case $navigation_index = 4
GUICtrlSetState($statistik[0], $GUI_HIDE)
If $versicherungen[0] = "" Then
$versicherungen[0] = GUICtrlCreateLabel("Versicherungen", 145,50,120,25)
GUICtrlSetFont(-1, 12, 400, 0, $font)
Else
GUICtrlSetState($versicherungen[0], $GUI_SHOW)
EndIf
EndSelect
$navigation_index = 2
EndFunc
Func einnahmen()
$buttonHide = 1
button()
Select
Case $navigation_index = 0
GUICtrlSetState($start[1], $GUI_HIDE)
If $einnahmen[0] = "" Then
$einnahmen[0] = GUICtrlCreateLabel("Einnahmen", 145,50,120,25)
GUICtrlSetFont(-1, 12, 400, 0, $font)
Else
GUICtrlSetState($einnahmen[0], $GUI_SHOW)
EndIf
Case $navigation_index = 1
VersteckeAusgabenItems()
If $einnahmen[0] = "" Then
$einnahmen[0] = GUICtrlCreateLabel("Einnahmen", 145,50,120,25)
GUICtrlSetFont(-1, 12, 400, 0, $font)
Else
GUICtrlSetState($einnahmen[0], $GUI_SHOW)
EndIf
Case $navigation_index = 2
GUICtrlSetState($versicherungen[0], $GUI_HIDE)
If $einnahmen[0] = "" Then
$einnahmen[0] = GUICtrlCreateLabel("Einnahmen", 145,50,120,25)
GUICtrlSetFont(-1, 12, 400, 0, $font)
Else
GUICtrlSetState($einnahmen[0], $GUI_SHOW)
EndIf
Case $navigation_index = 4
GUICtrlSetState($statistik[0], $GUI_HIDE)
If $einnahmen[0] = "" Then
$einnahmen[0] = GUICtrlCreateLabel("Einnahmen", 145,50,120,25)
GUICtrlSetFont(-1, 12, 400, 0, $font)
Else
GUICtrlSetState($einnahmen[0], $GUI_SHOW)
EndIf
EndSelect
$navigation_index = 3
EndFunc
Func statistik()
$buttonHide = 0
button()
Select
Case $navigation_index = 0
GUICtrlSetState($start[1], $GUI_HIDE)
If $statistik[0] = "" Then
$statistik[0] = GUICtrlCreateLabel("Statistik", 145,50,120,25)
GUICtrlSetFont(-1, 12, 400, 0, $font)
Else
GUICtrlSetState($statistik[0], $GUI_SHOW)
EndIf
Case $navigation_index = 1
VersteckeAusgabenItems()
If $statistik[0] = "" Then
$statistik[0] = GUICtrlCreateLabel("Statistik", 145,50,120,25)
GUICtrlSetFont(-1, 12, 400, 0, $font)
Else
GUICtrlSetState($statistik[0], $GUI_SHOW)
EndIf
Case $navigation_index = 2
GUICtrlSetState($versicherungen[0], $GUI_HIDE)
If $statistik[0] = "" Then
$statistik[0] = GUICtrlCreateLabel("Statistik", 145,50,120,25)
GUICtrlSetFont(-1, 12, 400, 0, $font)
Else
GUICtrlSetState($statistik[0], $GUI_SHOW)
EndIf
Case $navigation_index = 3
GUICtrlSetState($einnahmen[0], $GUI_HIDE)
If $statistik[0] = "" Then
$statistik[0] = GUICtrlCreateLabel("Statistik", 145,50,120,25)
GUICtrlSetFont(-1, 12, 400, 0, $font)
Else
GUICtrlSetState($statistik[0], $GUI_SHOW)
EndIf
EndSelect
$navigation_index = 4
EndFunc
;~ ########################################################################################################################
;~ ######################################### Ende der Navigations Funktionen ##############################################
;~ ########################################################################################################################
;~ ########################################################################################################################
;~ ####################### Beginn der Funktionen, um GUI Items zu erstellen, auszublenen oder einzublenden ################
;~ ########################################################################################################################
Func button()
Local $i
If $navigation_index = "" Then
If $button[0] = "" Then
$button[0] = GUICtrlCreateButton("Hinzufügen", 860, 142, 82, 25)
If $button[0] <> 0 Then
GUICtrlSetState($button[0], $GUI_HIDE)
$buttonHide = 1
$buttonHinzufuegen = $button[0]
EndIf
EndIf
IF $button[1] = "" Then
$button[1] = GUICtrlCreateButton("Löschen", 860, 172, 82, 25)
If $button[1] <> 0 Then
GUICtrlSetState($button[1], $GUI_HIDE)
EndIf
EndIf
If $button[2] = "" Then
$button[2] = GUICtrlCreateButton("Speichern", 860, 625, 82, 25)
If $button[2] <> 0 Then
GUICtrlSetState($button[2], $GUI_HIDE)
EndIf
EndIf
EndIf
Select
Case $buttonHide = 0
For $i = 0 To $buttonSchleifeEnde Step 1
GUICtrlSetState($button[$i], $GUI_HIDE)
Next
Case $buttonHide = 1
If $buttonHide = 1 Then
For $i = 0 To $buttonSchleifeEnde Step 1
GUICtrlSetState($button[$i], $GUI_SHOW)
Next
EndIf
EndSelect
EndFunc
[/autoit] [autoit][/autoit] [autoit]Func ErstelleAusgabenItems()
Local $i
If $Ausgaben[0] = "" Then
$Ausgaben[0] = GUICtrlCreateLabel("Ausgaben", 145,50,100,25)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Ausgaben[1] = GUICtrlCreateLabel("Datum", 165, 80, 60,15)
$Ausgaben[2] = GUICtrlCreateDate("", 145, 98, 80, 20, $DTS_SHORTDATEFORMAT)
$Ausgaben[3] = GUICtrlCreateLabel("Laden", 265, 80, 100, 15)
$Ausgaben[4] = GUICtrlCreateCombo("", 230, 98, 100,20)
$Ausgaben[5] = GUICtrlCreateLabel("Betrag", 345, 80, 50, 15)
$Ausgaben[6] = GUICtrlCreateInput("", 335, 98, 25, 20, $ES_Number)
$Ausgaben[7] = GUICtrlCreateLabel(",", 361, 107, 5, 22)
$Ausgaben[8] = GUICtrlCreateInput("", 367, 98, 20, 20, $ES_Number)
$Ausgaben[9] = GUICtrlCreateLabel($eur, 389, 101, 8, 20)
$Ausgaben[10] = GUICtrlCreateLabel("Bezahlart", 420,80, 80, 15)
$Ausgaben[11] = GUICtrlCreateCombo("", 402, 98, 100,20)
$Ausgaben[12] = GUICtrlCreateLabel("Bereich", 530, 80, 80, 15)
$Ausgaben[13] = GUICtrlCreateCombo("", 507,98, 100, 20)
$ListviewAusgaben = GUICtrlCreateListView($ListviewAusgabenUeberschrift[0] & '|' & $ListviewAusgabenUeberschrift[1] & '|' & $ListviewAusgabenUeberschrift[2] & '|' & $ListviewAusgabenUeberschrift[3] & '|' & $ListviewAusgabenUeberschrift[4], 145, 123, 705, 482)
_GUICtrlListView_SetColumnWidth($ListviewAusgaben, 0, 80)
_GUICtrlListView_SetColumnWidth($ListviewAusgaben, 1, 200)
_GUICtrlListView_SetColumnWidth($ListviewAusgaben, 2, 80)
_GUICtrlListView_SetColumnWidth($ListviewAusgaben, 3, 145)
_GUICtrlListView_SetColumnWidth($ListviewAusgaben, 4, 196)
_GUICtrlListView_RegisterSortCallBack($ListviewAusgaben)
Else
For $i = 0 to $ausgabenSchleifenEnde Step 1
GUICtrlSetState($Ausgaben[$i], $GUI_SHOW)
Next
GUICtrlSetState($ListviewAusgaben, $GUI_SHOW)
EndIf
EndFunc
Func VersteckeAusgabenItems()
Dim $i
For $i = 0 to $ausgabenSchleifenEnde Step 1
GUICtrlSetState($Ausgaben[$i], $GUI_HIDE)
Next
GUICtrlSetState($ListviewAusgaben, $GUI_HIDE)
EndFunc
;~ ########################################################################################################################
;~ ####################### Ende der Funktionen, um GUI Items zu erstellen, auszublenen oder einzublenden ##################
;~ ########################################################################################################################
;~ ########################################################################################################################
;~ ############################### Anfang der Funktionen, um Die Listviews zu bearbeiten ##################################
;~ ########################################################################################################################
Func AddListview()
GUICtrlCreateLabel("test", 400,400,100,25)
EndFunc
;~ ########################################################################################################################
;~ ################################ Ende der Funktionen, um Die Listviews zu bearbeiten ###################################
;~ ########################################################################################################################
Wo liegt mein Fehler, und wie kann er behoben werden?
Ich danke schon mal im vorraus für eure Hilfe!
Gruß
0cool