Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Vierityspalkki ja Picturebox VB

PeeCee [22.01.2006 20:57:44]

#

Mitenkä saan laitettua vierityspalkin toimimaan pictureboksissa? eli kuva on isompi korkeus suunnassa kuin pictureboksi, joten alas ja ylöspäin tarvisi kuvaa saada vieritettyä? Mitä pictureboksin arvoa tarvii muuttaa?

nomic [22.01.2006 21:52:51]

#

Yksi vaihtoehto on tietysti tehdä jotain tähän tyyliin:
Lisäile sinne Vscrolli ja sovella seuraavaa koodia:

Private Sub Form_Load()
    VScroll1.Max = Picture1.ScaleHeight
End Sub

Private Sub VScroll1_Scroll()
    Picture1.Top = 0 - VScroll1.Value
End Sub

setä [23.01.2006 11:30:27]

#

Hieman täsmennettynä. Picturboxin oltava korkeudeltaan sama kuin kuva eli kuvan tulee mahtua kokonaisuudessaan pictureboxiin. osa pictureboxista jää formin ulkopuolelle näkymättömiin. Nyt voit scrollata pictureboxia nomicin koodin mukaan paitsi:

Private Sub Form_Load()
    VScroll1.Max = Picture1.Height-Me.ScaleHeight
End Sub

Private Sub VScroll1_Scroll()
    Picture1.Top = 0 - VScroll1.Value
End Sub

Kuvaa voi siirtää myös suoraan hiirellä ilman ScrollBaria säätämällä Top-ominaisuutta suoraan hiiren Move-tapahtumalla. Koodi ollut ennenkin täällä, mutten muista missä. Jos et löydä tai keksi voin kirjoittaa uudelleen.

Merri [23.01.2006 13:26:06]

#

Jos tahdot päästä helpommalla, niin sekin onnistuu. Tätä kysyttiin (ja kysytään edelleen) VBForumsilla niin törkeän paljon, että kirjoitin kontrollin joka tekee tämän ja vähän muutakin. Planet Source Code tarjoilee koodin, projektiin mukaanotto onnistuu lisäämällä kaksi tiedostoa mukaan omaan projektiin: PictureView.ctl ja cJpeg.cls. Jälkimmäinen tiedosto mahdollistaa siis JPEG-kuvien tallentamisen. Tiedostojen lisäämisen jälkeen kontrollipalkkiin ilmestyy PictureView, jonka voi lisätä formille.

Kontrolli siis osaa siirtää kuvaa pelkän skrollin lisäksi hiiren näppäimen avulla. Yksinkertaisen piirto-ohjelmankin pitäisi onnistua.

Tumppu [23.01.2006 16:21:33]

#

Picture ei itessään liiku,vaan se piirtä sisällä olevaa kuvaa vain erikohtaan..

Piirrä formiin Picture1, Image1 ja VScroll1
Aseta Image1:n haluamasi kuva.

Private Sub Form_Load()
VScroll1.Max = Image1.Height - Picture1.Height
End Sub

Private Sub VScroll1_Change()
Picture1.Cls
Picture1.PaintPicture Image1.Picture, 0, -VScroll1.Value
End Sub

-Image1 Visible False
-Picture1 Autoredraw True

setä [23.01.2006 17:48:50]

#

Pictureboxi liikkuu kyllä paljon jouhevammin kuin kuvan piirto aina uudelleen ja uudelleen ja koodikin on huomattavasti lyhyempi.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta