Eli pitäisi tehdä ohjelma jossa voidaan valita tietty aihe ja valinnan jälkeen nähdään kyseisen aiheen selitys.
Ohjelma toimii niin että kun comboboksista valitaan jokin aihe, viereiseen tekstikenttään ilmestyy kyseisen aiheen selitys.
Oliskos neuvoja kyseisen jutun toteutukseen??
Ohjelma toimii niin että kun comboboksista valitaan jokin aihe, viereiseen tekstikenttään ilmestyy kyseisen aiheen selitys.
Oliskos neuvoja kyseisen jutun toteutukseen??
Vastaukset 5
Vanhimmat
Laita projektiin Combo1-boksi ja Text1-tekstilaatikko.
Kirjoita koodit:
Private Sub Form_Load()
For s = 1 To 10
Combo1.AddItem "Teksti" & s
Next s
End Sub
Private Sub Combo1_Click()
Text1.Text = Combo1.Text
End Sub
ja käynnistä, kun klikkailset Combo-boksista eri valintoja, ne tulevat viereiseen Text1-ikkunaan.
Tarkoititko tätä?
Se jäi vielä epäselväksi, että mihin kohtaan lisätään ne tekstit koodissa, jotka sitten näkyy kun on valittu combo-boxista se haluttu juttu ja se teksti tulee siihen list boxiin näkyviin?
Eli pitäisi saada esim combo-boxiin kymmenen eri nimeä, ja kun nimi valitaan niin list-box näyttäisi tämän henkilön osoitteen tai muun vastaavan tiedon??!!! Mihin nämä tekstit kirjoitetaan ja miten?
Tämä on yksi malli, ei lie ainoa ja ei ehkä paraskaan. Tietojen tallennuksenkin tietysti voisi ohjelmaan tehdä. Mutta jos tehtäisiin vaikka ne nimi, osoitetiedot jollakin editorilla, vaikkapa Notepadilla. Riville tulee nimi ja osoite pilkulla erotettuna. Ei saa olla ylimääräisiä pilkkuja:
Juuso, Kotikatu 1
Pekka, Kotikuja 5
Tässä esimerkissä tiedot on tallennettu tiedostoon "osoitteet.dat".
Polkukin on hyvä olla tuossa,
esim. "C:\osoitteet.dat"
Tiedosto luetaan ohjelman sisään käynnistettäessä ohjelma, eli Form_Load:ssa.
Tee teksti-objekti nimellä "osoitetxt",
ja Combo1-objekti
Alusta kuitenkin muuttujat ekaksi:
Dim nimi(100), osoite(100) As String
Dim s, kpl As Integer
-------------------------------------------
Private Sub Form_Load()
s = 1
Open "C:\osoitteet.dat" For Input As #1
Do While Not EOF(1)
Input #1, nimi(s), osoite(s)
Combo1.AddItem nimi(s)
s = s 1
kpl = kpl 1
Loop
Close #1
End Sub
------------------------------------------------
Private Sub Combo1_Click()
For s = 1 To kpl
If nimi(s) = Combo1.Text Then osoitetxt.Text = osoite(s)
Next s
End Sub
--------------------------------------------------
Eli periaate on se, että nimet ja osoitteet ladataan indeksoituihin muuttujiin: nimi() ja osoite(). Varattu 100 arvoa.
nimen nimi(5) osoite on osoite(5).
Ja kun Combo1 valinnasta klikataa jokin nimi, käydään vain silmukassa For..s..Next läpi kaikki nimet nimi(s), eli indeksinä on tuo s arvo ja kun muuttujista löytyy sama nimi mikä valittiin Combo1 valinnasta, osoite(s) arvo kirjoitetaan osoitetxt.Text sisällöksi. Muuttuja kpl on tiedostossa olleiden tietorivien lukumäärä, eli myös nimi/osoitetietojen määrä.
Täytyy kokeilla, kunhan aika antaa periksi! Kiitos jo etukäteen, täytyy palata asiaan jos ilmenee vielä jotain kysyttävää!