GUICtrlCreateListViewItem & GUICtrlDelete

  • Also ich habe mal wieder ein problem(chen) und zwar ich habe eine GUI:

    Spoiler anzeigen
    [autoit]

    Global $gui_tstatistik = GUICreate( $opts_namepgr[2]&"-Tages-Statistiken", 300, 300, 30, 30)
    $listview = GUICtrlCreateListView("Kennzeichen|Flugzeugtyp|Starts|Flugzeit", 10, 10, 280, 250)
    $closebutton = GUICtrlCreateButton("Schließen", 190, 270, 100, 20)
    GUICtrlSetOnEvent($closebutton, "close_statistik")
    ;HIER KOMMT SEHR VIEL CODE ABER IM ENDEFFEKT:
    For $e=1 To 10
    If $airs[$e] <> 0 Then
    $list[$e] = GUICtrlCreateListViewItem($file_stats[$e]&"|"&$splitted_string[$e]&"|"&$airs[$e]&"|"&$airt[$e]&":"&$airl[$e], $listview)
    EndIf
    Next
    GUISetState(@SW_SHOW, $gui_tstatistik)

    [/autoit]


    Diese Öffnet sich bei einem Button d.h. ich habe das ganze in eine Funktion geschrieben. Danach trägt er noch max. 10 LiestViewItems ein (ist ein zu langer code)
    So beim Schließen bzw. beim erneuten öffnen müssen diese ListViewItems wieder weg sein (GUICtrlDelete) da ist schon das erste Problem es werden eig. nie alle geschrieben d.h. es kann mal sein das $list[2] u. $list[4] geschrieben wurde und der Rest nicht, deshalb hab ich das eben so gelöst dass sich das GUI jedes mal neu macht. Durch die var Global geht das dann ja auch wieder mit der Funktion schließen:

    Spoiler anzeigen
    [autoit]

    Func close_statistik()
    GUISetState(@SW_HIDE, $gui_tstatistik)
    EndFunc

    [/autoit]


    Somit meckert er jedesmal rum das die var: $gui_tstatistik möglicherweise nicht deklariert ist, das ist sie natürlich schon denn es wird ja immer zuerst das GUI geöffnet

    Fazit es funktioniert so wie ich es gemacht habe aber ich bin mir zu 100% sicher das es da noch eine bessere Lösung gibt^^
    Er meckert ja lediglich in scite mit diesem Fehler rum öffnet das Programm aber trotzdem, in der Kompellierten Version merkt man davon natürlich nichts mehr ;)

    achso ja hier nochmal die "Fehlermeldungen" es geht ja trotzdem ^^

    THX 4 your HELP

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

    Einmal editiert, zuletzt von FireFlyer (28. Februar 2008 um 19:39)

  • Wenn alles geht, macht das eigentlich nichts aus. Ist ja nur eine Warnung und kein Fehler :)

    Steht die Funktion vor oder nach der Deklaration der GUI?
    Du kannst aber auch das Makro @GUI_WinHandle verwenden

    //Edit:
    Ach, so. Die GUI wird in einer anderen Funktion deklariert. Dann findet er die Variable beim prüfen nicht.
    Du kannst dafür auch an den Anfang des Skripts
    Global $gui_tstatistik = -1
    schreiben, um beide Warnungen wegzubekommen.

  • ähhm also es gibt quasi nur 2 functions:
    open_statistik ist der obere Spoiler

    und

    close_statistik ist der untere Spoiler

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • k hab ich gemacht^^
    keine warnung mehr :P THX ich lasses einfach so

    *NEVER TOUCH A RUNNING SYSTEM!!!*

    kennen wir ja glaub ich alle^^

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D