Tarkoitus olisi saada tiedostolistaukset avautumaan
Tiedosto
...Uusi
...Avaa <---- tuota painaessa.
Oppaissa oli juttu tästä ja saankin ne toimimaan, mutta en silloin, kuin tätä "avaa" nappulaa painetaan.
Tarkoitat nyt siis valikkoa formin yläreunassa? Kun olet luonut valikon, klikkaa sitä siitä kohtaa, missä se näkyy formissa niin se avaa koodieditorin, jossa voi muokata kyseisen valinnan Click-tapahtumaa. Sitten vain pistät listauskoodin siihen.
Jos heitän ne suoraan tämän perään, se ei toimi.
Private Sub uusi_Click()
End Sub
Miten muokkaan Click-tapahtumaa? Siihen pitäisi saada se file1, sekä se toinen, mikä nyt olikaan.
No muokkaat sitä yksinkertaisesti kirjoittamalla sen koodin siihen. Niin kuin vaikka muokkaisit CommandButtonin Click-tapahtumaa.
Ja mistä filestä nyt on kyse?
Private Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub
Tuollainen pitäisi saada sopimaan sinne koodiin. Eikä se onnistu, että heitän sen siihen perään vain.
Nyt putosin kyllä kärryiltä. Siis mitä pitäisi saada tapahtumaan, ja mistä? Mitä pitäisi tapahtua, kun käyttäjä klikkaa valikosta "avaa"?
Kun käyttäjä klikkaa valikosta "avaa" käy niinkuin muissakin ohjelmissa, eli avaa tiedostolistauksen vai miksi sitä kutsutaan.
-----------------------
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
-----------------------
Tällä koodilla on osuutta asiaan, mutta en tiedän koodin sijoituksesta, eli mihin koodi laitetaan. Muutakuin sen että "avaa" napin koodiin. Tai tiedän siitä vielä kaikkea muutakin, mutta en vain saanut sitä toimimaan, eli mites tälläinen korjaantuu.
Ei tuo koodi kyllä voi liittyä asiaan mitenkään. Nuo vain aiheuttavat sen, että Dir-kontrolliin päivittyy oikea asema ja että File-kontrolliin päivittyy oikea hakemisto.
Mutta missä sinulla nuo on kontrollit?
Pitäiskö saada jokin erillinen formi aukeamaan, jossa ne näkyvät?
Ai, eikö voi? Erillinen ikkuna auki, niinkuin msgbox:issakin, ja siinä näkyisi hakemisto listaus.
Itsekkään en aivan tajunnut, mutta jos haluat antaa käyttäjän valita jonkin tiedoston voit käyttää CommonDialogia.
Nyt on oikea koodi, mutta miten saan sen aukeamaan, kun painan valikosta "avaa". Älkää haukkuko juntiksi, ainakaan paljon...
Siis minkä koodin? Tuon CommonDialogin? Ei sen olekaan tarkoitus toimia niin että se pistetään johonkin tiettyyn väliin, ja sitten se toimii automaattisesti. Se koodi pitää ensin ymmärtää ja sitten sitä voi ruveta soveltamaan omiin tarkoituksiinsa.
Kannattaa vain tehdä erillinen formi ja laittaa sinne ne Drive, Dir ja File. Sitten kun valikon nappia painetaan, voit näyttää sen formin näin:
Form2.Show
Muutama asia jäi vielä vaivaamaan, vaikkei koko juttu liity aiheeseen tai ehkä liittyy.
Printer.Print
Tuollainen printtaa tekstiä, mutta miten saan sen printtaamaan tekstin TextBoxista?
Tuollaisen löysin sivustoa selaillessani:
Tiedoston kirjoittamiseen:
Private function kirjoitafilu(tiedosto as string, data as string) open tiedosto for output as #2 print #2, data close #2 end function
ja tätä kutsu näi:
'kirjoittaa tiedostoon "C:\jeejee.txt" text1 sisällön. kirjoitafilu "C:\jeejee.txt", text1.text
Jotenkin kirjoittaa tiedostoon, mutta miten saan sen siihen kun painaa valikosta save? Tuo kutsuminen on vielä vähän outoa, vaikka vb-opas on luettu monta kertaa.
Pistät tuon kutsumisen siihen Save-valikon Click-tapahtumaan.
Ja tätä väitetään aloittelijoiden kieleksi...
--------koodia--------------
Private Function tallenna(tiedosto As String, data As String)
Open tiedosto For Output As #2
Print #2, data
Close #2
End Function
Private Sub sve_Click(tallenna "C:\Tallennus.txt", text1.text)
End Sub
---------------------------------------------------------
Tollanen koodi ja tollasta herjaa: Expected: list separator or )
Ööhh.. miksi olet pistänyt sen koodin parametriksi? Siis ihan sen aliohjelman sisään se kuuluu laittaa.
Private Sub sve_Click() tallenna "C:\Tallennus.txt", text1.text End Sub
Ja ei ohjelmoinnissa pääse helpolla millään kielellä. Ja käytä muuten kooditageja, kun kirjoitat koodia.
Aihe on jo aika vanha, joten et voi enää vastata siihen.