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 Sub
Mites 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.