Listviewitem später hinzufügen

  • Hallo ich hab dieses Skript:

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include<listviewconstants.au3>
    #include<guilistview.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 633, 447, 192, 124)
    $Pic1 = GUICtrlCreatePic("C:\Dokumente und Einstellungen\xxxxx\Eigene Dateien\Eigene Bilder\viereck.jpg", 32, 0, 340, 300, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    $ListView1 = GUICtrlCreateListView("Fläche|Punkt 1|Punkt 2|Punkt 3|Punkt 4|Flächeninhalt", 8, 312, 609, 121)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 4, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 5, 100)
    $Button1 = GUICtrlCreateButton("Neues Viereck", 472, 8, 153, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    #EndRegion ### END Koda GUI section ###
    global $blub=0
    global $viereck=false
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $Button1
    $input=Inputbox("Wie soll die Fläche heißen", "Titel der Fläche")
    $viereck=true

    case $pic1
    If $viereck=true then
    $pos=mousegetpos()
    guictrldelete($pic1)
    $Pic2 = GUICtrlCreatePic("D:\DOWNLOADS\Kreuzchen.gif",$pos[0]-200, $pos[1]-160, 17, 17, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    $Pic1 = GUICtrlCreatePic("C:\Dokumente und Einstellungen\xxxxxx\Eigene Dateien\Eigene Bilder\viereck.jpg", 32, 0, 340, 300, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    $blub=$blub+ 1
    If $blub=1 then guictrlcreatelistviewitem($input&"|"&$pos[0]&"/"&$pos[1], $listview1)
    If $blub=2 then ;"""""""""""""""""""""""""""
    If $blub=4 then Msgbox(,0,"Viereck", "")
    endif
    EndSwitch
    WEnd

    [/autoit]


    $pic1 besteht aus einem größeren viereck, während $pic2 ein kleines kreuzchen ist, das Punkt markiert. Nachdem man auf $button1 geklickt hat, hat man die Möglichkeit, diese Punkte auf $pic1 zu markieren.
    Nun zu meinem Problem:
    Beim Listview wird in die Spalte1 der Titel der auszurechnenden Fläche eingetragen. In den darauf folgenden Spalten werden dann die Klickkoordinaten eingetragen. Für die ersten Koordinaten funktionierts.
    Wenn ich die zweiten Koordinaten dann in die Spalte2/Zeile1 schreiben will, schreibt das Programm das Item logischerweise in Zeile 2.
    Mit welchem Befehl/Parametern von guictrlcreatelistviewitem bekomm ich die Koordinaten von P2/P3/P4 in die Tabelle=

    [align=center]Meine Werke mit der Irrlicht Engine
    AutoIt Picture Viewer Dreidimensionaler Bildbetrachter
    Mr Bubble 3D Neue Interpretation des Flashklassikers Bubble trouble

    • Offizieller Beitrag

    Dein Script hat Syntaxerror, sowas sollte man auch mal beachten.
    Warum ist es so schwer die Compilererror zu beachten?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include<listviewconstants.au3>
    #include<guilistview.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 633, 447, 192, 124)
    $Pic1 = GUICtrlCreatePic("C:\Dokumente und Einstellungen\xxxxx\Eigene Dateien\Eigene Bilder\viereck.jpg", 32, 0, 340, 300, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    $ListView1 = GUICtrlCreateListView("Fläche|Punkt 1|Punkt 2|Punkt 3|Punkt 4|Flächeninhalt", 8, 312, 609, 121)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 4, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 5, 100)
    $Button1 = GUICtrlCreateButton("Neues Viereck", 472, 8, 153, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    #EndRegion ### END Koda GUI section ###
    Global $blub = 0
    Global $viereck = False
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $input = InputBox("Wie soll die Fläche heißen", "Titel der Fläche")
    $viereck = True

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

    Case $Pic1
    If $viereck = True Then
    $pos = MouseGetPos()
    GUICtrlDelete($Pic1)
    $Pic2 = GUICtrlCreatePic("D:\DOWNLOADS\Kreuzchen.gif", $pos[0] - 200, $pos[1] - 160, 17, 17, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    $Pic1 = GUICtrlCreatePic("C:\Dokumente und Einstellungen\xxxxxx\Eigene Dateien\Eigene Bilder\viereck.jpg", 32, 0, 340, 300, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    $blub = $blub + 1
    If $blub = 1 Then GUICtrlCreateListViewItem($input & "|" & $pos[0] & "/" & $pos[1], $ListView1)
    If $blub = 2 Then ;"""""""""""""""""""""""""""
    If $blub = 4 Then MsgBox( 0, "Viereck", "")
    EndIf
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Aber zu deiner Suche: Schau dir mal in der Hilfe _GUICtrlListView_AddSubItem an, das sollte deine Frage beantworten.

    PS: Wenn du eine Scriptlösung möchtest, solltest du die Images anhängen :thumbup:

  • Mir ist schon klar, dass da ein Syntaxerror war. wegen ;"""""""""""""""""" eben. an der stelle müsste dann der neue befehl hin.
    naja bei _GUICtrlListView_AddSubItem war ich schon, is mir aber bissel unklar. aber trotzdem danke

    [align=center]Meine Werke mit der Irrlicht Engine
    AutoIt Picture Viewer Dreidimensionaler Bildbetrachter
    Mr Bubble 3D Neue Interpretation des Flashklassikers Bubble trouble

    • Offizieller Beitrag

    Dann frag doch einfach weiter. Was ist unklar?

    PS: Deine MsgBox hatte auch 1 Komma zu viel, das zum Thema Syntaxerror ;)

  • Mir fehlt ein bisschen der Ansatz^^ Sollte es in etwa so aussehen?

    [autoit]

    If $blub=1 then guictrlcreatelistviewitem($input&"|"&$pos[0]&"/"&$pos[1], $listview1)
    If $blub=2 then _guictrllistview_addsubitem($listview1, 1, $pos[0]&"/"&$pos[1], 3)

    [/autoit]


    If $antwort= ja then
    msgbox(16, "Fehler", "klappt net")
    else
    verbessernpls()
    endif

    [align=center]Meine Werke mit der Irrlicht Engine
    AutoIt Picture Viewer Dreidimensionaler Bildbetrachter
    Mr Bubble 3D Neue Interpretation des Flashklassikers Bubble trouble

    • Offizieller Beitrag

    Häng mal die Bilder an, hab keine Lust mir aus dem Gedächtnis was zu zaubern.

  • Um ein ListViewItem nachträglich zu ändern/ergänzen kannst du

    [autoit]

    GuiCtrlSetData

    [/autoit]

    verwenden:

    Zitat von Hilfe

    Für ListView, ListViewItem Controls:
    Um eine bestimmte Spalte zu verändern, wird für die anderen Spalten einfach "nichts" angegeben, z.B. verändert "||update" nur die dritte Spalte.

    mfg autoBert