Hei,
minulla on pieni tietokanta omista CD-levyistä ja ajattelin tehdä siihen eräänlaisen kuvapankin. Eli jokaisesta kannesta kuva ohjelmaan. Kuvien määrä siis vaihtelee, joten sitä ei voi etukäteen määrittää. Tässä kuvassa pitäisi olla lisäksi ainakin yksi toiminnallisuus esimerkiksi kllikkaus -> kuvaa klikkaamalla saan siitä tarkemmat tiedot esille. Eli oisko jollain nyt heittää vinkkiä, että miten tätä kannattaa alkaa viemään eteenpäin? Itse olen ajatellut jotain tämän tyyppistä:
1. Luodaan PictureBox:sta oma luokka
2. Kerätään nämä kuvat sitten johonki taulukkoon?(Array-list?, ei vissiin ole enää käytössä?)
3. Lisätään Clisk-ominaisuus?
Siis tälläisen kuvan sain kun lueskelin yhtä vähän vahhempaa VB-kirjaa. Toteutustapa vähän nyt ontuu, jos ihan jotain yksinkertaistakin esimerkkiä olisi jostain noista antaa, niin pääsisin varmastikin taas eteenpäin.
1.oikein
2.oikein
3.oikein
Tänks. Tässähän on sitten jo hyvä alku kasassa. Jos vielä jotain ihan yksinkertaistettua esimerkkiä (luokka dynaamiseen listaan, eritoten) olisi antaa, niin olisin hyvinkin kiitollinen.
private void Form1_Load(object sender, EventArgs e) { PictureBox MyBox = new PictureBox(); System.Collections.ArrayList MyList = new System.Collections.ArrayList(); MyList.Add((string)@"C:\kuva.jpg"); MyBox.Location = new System.Drawing.Point(0, 0); MyBox.Size = new System.Drawing.Size(400, 400); MyBox.Image = new Bitmap(MyList[0].ToString()); Controls.Add(MyBox); }
Tässä C# esimerkki, ei ole vb.nettiä asennettuna mutta eiköhän tuosta selviä.¨
tuo ArrayList on dynaaminen taulukko. VB puolella kaiketi voisi käyttää myös ihan normi Redim Preserveä kun lisäät taulukkoosi osoitteita, ja säilytät vanhat?
Voit käyttää listana myös jompaakumpaa näistä:
Dim kuvat As New System.Collections.Generic.List(Of String)() Dim kuvat2 As New System.Collections.Specialized.StringCollection()
En nyt osaa äkkiseltään sanoa kumpi tässä olisi parempi tai mitä ero noilla lopulta on. Ainakin tuota List(Of Type) olen käyttänyt monessa paikassa ja se on kätevä.
Edit. Olisiko hyvä idea tehdä oma tietue (Structure tai Class) joka sisältää yhden levyn kaikki tiedot (ainakin kuva/kuvan osoite ja ne tarkemmat tiedot)? Sitten tekisikin listan niistä tietueista?
hyviähän kaikki ikään!
arraylistin etu on siinä että jokainen solu voi olla eri tyyppiä. plus että sitä olen tottunut käyttämään :)
Mylist.Add((int) luku); Mylist.Add((String) teksti); Mylist.Add((Object) olio);
Kiitoskiitos, enköhän minä pääse näillä eväin jo hyvään alkuun.
Aihe on jo aika vanha, joten et voi enää vastata siihen.