Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Ohjelmasta ohjelmaan

Sivun loppuun

kayttaja-3842 [19.03.2006 19:43:18]

#

Minä senkun jatkan tätä kyselyäni, noh kysyisin nytten, että miten olisi kannatavin ja miten sen voisi tehdä. Eli siis sellaseen aliohjelmako se nytten on. Eli kun pääohjelmassa painetaaan tallenna nappia avautuu aliohjelma jossa pystyy tallentaa tiedoston tiettyyn hakemistoon.

Antti Laaksonen [19.03.2006 20:09:22]

#

Ohjelmoinnissa aliohjelma on yleensä koodin osa, jolla on tietty tehtävä ja jota voidaan kutsua muualta koodista. Esim. tässä on aliohjelma Viesti, jota kutsutaan formin latautuessa. Se näyttää tervehdyksen viestilaatikossa.

Sub Viesti()
    MsgBox "Morjens!"
End Sub

Private Sub Form_Load()
    Viesti
End Sub

Nyt et kuitenkaan tarvitse aliohjelmaa vaan uuden formin, josta tulee ikkuna tiedoston tallennukseen. Liitä siis projektiin uusi formi ja tee siitä haluamasilainen tallennusikkuna. Koodissa ikkuna avataan näin:

Form2.Show vbModal

Lisäys vbModal tarkoittaa, että ohjelman muihin ikkunoihin ei pääse, ennen kuin tallennusikkuna on sulkeutunut. Näin on yleensä sellaisissa ikkunoissa, joissa käyttäjän on tarkoitus tehdä valinta saman tien. Ikkunan sulkeuduttua ohjelman suoritus jatkuu vanhaan malliin.

Olet varmaan huomannut, että useimmissa ohjelmissa on samanlainen tallennusikkuna. Windowsissa onkin valmis tallennusikkuna, jota voi kutsua suoraan omasta ohjelmasta. Nämä koodivinkit liittyvät siihen:
https://www.ohjelmointiputka.net/koodivinkit/24030-vb6-commondialogin-käyttö
https://www.ohjelmointiputka.net/koodivinkit/23692-vb6-common-dialog
https://www.ohjelmointiputka.net/koodivinkit/23478-vb6-commondialog-winapi-n-kautta

Oikeastaan suosittelen tuota viimeistä tapaa, sillä valmis tallennusikkuna on ihan hyvä ja säästää ohjelmoijaa turhalta työltä.

kayttaja-3842 [19.03.2006 20:26:36]

#

ahaa,Kiitos paljon. Minua kiinostaisi tietää vielä miten saan suljettua esim asetus ikkuna ilman, että koko ohjelma sulkeutuu? Tähän mennessä olen tehnyt niin,että jos painaa peruuta nappi niin siihen tulee "End", mutta tämä komento sulkee koko ohjelman. Toivottavasti tajusitte mitä tarkoitin.

Metabolix [19.03.2006 20:28:37]

#

Hide on käsittääkseni oikea temppu, ja vastaavasti Show toiseen suuntaan.

Antti Laaksonen [19.03.2006 20:37:36]

#

Ikkuna kannattaa sulkea näin:

Unload Me    ' oma ikkuna
Unload Form2 ' toinen ikkuna

Hide ainoastaa piilottaa ikkunan, jolloin se jää kummittelemaan muistiin.

Meitsi [19.03.2006 20:53:04]

#

Tietenkin, jos ikkuna halutaan kohta avata uudelleen, on järkevämpää vain piilottaa se :)

Freeze [19.03.2006 21:01:40]

#

No, periaatteessa, mutta silloin Form_Loadiin ei voi välttämättä aina laittaa koodia :)

Metabolix [19.03.2006 21:20:35]

#

Mutta eikös ole olemassa myös Form_Show-tapahtuma?

Draiz [19.03.2006 21:29:10]

#

Metabolix kirjoitti:

Mutta eikös ole olemassa myös Form_Show-tapahtuma?

Ei.

Freeze [19.03.2006 21:30:05]

#

No periaatteessa on ja ei.. sellaisen voi luoda itse jos haluaa sellaisen :)

php mies [25.03.2006 03:40:27]

#

Eikös Close () pelaa myös? Ainakin .NET :issä pelaa


Sivun alkuun

Vastaus

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

Tietoa sivustosta