Miten voisin ladata vaikka jaska.png:n ohjelmaani (ei pictureboxiin) niin, että sitä pystyisi liikutella jne.?
Käyttäisin sitä tapaa tason[/kentän/kartan] lukuun ja piirtoon.
Saako sitä mitenkään tähän muotoon:
private sub PiirraKartta(Byval KarttaNum as integer) 'Kartan piirto toiminto End Sub
ja käyttö: esim. form_loadissa PiirraKartta(1)
Eiköhän se näkymätön PictureBox (tai sen kuvankäsittelystä vastaava osa) ole paras vaihtoehto. Niitä voi luoda taulukkoon tai dynaamiseen tietorakenteeseen sopivan määrän. Muilta osin tuo kysymys oli vähän epämääräinen. Totta kai voit tehdä funktion, joka saa parametrinä kartan numeron ja piirtää oikean kartan.
en kuitenkaan ole onnistunut siinä, enkä halua kuvalaatikoita!
teet image tyyppisen muuttujan sillä on FromFile() -funktio
sitten piirto komennoilla saaat tehtyä yhden kuvan kaikista
ja laitettua sen esimerkiksi pictureboxiin tai jonnekki muualle...
Jotenkin näin:
Dim a As Image = Image.FromFile("jaska.png") Dim b As Graphics = Graphics.FromImage(a) Dim kaikki As New Bitmap(640, 480) Dim c As Graphics = Graphics.FromImage(kaikki) c.DrawImageUnscaled(kaikki, New Point(x, y))
VB:lle valmista koodia ei löyty, mutta pienellä miettimisellä nuo luokkien käyttö ratkeaa c# koodeista, joita löytyy täältä http://www.publicjoe.f9.co.uk/csharp/tut.html
VB6:ssa on valmis kontrolli, PictureClip, jolla voi helposti käsitellä kuvaa osissa. Osien vain pitää olla tasasuuruiset, jolloin pystyy määrittelemään riveinä ja sarakkeina, miten moneen osaan kuva pilkotaan. Kontrollin nimi on Microsoft PictureClip Control 6.0.
Seuraavan esimerkin formilla on PictureClip-, PictureBox-, ja kaksi Command-kontrollia.
'Koodi Visual Basic 6:lle. Option Explicit Private indexi As Integer 'pidetään kirjaa aktiivisesta kuvasta Private Sub Form_Load() With Me.PictureClip1 .Picture = LoadPicture("F:\Images\Babe01.jpg") 'Huom! Vaihda viittaus kuvaan .Rows = 2 .Cols = 4 Me.Picture1.AutoSize = True Me.Picture1.Picture = .GraphicCell(indexi) 'esitetään ensimmäinen ruutu End With End Sub Private Sub Command1_Click() 'kelataan kuvia eteenpäin With Me.PictureClip1 'koska PictureClip:n kuvat lasketaan nollasta lähtien, viimeinen kuva on (rivit * sarakkeet - 1) indexi = IIf(indexi = .Rows * .Cols - 1, 0, indexi + 1) Me.Picture1.Picture = .GraphicCell(indexi) End With End Sub Private Sub Command2_Click() 'kelataan kuvia taaksepäin With Me.PictureClip1 indexi = IIf(indexi = 0, .Rows * .Cols - 1, indexi - 1) Me.Picture1.Picture = .GraphicCell(indexi) End With End Sub
Vaikka esimerkissäni käytän PictureBox:a, niin tuo on vain esimerkki. Kuvan voi ladata minne haluaa ja tehdä sille mitä haluaa, kun se keran on saatu esiin PictureClip:n avulla.
Edit: Esimerkki (koko kontrolli?) VB6:lle, sillä luetun ymmärtäminen ennen ensimmäistä kahvikupillista takkuaa...
Aihe on jo aika vanha, joten et voi enää vastata siihen.