ListViewItems per GUICtrlSetData?

  • Hallo!
    Hab n Problem.
    Ich möchte das im GUI eine leere ListView ist. Das kriege ich ja hin ^^
    Aber ich möchte das bei Klick auf einen Button ein zweites GUI kommt. Kriege ich auch hin.
    Dann sind in der zweiten GUI drei Inputs wo man im ersten die Best.Nr eingeben muss,
    dann im zweiten Input den Namen und im dritten den URL.
    Wenn man auf OK im zweiten GUI klickt, schließt sich das zweite GUI, und in der ListView erscheint ein Item,
    wo unter "Best.Nr" die eingegebene Best.Nr steht. Das gleiche bei den zwei anderen. Das kriege ich nicht hin :(
    Und wenn man auf das Item draufklickt, öffnet sich Internet Explorer mit dem eingegebenen URL.
    Das ganze wird nämlich ein CONRAD BAUTEILSAVER!!!
    Der bisherige Skript:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <StaticConstants.au3>
    #include <EditConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Conrad Bauteilsaver ", 438, 195, 192, 124)
    $ListView1 = GUICtrlCreateListView("Best.Nr|Bauteilname|URL", 8, 8, 426, 158)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 60)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 120)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 240)
    $Button1 = GUICtrlCreateButton("Neues Bauteil", 352, 168, 83, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Beenden", 272, 168, 75, 25, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("Info...", 192, 168, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    ;===================================================
    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Neues Bauteil", 295, 116, 192, 124)
    $Label1 = GUICtrlCreateLabel("Best.Nr:", 8, 16, 42, 17)
    $Input1 = GUICtrlCreateInput("", 56, 16, 233, 21)
    $Label2 = GUICtrlCreateLabel("Name:", 8, 40, 35, 17)
    $Input2 = GUICtrlCreateInput("", 56, 40, 233, 21)
    $Label3 = GUICtrlCreateLabel("URL:", 8, 64, 29, 17)
    $Input3 = GUICtrlCreateInput("", 56, 64, 233, 21)
    $Button4 = GUICtrlCreateButton("OK", 216, 88, 75, 25, $WS_GROUP)
    GUISetState(@SW_HIDE)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    GUISetState(@SW_SHOW, $Form2)
    Case $Button2
    Exit
    Case $Button3
    MsgBox(64,"Info!","Created by button421")
    Case $Button4
    ;Hier soll das Item in die ListView "gebeamt" werden.
    GUISetState(@SW_HIDE, $Form2)
    EndSwitch
    WEnd

    [/autoit]

    MfG button421

    Meine fertigen Projekte:
    VirtualCash
    Monopoly Digital

    Daran arbeite ich gerade:
    Einem Skript, womit man ohne Programmierkentisse eigene Programme machen kann (habe ich selber früher gesucht :D ) Stand: ||||||||||||||||||||||||| 6%

    Einmal editiert, zuletzt von button421 (7. Mai 2010 um 17:31)

  • Mach doch so:

    [autoit]

    GUICtrlCreateListViewItem(GUICtrlRead($Input1) & "|" & GUICtrlRead($Input2) & "|" & GUICtrlRead($Input3), $ListView1)

    [/autoit]
  • Omg, OK das hätte ich schonmal. Danke
    Aber das mit dem doppelklick und dann Internet Explorer öffnen mit dem angegebenen URL?

    Meine fertigen Projekte:
    VirtualCash
    Monopoly Digital

    Daran arbeite ich gerade:
    Einem Skript, womit man ohne Programmierkentisse eigene Programme machen kann (habe ich selber früher gesucht :D ) Stand: ||||||||||||||||||||||||| 6%

  • ungetestet aber sollte klappen:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <StaticConstants.au3>
    #include <EditConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Conrad Bauteilsaver ", 438, 195, 192, 124)
    $ListView1 = GUICtrlCreateListView("Best.Nr|Bauteilname|URL", 8, 8, 426, 158)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 60)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 120)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 240)
    $Button1 = GUICtrlCreateButton("Neues Bauteil", 352, 168, 83, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Beenden", 272, 168, 75, 25, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("Info...", 192, 168, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    ;===================================================
    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Neues Bauteil", 295, 116, 192, 124)
    $Label1 = GUICtrlCreateLabel("Best.Nr:", 8, 16, 42, 17)
    $Input1 = GUICtrlCreateInput("", 56, 16, 233, 21)
    $Label2 = GUICtrlCreateLabel("Name:", 8, 40, 35, 17)
    $Input2 = GUICtrlCreateInput("", 56, 40, 233, 21)
    $Label3 = GUICtrlCreateLabel("URL:", 8, 64, 29, 17)
    $Input3 = GUICtrlCreateInput("", 56, 64, 233, 21)
    $Button4 = GUICtrlCreateButton("OK", 216, 88, 75, 25, $WS_GROUP)
    GUISetState(@SW_HIDE)
    #EndRegion ### END Koda GUI section ###

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

    Dim $Listviewarray[1] = [0]
    Local $count = 1

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

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[1]
    Case $Form1
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    GUISetState(@SW_SHOW, $Form2)
    Case $Button2
    Exit
    Case $Button3
    MsgBox(64,"Info!","Created by button421")
    Case $Listviewarray[0] To $Listviewarray[$count-1]
    $split = StringSplit(GUICtrlRead($nMsg[0]), "|")
    If Ubound($split) >= 3 Then
    ShellExecute($split[3])
    EndIf
    EndSwitch
    Case $Form2
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE, $Form2)
    Case $Button4
    $count += 1
    ReDim $Listviewarray[$count]
    $Listviewarray[0] = Ubound($Listviewarray) - 1
    $Listviewarray[$count-1] = GUICtrlCreateListViewItem(GUICtrlRead($Input1) & "|" & GUICtrlRead($Input2) & "|" & GUICtrlRead($Input3), $ListView1)
    ;Hier soll das Item in die ListView "gebeamt" werden.
    GUISetState(@SW_HIDE, $Form2)
    EndSwitch
    EndSwitch
    WEnd

    [/autoit]

    PS: im OnEvent modus finde ich sowas viel leichter

  • Ich habe ja kein Problem mit dir, aber mit der Hilfe hättest du diese Frage auch in 2 Minuten gelöst ...

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Achso nochwas:
    Kann AutoIT auch das ListItem speichern, dass beim nächsten Start das ListViewItem noch steht?

    Meine fertigen Projekte:
    VirtualCash
    Monopoly Digital

    Daran arbeite ich gerade:
    Einem Skript, womit man ohne Programmierkentisse eigene Programme machen kann (habe ich selber früher gesucht :D ) Stand: ||||||||||||||||||||||||| 6%

  • -.-

    Mach doch einfahc FileOpenDialog und FileSaveDialog und mache ne ini write -.-

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Ja und soll die mit IniWrite geschrieben werden?
    Wenn ja, geb mir bitte mal den Skript.

    @all: Danke!!! Danke!!!

    Meine fertigen Projekte:
    VirtualCash
    Monopoly Digital

    Daran arbeite ich gerade:
    Einem Skript, womit man ohne Programmierkentisse eigene Programme machen kann (habe ich selber früher gesucht :D ) Stand: ||||||||||||||||||||||||| 6%

  • Also ich mach da ja ne eigene methode, aber DAS Script gebe ich dir nicht !!!


    Mensch jüngelchen es gibt die HILFE und das Forum !!!

    Du solltest mal selber was machen, wir sind nicht deine "Coder" ...

    Du hast wegen dieser ListView oder ListBox schon bestimmt 3 Threads á min 10 antworten geöffnet ...


    IniRead()
    IniWrite()


    EDIT//


    Das BSP habe ich weitgehend dazu in deinem 1rsten thread gepostet !

    Das brauchste, oder halt auch noch mehr, guck in die hilfe unter Ini

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • hmmm. Man könnte doch auch dem erstellten ListVewItem eine Variable zuteilen. z.B: $Bauteil1.

    [autoit]


    IniWrite(@ScriptDir&"\Bauteile.ini","Bauteile","Bauteil1",$Bauteil1)

    [/autoit]

    Meine fertigen Projekte:
    VirtualCash
    Monopoly Digital

    Daran arbeite ich gerade:
    Einem Skript, womit man ohne Programmierkentisse eigene Programme machen kann (habe ich selber früher gesucht :D ) Stand: ||||||||||||||||||||||||| 6%

  • nee natürlich alles in eine .ini Datei, und in der INI sollen ja Name,Best.NR und URL stehen.
    Sonst kann das Programm ja nur die Best.Nr lesen.

    Meine fertigen Projekte:
    VirtualCash
    Monopoly Digital

    Daran arbeite ich gerade:
    Einem Skript, womit man ohne Programmierkentisse eigene Programme machen kann (habe ich selber früher gesucht :D ) Stand: ||||||||||||||||||||||||| 6%