Editfeld aktualisieren

  • ja ich schon wieder, ich bekomme es einfach nicht hin das sich das Editfeld aktualisiert.

    Spoiler anzeigen

    #include <GUIConstantsEx.au3>
    #include <Array.au3>
    $ini = @ScriptDir & "\Geburtstage.ini"
    $datum = @MDAY & @MON
    $iniread = IniRead("Geburtstage.ini", "Datum", $datum, "")
    GUICreate("TestWindow", 640, 300, -1, -1)
    $fileopen = FileOpen($ini, 0)
    $fileread = FileRead($fileopen)
    $input = GUICtrlCreateInput("", 330, 10, 150, 20)
    $nam = GUICtrlCreateLabel("Name Bitte eingeben", 490, 13, 150, 20)
    $save = GUICtrlCreateButton("Speichern", 560, 160, 60, 20)
    $edit = GUICtrlCreateEdit($fileread, 10, 10, 300, 280)
    $Date = GUICtrlCreateMonthCal("", 330, 70, 200, 200)
    GUISetState(@SW_SHOW)
    FileClose($ini)

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $save
    $test = StringSplit(GUICtrlRead(-1, $Date), "/")
    $dat = ($test[3] & $test[2])
    IniWrite($ini, "Datum", $dat, GUICtrlRead($input, $nam))
    Sleep(500)
    AdlibEnable("refresh")
    EndSwitch
    WEnd

    Func refresh()
    GUICtrlSetData($edit,$edit)
    AdlibDisable()
    EndFunc


    habe schon alles versucht, weiss aber nicht mehr weiter. :wacko:

    Einmal editiert, zuletzt von XP-User (17. November 2009 um 08:29)

    • Offizieller Beitrag

    Vielleicht erklärst du erst mal, was du tun möchtest.
    Der jetzige Code ist so voller Fehler, dass man nicht erkennen kann, was du eigentlich tun möchtest.
    Sieh selber:
    $test = StringSplit(GUICtrlRead(-1, $Date), "/")
    Die Control-ID -1 bezieht sich immer auf das zuletzt erstellte Control. Also die ID-Variable nutzen

    GUICtrlSetData($edit,$edit)
    ID und Variable für Inhalt mit demselben Namen!

    Dann liest du eine INI mit FileRead ein !! Wozu gibt es INIRead?

  • Hallo, habe mal einiges gekürzt/geändert/vereinfacht und auch kommentiert....

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <Array.au3>
    $ini = @ScriptDir & "\Geburtstage.ini"
    $datum = @MDAY & @MON
    $data = IniReadSection($ini, "Datum") ;alle geburtstage in ein array schreiben

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

    Global $edit_inhalt = "" ;inhalt der inidatei in einen string bringen

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

    If IsArray($data) Then ;wenn es eine inidatei gibt, dann ....
    For $i = 1 To $data[0][0] ;alle daten auslesen
    $edit_inhalt &= $data[$i][0] & " " & $data[$i][1] & @CRLF ;Datum und Name in string schreiben
    Next
    EndIf

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

    GUICreate("TestWindow", 640, 300, -1, -1)
    $input = GUICtrlCreateInput("", 330, 10, 150, 20)
    $nam = GUICtrlCreateLabel("Name Bitte eingeben", 490, 13, 150, 20)
    $save = GUICtrlCreateButton("Speichern", 560, 160, 60, 20)
    $edit = GUICtrlCreateEdit($edit_inhalt, 10, 10, 300, 280)
    $Date = GUICtrlCreateMonthCal("", 330, 70, 200, 200)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $save
    _saveandrefresh() ;daten in ini speichern und in der editbox anzeigen
    EndSwitch
    WEnd

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

    Func _saveandrefresh()
    $test = StringSplit(GUICtrlRead(-1, $Date), "/")
    $dat = ($test[3] & "." & $test[2]) ;Tag.Monat
    IniWrite($ini, "Datum", $dat, GUICtrlRead($input, $nam)) ;ini schreiben
    $edit_inhalt &= $dat & " " & GUICtrlRead($input, $nam) & @CRLF ;inhalt auffüllen
    GUICtrlSetData($input, "") ;inputfeld löschen
    GUICtrlSetData($edit, $edit_inhalt) ;editbox füllen
    EndFunc ;==>_saveandrefresh

    [/autoit]

    Viel Spass beim Sortieren nach Datum und mit einer Anzeige, wer als nächstes Geburtstag hat ^^

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    Einmal editiert, zuletzt von Andy (17. November 2009 um 03:24)