Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: ListBox-ongelma (Visual Basic 6)

Tiri [20.03.2008 22:49:52]

#

Eli ongelma on tämä:

Mulla on List1.AddItem käskyllä laitettu muutamia kohteita listboxiin.

Tarkotus olis, että kun laske-nimistä painiketta painaa, niin label1.caption kenttään lisättäisiin aina valittuna olevan listboxin kohteen hinta miksikä se nyt sitten onkaan määritetty. Ja siis se aina plussaisi(+) sen hinnan sen vanhan hinnan päälle.

Muuten tää toimii ihan ok, mutta jos painan vaikka kaikkia listboxin kohteita, niin laske painike lisää lopputulokseen kaikki klikkaukset mitä oon listboxissa klikannut.

Miten saan sen toimimaan niin, että ainostaan valittuna oleva kenttä ListBoxista lasketaan hintaan?

Kiitos avusta jo etukäteen!

PS. Yritin hakea vastausta haulla, mutta en löytänyt...

Antti Laaksonen [20.03.2008 23:18:32]

#

Tässä on toimiva esimerkki:

Private Sub Form_Load()
    Label1.Caption = 0
    List1.AddItem 1
    List1.AddItem 2
    List1.AddItem 3
End Sub

Private Sub Command1_Click()
    Label1.Caption = Val(Label1.Caption) + List1.List(List1.ListIndex)
End Sub

Olikohan sinulla hinnan lisäys vahingossa listan tapahtumassa?

Tiri [21.03.2008 00:05:11]

#

Olin kokeillut itse vähän jokatavalla mitä vain keksin. Kyllä jossain vaiheessa se hinta oli listankin tapahtumissa :).

Mutta nyt se kyllä toimii niinkuin ajattelin, mutta haluaisin niin, että noitten numeroitten sijasta siinä olis tekstiä (Tuotteen nimi esim.). Ei tuntunut toimivan niin...?

setä [21.03.2008 00:28:32]

#

Jos ListBoxissa on tuotteen nimi niin missä sen hinta on?

Antti Laaksonen [21.03.2008 00:39:01]

#

Tuotteiden nimet ja hinnat voi vaikkapa tallentaa taulukkoihin, ja sitten kun listalta valitaan jokin tuote, taulukosta voi katsoa, paljonko se maksaa.

' tuotteiden nimet
Dim nimet(100) As String
' tuotteiden hinta
Dim hinnat(100) As Currency
' tuotteiden määrä
Dim maara As Integer
' valittu hinta
Dim hinta As Currency

' lisää uuden tuotteen taulukkoon ja listaan
Sub UusiTuote(tnimi As String, thinta As Currency)
    maara = maara + 1
    nimet(maara) = tnimi
    hinnat(maara) = thinta
    List1.AddItem tnimi
End Sub

' hakee tuotteen hinnan taulukosta
Function HaeHinta(tnimi As String) As Currency
    Dim i As Integer
    For i = 1 To maara
        If nimet(i) = tnimi Then
            HaeHinta = hinnat(i)
            Exit Function
        End If
    Next
End Function

Private Sub Form_Load()
    hinta = 0
    Label1.Caption = 0
    UusiTuote "alttoviulu", 120
    UusiTuote "banjo", 50
    UusiTuote "cembalo", 250
End Sub

Private Sub Command1_Click()
    hinta = hinta + HaeHinta(List1.List(List1.ListIndex))
    Label1.Caption = hinta
End Sub

Tässä tuotteita voi olla enintään 100, mutta määrää voi kasvattaa muuttamalla taulukon ylärajaa.

Tiri [21.03.2008 23:17:53]

#

Ok, kyllä se tästä lähtee, kiitoksia kovasti avusta!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta