VisualBasicissa on (ainakin kuutosversiossa) CommonDialog niminen ohjausobjekti (projekt-components-microsoft common dialog control x.x. Lisää tämä projektiisi laittamalla rasti ruutun). Tämän avulla voidaan käyttää Windowssin tallenna nimellä, avaa, värin valinta tulosta, fontti yms. ruutuja. Tässä esimerkki niiden käytöstä. Tee commandbuttoneita 3 (Command1, Command2, Command3). Laita formille myös CommonDialogi (CommonDialog1).
Private Sub Form_Load()
'nappien tekstit
Command1.Caption = "Tallenna nimellä"
Command2.Caption = "Tulosta"
Command3.Caption = "Valitse fontti"
End Sub
Private Sub Command1_Click()
'eli tallennus nimellä
On Error GoTo cancel 'jos käyttäjä painaa cancel, mennään kohtaan cancel (cancel-napista
'tapahtuu virhe)
'Suodattimet (näkyvät tiedostotyyppi-osiossa)
CommonDialog1.Filter = "Kaikki tiedostot|*.*|Tekstitiedostot|*.txt"
'eli filterit asetetaan tyyliin "teksti|tiedostot|teksti2|tiedostot2"
'näytetään tallenna nimellä -ikkuna
CommonDialog1.ShowSave 'jos halutaan avata, ShowSaven tilalle ShowOpen
'kerrotaan käyttäjän valinta (CommonDialog1.filename)
MsgBox "Käyttäjä haluaa tallentaa tiedostoon " & CommonDialog1.FileName
Exit Sub
cancel:
Exit Sub
End Sub
Private Sub command2_click()
On Error GoTo cancel
CommonDialog1.ShowPrinter
alku = CommonDialog1.FromPage 'mistä sivusta
loppu = CommonDialog1.ToPage 'mihin sivuun
kopioita = commanDialog1.Copies 'kopioiden määrä
MsgBox "Käyttäjä halusi tulostaa sivut " & alku & " - " & loppu & ". Kopioita haluttiin " _
& kopioita & " kappaletta"
Exit Sub
cancel:
Exit Sub
End Sub
Private Sub command3_click()
On Error GoTo cancel
CommonDialog1.Flags = cdlCFScreenFonts 'näytetään näyttöfontit
'muita vaihtoehtoja: cdlCFPrinterFonts tulostimen fontit ja
'cdlCFBoth kaikki fontit
CommonDialog1.ShowFont
'kerrotaan käyttäjän valinnat
MsgBox "Käyttäjä valitsi fontin " & CommonDialog1.FontName & ", koon " & CommonDialog1.FontSize
'voit myös tarkistaa esim. FontBoldin, FontUnderlinen jne.
Exit Sub
cancel:
Exit Sub
End SubMites sen saa jopa tekemään jotakin
Miten niin tekemään kotain? Tietenkin koodaamalla, esim. tallennuksessa otetaan se tiedostonimi ja tungetaan tallennettava kama sinne. Ja niin edelleen.
lol commandialog pitää saada tallentamaanki jotain
On Error GoTo cancel
Private Sub Command1_Click()
CommonDialog1.Filter = "Kaikki (*.*)|*.*|Tekstit (*.txt)|*.txt"
CommonDialog1.FilterIndex = 2
CommonDialog1.Action = 2
Dim fso As Object
Dim tiedosto As Object
Set fso = CreateObject("scripting.filesystemobject")
Set tiedosto = fso.createtextfile(CommonDialog1.FileName, True)
tiedosto.writeline Text1.Text
End Sub
Miksei näin voi tehdä?
On Error GoTo cancel
Private Sub Command1_Click()
CommonDialog1.Filter = "Kaikki (*.*)|*.*|Tekstit (*.txt)|*.txt"
CommonDialog1.FilterIndex = 2
CommonDialog1.Action = 2
Open CommonDialog1.FileName for output as #1
Print #1, Text1.Text
Close #1
End Sub
Aihe on jo aika vanha, joten et voi enää vastata siihen.