Liste

  • Hi @all ich habe ein programm gemacht das hiermit:

    [autoit]

    GUICtrlSetData($angepflanztes,GUICTrlRead($listview))

    [/autoit]


    etwas in eine Liste schreibt wie kann ich es machen das es aber mit meinem anderen button das ausgewählte aus der Liste wieder verschwindet

  • Mein ganzer Code:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    Global $geld = 1000

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

    HotKeySet("{ENTER}","_mehrgeld")

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

    GUICreate("SB Magic",1000,600)
    GUISETBkColor(0xCDAD00)

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

    $2 = GUICTrlCreateMenu("Beenden")
    $21 = GUICTrlCreateMenuitem("Beenden",$2)

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

    $1 = GUICTrlCreateMenu("Geld")
    $mehrgeld = GUICTRlCreateMenuitem("Mehr geld",$1)

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

    $feld = GUICTrlCreateLAbel("",10,10,700,520)
    GUICTrlSetBkColor(-1,0x8C4600)

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

    $feldname = GUICtrlCreateLabel("",300,300,200)
    GUICTRlSEtBKColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICTrlSEtFont(-1,12)
    GUICTRlSEtColor(-1,0xFFFFFF)

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

    GUICTrlCreateLabel("Was willst du anpflanzen?",750,10)

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

    $listview = GUICtrlCreateList("",750,40,200,200)
    GUICTRlSetDAta(-1,"Weizen")
    GUICTRlSetData(-1,"Gerste")
    GUICTrlSEtDAta(-1,"Rüben")
    GUICTrlSetDAta(-1,"Salat")
    GUICTrlSEtDAta(-1,"Mais")
    GUICTrlSEtData(-1,"Klee")
    GUICTrlSetData(-1,"Gras")

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

    $anpflanzen = GUICTrlCreateButton("Anpflanzen",750,240,100)

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

    GUICTrlCreateLabel("Du hast folgendes schon angepflanzt",750,280)

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

    $angepflanztes = GUICTrlCreateList("",750,310,200,200)

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

    $erntenbutton = GUICtrlCreateButton("Ernten",750,510,100)

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

    $geldanzeige = GUICTrlCreateBUtton($geld,0,555,60)
    GUICTrlSetBkColor(-1,0xFFFFFF)

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

    GUISETSTate()

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

    While 1
    Switch GUIGETMSG()
    Case -3
    Exit
    Case $21
    Exit
    Case $mehrgeld
    If $geld = 1100 Then
    $geld += 1100
    GUICTrlSetDAta($geldanzeige,$geld)
    ElseIf $geld <= 1100 Then
    $geld +=20
    GUICTRLSETDAta($geldanzeige,$geld)
    EndIf
    Case $anpflanzen
    Sleep(1000)
    MsgBox(48,"Ok","Die Pflanze" & @CRLF & @CRLF & "- " & GUICTRlRead($listview) & @CRLF & @CRLF & "wurde angepflanzt und das Geld wird nun abgebucht")
    Sleep(1000)
    GUICtrlSetData($angepflanztes,GUICTrlRead($listview))
    GUICtrlSetBkColor($feld,0x807500)
    Sleep(1000)
    $geld -=100
    GUICtrlSetData($geldanzeige,$geld)
    Case $erntenbutton
    MsgBox(0,"Ernten","Du willst also folgendes ernten:" & @CRLF & GUICTrlRead($angepflanztes))
    $geld += 120
    GUICTrlSetDAta($geldanzeige,$geld)
    EndSwitch
    WEnd

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

    Func _mehrgeld()
    If $geld = 1100 Then
    $geld +=0
    GUICTrlSetDAta($geldanzeige,$geld)
    ElseIf $geld <= 1100 Then
    $geld +=20
    GUICTRLSETDAta($geldanzeige,$geld)
    EndIf
    EndFunc

    [/autoit]
  • Guck mal in der Hilfe, da stehts drinne ^^
    zur not müsste ich jetz an meinen anderen PC wecheln, da könnt ichs dir genau sagen... ^^

    Ah hier, auszug aus der Hilfe:

    Spoiler anzeigen


    _GUICtrlListBox_DeleteString
    --------------------------------------------------------------------------------

    Löscht einen String


    #Include <GuiListBox.au3>
    _GUICtrlListBox_DeleteString($hWnd, $iIndex)


    Parameter

    $hWnd Handle des Steuerelements
    $iIndex 0-basierender Index des zu löschenden Strings


    Rückgabewert

    Erfolg: Anzahl der restlichen Strings
    Fehler: -1


    Bemerkungen

    Nichts.

  • Ich habe in der hilfe schon gesucht allerdings nur befehle zum löschen für _GUICTrlListBox_Create

  • ??? Ist es jetz eine Liste, oda ein ListView? Müsste man schon wissen ^^

    Also bei ListView:

    Spoiler anzeigen


    _GUICtrlListView_DeleteItem
    --------------------------------------------------------------------------------

    Löscht ein Item eines ListView Steuerelements


    #Include <GuiListView.au3>
    _GUICtrlListView_DeleteItem($hWnd, $iIndex)


    Parameter

    $hWnd ID/Handle des Steuerelements
    $iIndex 0-basierender Index des zu löschenden ListView Items


    Rückgabewert

    Erfolg: True
    Fehler: False


    Bemerkungen

    Falls diese Funktion mit einem Listview, welches durch die Funktion GUICtrlCreateListView erstellt wurde, angewendet wird, muß der Befehl _GUICtrlListView_DeleteItem(GUICtrlGetHandle($ListView), iIndex) heißen, da sonst eine Fehlermeldung erscheint. ($listview ist die Variable wie das Listview heißt)

    Und bei List:

    Spoiler anzeigen


    _GUICtrlListBox_DeleteString
    --------------------------------------------------------------------------------

    Löscht einen String


    #Include <GuiListBox.au3>
    _GUICtrlListBox_DeleteString($hWnd, $iIndex)


    Parameter

    $hWnd Handle des Steuerelements
    $iIndex 0-basierender Index des zu löschenden Strings


    Rückgabewert

    Erfolg: Anzahl der restlichen Strings
    Fehler: -1


    Bemerkungen

    Nichts.

  • Das geht auch mit der AutoIt Listbox. Möglcherweise musst du noch ein GUICtrlGetHandle dazwischenschalten.

  • @Comander21 ja aber ich habe keine Variabelen da die Items in der liste ja verschieden sind

    Edit: Es ist eine Lsite da die Items aufgelistet werden

  • So, sry hat etwas länger gedauert, musste ein paar sachen für die ausbildung unterschreiben...

    Also, hier ein Beispiel aus meinem Web-Helfer:

    [autoit]


    $List1CurSel = _GUICtrlListBox_GetCurSel ($List1)
    _GUICtrlListBox_DeleteString ($List1, $List1CurSel)

    [/autoit]

    $List1 ist die die normale Liste ( GUICtrlCreateList ).
    Also statt $List1, brauchst du $listview.

    Soweit verstanen?
    So, du musst also den eintrag in der liste anklicken, so dass er markiert ist.
    Nun rufst du die mit z.b. einem Button diese 2 Funktionen auf.
    Ändern musst du nur die Variable der liste.

  • Bei mir kommt bei mir immer ein Fehler

    C:\Users\Simon\Autoit\SB Programme\SB Magical\SB Magic.au3(92,60) : ERROR: _GUICtrlListBox_GetCurSel(): undefined function.
    $List1CurSel = _GUICtrlListBox_GetCurSel ($angepflanztes)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\Simon\Autoit\SB Programme\SB Magical\SB Magic.au3(93,71) : ERROR: _GUICtrlListBox_DeleteString(): undefined function.
    _GUICtrlListBox_DeleteString ($angepflanztes, $List1CurSel)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\Simon\Autoit\SB Programme\SB Magical\SB Magic.au3 - 2 error(s), 0 warning(s)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GuiListView.au3>

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

    Global $geld = 1000

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

    HotKeySet("{ENTER}","_mehrgeld")

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

    GUICreate("SB Magic",1200,600)
    GUISETBkColor(0xCDAD00)

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

    $2 = GUICTrlCreateMenu("Beenden")
    $21 = GUICTrlCreateMenuitem("Beenden",$2)

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

    $1 = GUICTrlCreateMenu("Geld")
    $mehrgeld = GUICTRlCreateMenuitem("Mehr geld",$1)

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

    $feld = GUICTrlCreateLAbel("",10,10,500,520)
    GUICTrlSetBkColor(-1,0x8C4600)

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

    $feldname = GUICtrlCreateLabel("",300,300,200)
    GUICTRlSEtBKColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICTrlSEtFont(-1,12)
    GUICTRlSEtColor(-1,0xFFFFFF)

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

    GUICTrlCreateLabel("Was willst du anpflanzen?",530,10)

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

    $listview = GUICtrlCreateList("",530,40,200,200)
    GUICTRlSetDAta(-1,"Weizen")
    GUICTRlSetData(-1,"Gerste")
    GUICTrlSEtDAta(-1,"Rüben")
    GUICTrlSetDAta(-1,"Salat")
    GUICTrlSEtDAta(-1,"Mais")
    GUICTrlSEtData(-1,"Klee")
    GUICTrlSetData(-1,"Gras")

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

    $anpflanzen = GUICTrlCreateButton("Anpflanzen",530,240,100)

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

    GUICTrlCreateLabel("Du hast folgendes schon angepflanzt",530,280)

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

    $angepflanztes = GUICTrlCreateList("",530,310,200,200)

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

    $erntenbutton = GUICtrlCreateButton("Ernten",530,510,100)

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

    GUICTrlCreateLabel("Was willst du kaufen?",770,10)

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

    $kaufliste = GUICTrlCreateList("",770,40,200,200)
    GUICTrlSetData(-1,"Tracktor 1")
    GUICTrlSetData(-1,"Tracktor 2")
    GUICtrlSetData(-1,"Pflug")
    GUICTRlSEtData(-1,"Sähmaschiene")
    GUICTRlSEtData(-1,"Mähdräscher")
    GUICTrlSEtDAta(-1,"Eigenes Haus")
    GUICTrlSEtData(-1,"Kartoffelärnter")
    GUICTrlSetDAta(-1,"Mähwerk")
    GUICTrlSetDAta(-1,"Rübenvollernter")
    GUICtrlSetData(-1,"Halle 1")
    GUICTrlSetData(-1,"Halle 2")

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

    $kaufenbutton = GUICTrlCreateButton("Kaufen",770,240,100)

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

    $geldanzeige = GUICTrlCreateBUtton($geld,0,555,60)
    GUICTrlSetBkColor(-1,0xFFFFFF)

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

    GUISETSTate()

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

    While 1
    Switch GUIGETMSG()
    Case -3
    Exit
    Case $21
    Exit
    Case $mehrgeld
    If $geld = 1100 Then
    $geld += 1100
    GUICTrlSetDAta($geldanzeige,$geld)
    ElseIf $geld <= 1100 Then
    $geld +=20
    GUICTRLSETDAta($geldanzeige,$geld)
    EndIf
    Case $anpflanzen
    Sleep(1000)
    MsgBox(48,"Ok","Die Pflanze" & @CRLF & @CRLF & "- " & GUICTRlRead($listview) & @CRLF & @CRLF & "wurde angepflanzt und das Geld wird nun abgebucht")
    Sleep(1000)
    GUICtrlSetData($angepflanztes,GUICTrlRead($listview))
    GUICtrlSetBkColor($feld,0x807500)
    Sleep(1000)
    $geld -=100
    GUICtrlSetData($geldanzeige,$geld)
    Case $erntenbutton
    MsgBox(0,"Ernten","Du willst also folgendes ernten:" & @CRLF & GUICTrlRead($angepflanztes))
    $List1CurSel = _GUICtrlListBox_GetCurSel ($angepflanztes)
    _GUICtrlListBox_DeleteString ($angepflanztes, $List1CurSel)
    $geld += 120
    GUICTrlSetDAta($geldanzeige,$geld)
    EndSwitch
    WEnd

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

    Func _mehrgeld()
    If $geld = 1100 Then
    $geld +=0
    GUICTrlSetDAta($geldanzeige,$geld)
    ElseIf $geld <= 1100 Then
    $geld +=20
    GUICTRLSETDAta($geldanzeige,$geld)
    EndIf
    EndFunc

    [/autoit]
  • Du verwendest eine List(Box) kein ListView. Die Funktionen sind aus der GUIListBox.au3 ;)

  • Schreib folgendes an den Anfang deines Scripts ( Ganz oben )

    [autoit]

    #Include <GuiListBox.au3>

    [/autoit]

    Immer schön in die Hilfe gucken ;)

    :rolleyes:

    Eine Listbox ist ein GUICtrlCreateList.
    Das is das gleiche, es heist nur etwas anders.
    Die befehle sind aber für GUICtrlCreateList.
    Brauchst du das #include noch zu setzen und dann gehts...

  • Danke gelöste

    ich habe noch eine frage wie kann man es machen wenn nichts in der Box ist dann ist die Hintergrund von $feld braun

  • Qode:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GuiListView.au3>
    #Include <GuiListBox.au3>

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

    Global $geld = 1000

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

    HotKeySet("{ENTER}","_mehrgeld")

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

    GUICreate("SB Magic",990,600)
    GUISETBkColor(0xCDAD00)

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

    $2 = GUICTrlCreateMenu("Beenden")
    $21 = GUICTrlCreateMenuitem("Beenden",$2)

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

    $1 = GUICTrlCreateMenu("Geld")
    $mehrgeld = GUICTRlCreateMenuitem("Mehr geld",$1)

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

    $feld = GUICTrlCreateLAbel("",10,10,500,520)
    GUICTrlSetBkColor(-1,0x8C4600)

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

    $feldname = GUICtrlCreateLabel("",300,300,200)
    GUICTRlSEtBKColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICTrlSEtFont(-1,12)
    GUICTRlSEtColor(-1,0xFFFFFF)

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

    GUICTrlCreateLabel("Was willst du anpflanzen?",530,10)

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

    $listview = GUICtrlCreateList("",530,40,200,200)
    GUICTRlSetDAta(-1,"Weizen")
    GUICTRlSetData(-1,"Gerste")
    GUICTrlSEtDAta(-1,"Rüben")
    GUICTrlSetDAta(-1,"Salat")
    GUICTrlSEtDAta(-1,"Mais")
    GUICTrlSEtData(-1,"Klee")
    GUICTrlSetData(-1,"Gras")

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

    $anpflanzen = GUICTrlCreateButton("Anpflanzen",530,240,100)

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

    GUICTrlCreateLabel("Du hast folgendes schon angepflanzt",530,280)

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

    $angepflanztes = GUICTrlCreateList("",530,310,200,200)

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

    $erntenbutton = GUICtrlCreateButton("Ernten",530,510,100)

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

    GUICTrlCreateLabel("Was willst du kaufen?",770,10)

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

    $kaufliste = GUICTrlCreateList("",770,40,200,200)
    GUICTrlSetData(-1,"Tracktor 1")
    GUICTrlSetData(-1,"Tracktor 2")
    GUICtrlSetData(-1,"Pflug")
    GUICTRlSEtData(-1,"Sähmaschiene")
    GUICTRlSEtData(-1,"Mähdräscher")
    GUICTrlSEtDAta(-1,"Eigenes Haus")
    GUICTrlSEtData(-1,"Kartoffelärnter")
    GUICTrlSetDAta(-1,"Mähwerk")
    GUICTrlSetDAta(-1,"Rübenvollernter")
    GUICtrlSetData(-1,"Halle 1")
    GUICTrlSetData(-1,"Halle 2")

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

    $kaufenbutton = GUICTrlCreateButton("Kaufen",770,240,100)
    GUICTrlCreateLabel("Das hast du bereits gekauft",770,280)
    $gekauftesliste = GUICTrlCreatelist("",770,310,200,200)

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

    GUICTrlCreateButton("Verkaufen",770,510,100)

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

    $geldanzeige = GUICTrlCreateBUtton($geld,0,555,60)
    GUICTrlSetBkColor(-1,0xFFFFFF)

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

    GUISETSTate()

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

    While 1
    Switch GUIGETMSG()
    Case -3
    Exit
    Case $21
    Exit
    Case $mehrgeld
    If $geld = 1100 Then
    $geld += 1100
    GUICTrlSetDAta($geldanzeige,$geld)
    ElseIf $geld <= 1100 Then
    $geld +=20
    GUICTRLSETDAta($geldanzeige,$geld)
    EndIf
    Case $anpflanzen
    Sleep(1000)
    MsgBox(48,"Ok","Die Pflanze" & @CRLF & @CRLF & "- " & GUICTRlRead($listview) & @CRLF & @CRLF & "wurde angepflanzt und das Geld wird nun abgebucht")
    Sleep(1000)
    GUICtrlSetData($angepflanztes,GUICTrlRead($listview))
    GUICtrlSetBkColor($feld,0x807500)
    Sleep(1000)
    $geld -=100
    GUICtrlSetData($geldanzeige,$geld)
    Case $erntenbutton
    $read = GUICTrlRead($angepflanztes)
    If $read = " " Then
    GUICtrlSetBKColor($feld,0x8C4600)
    ElseIf $read = Not " " Then
    MsgBox(0,"Ernten","Du willst also folgendes ernten:" & @CRLF & $read)
    $List1CurSel = _GUICtrlListBox_GetCurSel ($angepflanztes)
    _GUICtrlListBox_DeleteString ($angepflanztes, $List1CurSel)
    $geld += 120
    GUICTrlSetDAta($geldanzeige,$geld)
    EndIf
    Case $kaufenbutton
    $msgBox = MsgBox(4,"Kaufen","Willst du folgendes kaufen:" & @CRLF & @CRLF & "- " & GUICTrlRead($kaufliste))
    If $msgBox = 6 Then
    GUICTrlSetData($gekauftesliste,GUICtrlREad($kaufliste))
    EndIf
    EndSwitch
    WEnd

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

    Func _mehrgeld()
    If $geld = 1100 Then
    $geld +=0
    GUICTrlSetDAta($geldanzeige,$geld)
    ElseIf $geld <= 1100 Then
    $geld +=20
    GUICTRLSETDAta($geldanzeige,$geld)
    EndIf
    EndFunc

    [/autoit]

    Wenn man Erntet und kein Eintrag ist vorhanden wird trotzedem das Geld auf die anzeige gelegt

  • probiers mal mit "GuiCtrlSetColor" Hier mal ein Beispiel an einem Label:

    Spoiler anzeigen
    [autoit]


    $label=guictrlcreatelabel("Hallo",50,100,100,100)
    guictrlsetcolor($label,0xFFD000)

    [/autoit]


    so z.B. Das gäbe jetzt dem Label die Farbe Gold wenn ich mich nicht vertan habe mit der Zahlenkombination :P
    mfg Bio :D

  • Das weis ich doch aber wenn man auf ernten klickt und am Anfang keinen Text auswählt in der Liste darüber dann wird trotzdem etwas nicht vorhandenes geerntet