Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Apua ja vinkkejä kuvaselaimeen

jideko [11.01.2006 17:23:01]

#

Heippa.
Pyytäisin vähän neuvoa ensimmäiseen VB projektiini.
tässä linkki http://lauri.sirkusfiasko.com/ohjelmointi/kuvaselain.rar

Yritän siis tehdä slideshow ohjelmaa, ja nyt on tullut muutama kysymys eteeni.
-Miten saan pictureboxin aukeamaan kokoruuduksi? Siis aivan kuin windowsin oma diashow tekee.
-Ja miten sitten saan näppäimistöllä ohjattua ohjelmaa?
-Saanko jotenkin kansiolistan käyttämään isompia kuvakkeita? Ohjelma tulee siis paapalle ja kaikkien näppäinten täytyy olla ISOJA.
-Ja vielä tuosta kansiolistauksesta. Kun valitsee jonkun kansion siis en tuplaklikkaa vain pelkästään klikkaan kerran että kansio muuttuu siniseksi, niin miten saan siitä kansiosta ja sen alikansioista haettua kaikki kuvat? (vanhukset ei tykkää tuplaklikkailuista)
-nyt ohjelma näyttää mikä kuva slideshowssa on menossa. Mutta kun käyttää seuraava ja edellinen nappeja niin kuvan numero ei toimikkaan. Mikä mahtaa olla vikana?

-Ja vielä sitten pyytäisin ihan yleisiä neuvoja koskien ohjelmaa ja mun koodausta.
Alotin projektin ensimmäisenä päivänä kun VB:n opiskelun niin koodi taitaa olla aika surkeeta ja sekavaa.
Olisi mukava jos joku antaisi vähän vinkkejä ja neuvoja, että jatkossa kehittyisin oikeaan suuntaan.

Blaze [11.01.2006 17:49:43]

#

jideko kirjoitti:

-Miten saan pictureboxin aukeamaan kokoruuduksi? Siis aivan kuin windowsin oma diashow tekee.

Laita se formille, suurenna formi koko näytön kokoseks (näytön dimensiot saat Screen-oliolta) ja pictureboxi formin kokoseks.

jideko kirjoitti:

-Ja miten sitten saan näppäimistöllä ohjattua ohjelmaa?

Laita formin KeyPreview trueksi.

Antti Laaksonen [11.01.2006 18:10:35]

#

Tässä vastauksia joihinkin kysymyksiisi:

jideko kirjoitti:

Miten saan pictureboxin aukeamaan kokoruuduksi?

Muuta formin BorderStyle arvoon 0 ja WindowState arvoon 2. Silloin ikkuna täyttää koko ruudun. Tällä koodilla saat PictureBoxin koko ikkunan kokoiseksi:

Picture1.Move 0, 0, Width, Height

Ohjelma keskeytyy VB:ssä painamalla Control+Break, jos et ole muistanut lisätä siihen lopetusmahdollisuutta.

jideko kirjoitti:

Ja miten sitten saan näppäimistöllä ohjattua ohjelmaa?

Muuta ensin formin ominaisuus KeyPreview arvoon True. Tämän jälkeen kaikki näppäilyt ohjautuvat Form_KeyDown-aliohjelmaan. Esim. tällä koodilla ohjelma sammuu, kun käyttäjä painaa Esc-nappia.

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyEscape Then
        End
    End If
End Sub

Täydellinen luettelo näppäinkoodeista on osoitteessa:
https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=napk

jideko kirjoitti:

Saanko jotenkin kansiolistan käyttämään isompia kuvakkeita?

Kyllä, vaihtamalla fonttia suuremmaksi.

jideko kirjoitti:

- -, niin miten saan siitä kansiosta ja sen alikansioista haettua kaikki kuvat?

Tiedostojen hakeminen alihakemistoista tapahtuu tähän tyyliin:
https://www.ohjelmointiputka.net/koodivinkit/23528-vb6-alihakemistojen-etsiminen

jideko kirjoitti:

Mutta kun käyttää seuraava ja edellinen nappeja niin kuvan numero ei toimikkaan. Mikä mahtaa olla vikana?

Tätä on mahdotonta tietää näkemättä ohjelman koodia.

jideko [12.01.2006 16:38:20]

#

Jooh, nyttenhän tuo jo vaikuttaa melkein ohjelmalta.

Yritän vaihtaa tuota borderstyleä commandbuttonia painamalla 0:ksi, mutta se ei toimi. Eli nytten yläreunaan jää tuo palkki ja menut. Mikä auttaisi?

Ja nyt kun ohjelmaa pystyy komentelemaan näppäimillä, niin haluaisin selata kuvia nuolilla mutta kun oikea ja vasen nuoli liikuttaa myös tuota mun scrollbaria. Miten saan että näppäimet ei vaikuta tuohon scrollbariin?

Ja en ole vieläkään keksinyt ratkaisua tuohon edellinen ja seuraava nappien ongelmaan. nehän siis laittavat laskurin sekaisin joka siis näyttää monesko kuva kansiossa menossa.

Private Sub cmdEdellinen_Click()
    If (x - 1) < File1.ListCount And (x - 1) >= 0 Then
    Kuva (Dir1.Path & "\" & File1.List(x - 1)), File1.List(x - 1)
    x = x - 1
    Else
    MsgBox "kuvat loppuivat"
    End If
End Sub

Private Sub cmdSeuraava_Click()
    If (x + 1) < File1.ListCount And (x + 1) >= 0 Then
        Kuva (Dir1.Path & "\" & File1.List(x + 1)), File1.List(x + 1)
        x = x + 1
    Else
        MsgBox "kuvat loppuivat"
    End If
End Sub

x+1 on siis tuon meneillä olevan kuvan nro. timeri lisää siihen joka kerralla 1.

päivitin tuon linkin. Siinä on mukana exe ja kaikki koodit jos joku haluaa tutustua.

Vastaus

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

Tietoa sivustosta