Pitääs saada tietyn auton kuva näkyviin pictureboxissa ku klikkaa tietyn auton merkkiä listboxissa.
En osaa sen ku if-lauseella muttaku jos autoja on palio nii
tuloo liikaa "koodia" eikä jaksa kirioottaa.
Mikä olis paree???????
Mulla oli tälläänen listboxis:
if list1.text="auton merkki" then
picture1.picture=loadpicture ("c:\jotaki\jotaki.jpg")
end ifitelläni kävi mielessä tämmöinen tapa:
luo lomakkeelle seuraavat lelut:
List1
Picture1
File1
Dim määrä As Integer
Dim a As String
Private Sub Form_Load()
File1.Visible = False 'piilotetaan kun käyttäjä halusi leikkiä vain list1:llä
määrä = File1.ListCount - 1
For i = 0 To määrä 'käydään joka tiedosto läpi
a = File1.List(i) 'a:n arvoksi tiedoston nimi
List1.AddItem a 'vipataan se listiin
Next i
End Sub
Private Sub List1_Click()
Picture1.Picture = LoadPicture(App.Path & "\" & List1.Text) 'kuva haetaan ohjelman omasta kansiosta
End SubVarmasti saa tehtyä vielä helpommin, mutta tämä tuli nyt ekana mieleen. :)
En osaa nyt kirjoittaa parempaa koodia, mutta tässä tulis tämmöinen helppi jolla ainakin itse tein yhden tuon tyylisen jutun.
Visual Basic -ohjelman lauseiden suoritusta voidaan ohjata myös Select Case -ehtorakenteilla.
Select Case -rakenne muistuttaa If..Then...ElseIf-rakennetta, mutta on tehokkaampi, kun haarautuminen riippuu vain yhdestä muuttujasta.
Select Case -rakenne näyttää tällaiselta:
Select Case muuttuja Case arvo1 lauseet, jotka suoritetaan, jos muuttuja on yhtä kuin arvo1 Case arvo2 lauseet, jotka suoritetaan, jos muuttuja on yhtä kuin arvo2 Case arvo3 lauseet, jotka suoritetaan, jos muuttuja on yhtä kuin arvo3 Case else lauseet, jotka suoritetaan, jos mikään ehdoista ei ole tosi End Select
Select Case Auto Case Is Mersu Label1.Text = "Autojen auto (Ainakin rikkaille)" Case Mazda Label1.Text = "Parempaa autoa saa hakea" End Select
En ole varma tuleeko tuohon ensimmäiseen Is sanaa tuossa lauseessa, mutta jos teet tämmöisen niin silloin ainakin tulee
Select Case Ika Case Is < 13 Label1.Text = "Nuoruuden kulta-aikaa!" Case 13 To 19 Label1.Text = "Nauti teini-iästä!" End Select
Auton valinta kannattaa toteuttaa suunnilleen näin:
' 1. indeksi: auton järjestysnumero
' 2. indeksi: auton nimi / tiedostonimi
Dim autot(1 To 3, 1 To 2) As String
Dim automaara As Integer
' lataa autot taulukkoon
Sub LataaAutot()
' paras tapa olisi ladata nämä tiedostosta
autot(1, 1) = "Audi"
autot(1, 2) = "audi.bmp"
autot(2, 1) = "BMW"
autot(2, 2) = "bmw.bmp"
autot(3, 1) = "Chevrolet"
autot(3, 2) = "chevrolet.bmp"
automaara = 3
End Sub
' lisää autot listalle
Sub ListaaAutot()
Dim i As Integer
For i = 1 To automaara
List1.AddItem autot(i, 1)
Next
End Sub
Private Sub Form_Load()
LataaAutot
ListaaAutot
End Sub
' näyttää auton kuvan listasta painettaessa
Private Sub List1_Click()
' App.Path on ohjelman oma hakemisto
' List1.ListIndex on listalta valittu kohta (ylin kohta on 0)
Picture1.Picture = LoadPicture(App.Path + "\" + autot(List1.ListIndex + 1, 2))
End SubEn tajunnu kuinka sen saa lataamaan tekstitiedoston tietystä sijainnista mutta aiva sama pitää yrittää soveltaa...
Aihe on jo aika vanha, joten et voi enää vastata siihen.