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.
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/
https://www.ohjelmointiputka.net/koodivinkit/
https://www.ohjelmointiputka.net/koodivinkit/
Oikeastaan suosittelen tuota viimeistä tapaa, sillä valmis tallennusikkuna on ihan hyvä ja säästää ohjelmoijaa turhalta työltä.
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.
Hide on käsittääkseni oikea temppu, ja vastaavasti Show toiseen suuntaan.
Ikkuna kannattaa sulkea näin:
Unload Me ' oma ikkuna Unload Form2 ' toinen ikkuna
Hide ainoastaa piilottaa ikkunan, jolloin se jää kummittelemaan muistiin.
Tietenkin, jos ikkuna halutaan kohta avata uudelleen, on järkevämpää vain piilottaa se :)
No, periaatteessa, mutta silloin Form_Loadiin ei voi välttämättä aina laittaa koodia :)
Mutta eikös ole olemassa myös Form_Show-tapahtuma?
Metabolix kirjoitti:
Mutta eikös ole olemassa myös Form_Show-tapahtuma?
Ei.
No periaatteessa on ja ei.. sellaisen voi luoda itse jos haluaa sellaisen :)
Eikös Close () pelaa myös? Ainakin .NET :issä pelaa
Aihe on jo aika vanha, joten et voi enää vastata siihen.