DevLabs







Ricerca
Main:

Programmazione:

C++:

Varie & Eventuali:

Sito:





Valid CSS!

Creative Commons License

This work is licensed under a Creative Commons License.

 







Premessa: I contenuti di questa sezione sono ancora pochi ma ricordiamo agli utenti che Dev.Labs mette SOLO testi scritti personalmente da un componente del team senza scaricare nulla da altri portali o semplicemente linkando guide come fa tanta altra gente.
Sezione in continuo aggiornamento...

Notepad:
In questo prima guida al visual basic impareremo come realizzare un semplice blocco note. Tutti pronti? Iniziamo!
Per prima cosa creiamo un nuovo progetto e chiamiamolo Notepad poi rinominiamo il form FormMain e a BorderStyle diamo
l'attributo "2 - Sizable".
Adesso aggiungiamo una textbox al form, rinominiamola txtTesto e impostiamo multiline su True. Dopo la textbox
è il momento di creare un menù quindi andiamo in menu editor e aggiugiamo un menu principale di nome mnuFile e col
testo &File, poi aggiungiamo un sottomenù (per impostare un sotto menu dopo aver creato il campo del menu basta
cliccare sul pulsante con la freccia a destra) chiamato mnuOpen con testo Apri, poi un altro mnuSave con testo Salva
e mnuClose con testo Chiudi. Ora clicchiamo col tasto destro sulla barra degli oggetti (dove ci sono pulsanti, label ecc..)
e selezioniamo componenti poi cerchiamo Microsoft Common Dialog Control e selezioniamo, poi clicchiamo applica e poi chiudi.
Mettiamo il nuovo controllo comparso nel form e chiamiamolo cmDialog.
Prima di qualsiasi altra operazione dichiariamo le variabili globali:

Public File As String
Public Saved As Boolean

Adesso gestiamo il ridimensionamento della textbox in caso di ridimensionamento del form
andiamo nella finestra del codice e selezioniamo la routine Form_Resize() e scriviamo:

Private Sub Form_Resize()
txtTesto.Height = FormMain.ScaleHeight
txtTesto.Width = FormMain.ScaleWidth
txtTesto.Top = 0
txtTesto.Left = 0
End Sub

txtTesto.Height = FormMain.ScaleHeight significa che quando il form si ripicciolisce o si ingrandisce la textbox diventa
alta quanto l'altezza interna del form
txtTesto.Width = FormMain.ScaleWidth significa che la textbox diventa larga quanto la larghezza interna del form
Inutile spiegare le altre due basta sapere cosa significa Top (sopra) e Left (sinistra).

In Form_Load():
Private Sub Form_Load()
Saved = True
End Sub

Ora dobbiamo gestire gli eventi del menù, clicchiamo sul menu Apri e nella finestra del codice scriviamo:

Private Sub mnuOpen_Click()
cmDialog.DialogTitle = "Seleziona il file da aprire" 'Da un titolo alla finestra di apertura dei file
cmDialog.Filter = "*.txt|*.txt|Tutti i files|*.*" 'Imposta come file da mostrare o i file .txt o tutti gli altri
cmDialog.ShowOpen 'Mostra la finestra di apertura
File = cmDialog.FileName 'Salva il nome del file selezionato

txtTesto.Text = vbNullString 'Azzera il testo della textbox

Open File For Input As #1 'Apre il file in lettura
Do Until EOF(1) 'Fino alla fine
Input #1, temp$ 'Legge una riga alla volta
txtTesto.Text = txtTesto.Text & temp$ & vbCrLf 'E la mette nella textbox
Loop
Close #1 'Chiude il file

Saved = True
End Sub

Ora facciamo la stessa cosa col menu Salva e come codice mettiamo

Private Sub mnuSave_Click()
On Error GoTo Errore 'Se c'è un errore salta a Errore:

If File = vbNullString Then 'Se il file non è stato letto
cmDialog.DialogTitle = "Seleziona il file da aprire" 'Da un titolo alla finestra di salvataggio dei file
cmDialog.Filter = "*.txt|*.txt|Tutti i files|*.*" 'Imposta come file da mostrare o i file .txt o tutti gli altri
cmDialog.ShowSave 'Mostra la finestra di salvataggio
File = cmDialog.FileName 'Salva il nome del file selezionato
End If

Open File For Output As #1 'Apre il file in scrittura
Write #1, txtTesto.Text 'Scrive il testo
Close #1 'Chiude il file

MsgBox "File salvato con successo!", vbOKOnly + vbInformation, "File salvato"
Saved = True 'Imposta saved a vero

Exit Sub 'Esce dalla routine altrimenti eseguirebbe anche il codice dell'errore
Errore:
MsgBox Err.Description, vbOKOnly + vbCritical, "Errore numero " & Err.Number 'Se c'è un errore mostra una msgbox con descrizione e numero dell'errore
End Sub

Adesso nella routine txtTesto_Change() che viene eseguita ogni qual volta il testo cambia mettiamo:
Private Sub txtTesto_Change()
Saved = False
End Sub

Saved è falso così quando chiudiamo il notepad controlliamo se è stato salvato il file.

Per il menu Esci invece mettiamo

Private Sub mnuClose_Click()
End
End Sub

Adesso l'ultimo passo, per controllare se prima di chiudere è stato salvato il file. Nella rountine Form_Unload(Cancel as Integer):
Private Sub Form_Unload(Cancel As Integer)
If Not Saved Then 'Se saved è false
Dim ResultOfMsgBox As VbMsgBoxResult 'Risultato della msgbox
ResultOfMsgBox = MsgBox("Il file non è salvato, vuoi salvarlo?", vbYesNo, "Salva il file") 'Mostra una msgbox con i pulsanti si e no e salva il risultato
If ResultOfMsgBox = vbYes Then 'è stato cliccato si
mnuSave_Click 'salva
End If
End If
End Sub


All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2005 by NeO_Giu. Thanks to z3ro