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 if
itellä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 Sub
Varmasti 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 Sub
En 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.