Vai al contenuto
PLC Forum


Savefile + Annulla - Errore Stranissimo - in VB6 Come evitarlo ??


Messaggi consigliati

Inserito:

Ho creato una applicazione tipo Notepad in VB6

non capisco come mai quando salvo un documento

tutto bene.

Se non ho nessun documento aperto e clicko

- save - (mnuFileSaveAs)

nella finestra ShowSave non c'è scritto nessun titolo di file

poi invece di salvare, premo annulla, tutto bene.

Se apro un documento di nome - prova.txt - , lo chiudo ,

non ho nessun documento aperto e clicko - save -

nella finestra ShowSave rimane scritto il nome del

file aperto in precedenza - prova.txt -, premo annulla

allora mi da un errore - metodo non supportato dall'oggetto -

evidenziando questa riga di codice:

ActiveForm.rtfText.SaveFile sFile

che sarebbe poi l'ultima riga del mio codice save

qui sottostante

-------------------------------

Private Sub mnuFileSaveAs_Click()

Dim sFile As String

If ActiveForm Is Nothing Then Exit Sub

dlgCommonDialog.Flags = &H2

With dlgCommonDialog

.DialogTitle = "Salva con nome "

.CancelError = False

.Filter = "Tutti i file (*.*)|*.*"

.ShowSave

If Len(.Filename) = 0 Then

Exit Sub

End If

sFile = .Filename

End With

ActiveForm.Caption = sFile

ActiveForm.rtfText.SaveFile sFile

End Sub

----------------------------------------

Tutto questo è strano perche non c'è nessun

ActiveForm.rtfText

caricato come sembrerebbe suggerirmi VB6,

ma io non avevo premuto annulla?

Aggiungo che se nella finestra - save - non c'è scritto nulla perche non ho aperto nessun file in precedenza e il titolo lo scrivo io e poi premo annulla tutto va bene.

Qualcuno ci capisce qualcosa?

Ciao


Inserita:

ciao

a parte che la cosa è poco chiara e, secondo me avresti dovuto mandare piu informazioni, comunque i comandi sono questi:

Command1=APRI

Private Sub Command1_Click()

Dim strOpen As String

CommonDialog1.ShowOpen

strOpen = CommonDialog1.FileName

' Utilizza il metodo LoadFile per aprire il file.

RichTextBox1.LoadFile strOpen

End Sub

Command2=SALVA

Private Sub Command2_Click()

Dim strNewFile As String

CommonDialog1.ShowSave

strNewFile = CommonDialog1.FileName

RichTextBox1.SaveFile strNewFile

End Sub

<<<<<<<<<<<<

DialogBox:

Dialog_Title:-----

FilterName:-----

Init_Dir:------

Filter:File di testo (*.txt)|*.txt|Tutti i file(*.*)|*.*;*.*

Flags:0

DefaultExt:---

MaxSizeFile:260

FilterIndex:0(sempre se non hai creato un . x il prg)

ciao

Inserita: (modificato)

Si forse ho detto poco e confusamente.

Riesaminando tutto, il problema è questo:

Quando clicko su:

Salva col nome (mnuFileSaveAs_Click)

Se scelgo:

Salva

viene salvato il documento correttamente

Se scelgo:

Annulla

viene salvato ugualmente il documento

Prbabilmente devo codare (si dice cosi spero) cioè aggiungere del codice per la scelta:

Annulla

Ma cosa aggiungere ?

-----------------------------------------

Per blintz

-----------------------------------------

Grazie mille blintz ma mi sembra che i comandi della mia mnuFileSaveAs

Corrispondano a quelli che hai scritto tu

forse ho tralasciato qualche cosa che provoca l'errore??

Vedi un po qui sotto

------------------------------------------------------------------------------------

Tuo------------------------------------------------|Mio

------------------------------------------------------------------------------------

Command2 = SALVA---------------------------|mnuFileSaveAs = Salva col nome

----------------------------------------------------|-------------------------------------------

1 Private Sub Command2_Click()-----------|1 = 1 Private Sub mnuFileSaveAs_Click()

2 Dim strNewFile As String-------------------|2 = 3 Dim sFile As String

3 -------------------------------------------------|3

4 CommonDialog1.ShowSave---------------|4 = 12 .ShowSave

5 strNewFile = CommonDialog1.FileName|5 = 17 sFile = .Filename

6 RichTextBox1.SaveFile strNewFile------ -|6 = 20 ActiveForm.rtfText.SaveFile sFile

7 DialogBox:------------------------------------|7 = 8 With dlgCommonDialog

8 Dialog_Title:----- ----------------------------|8 = 9 .DialogTitle = "Salva con nome "

9 FilterName:-----------------------------------|9

10 Init_Dir:----------------------------------- --|10

11 Filter:File di testo (*.txt) etc.------------|11 = 11 .Filter = "Tutti i file (*.*)|*.*"

12 Flags:0 --------------------------------------|12 = 7 dlgCommonDialog.Flags = &H2

13 DefaultExt:----------------------------------|13

14 MaxSizeFile:260----------------------------|14

15 FilterIndex:0 -------------------------------|15

16 End Sub-------------------------------------|16 = 21 End Sub

------------------------------------------------------------------------------------

Mio |

------------------------------------------------------------------------------------

1 Private Sub mnuFileSaveAs_Click()

2

3 Dim sFile As String

4

5 If ActiveForm Is Nothing Then Exit Sub

6

7 dlgCommonDialog.Flags = &H2

8 With dlgCommonDialog

9 .DialogTitle = "Salva con nome "

10 .CancelError = False

11 .Filter = "Tutti i file (*.*)|*.*"

12 .ShowSave

13

14 If Len(.Filename) = 0 Then

15 Exit Sub

16 End If

17 sFile = .Filename

18 End With

19 ActiveForm.Caption = sFile

20 ActiveForm.rtfText.SaveFile sFile

21 End Sub

-------------------------------------------------------------------------------------

Modificato: da Brothers
Inserita:

Ho risolto così, tutto funziona a dovere per ora :)

Se qualcuno leggerà il codice per favore esprima un parere tipo:

se c'è e dove sta l'eventuale errore. :angry:

Ciao e grazie

-------------------------------------------------------------

Private Sub mnuFileSaveAs_Click()

Dim sFile As String

' Se non ci sono file aperti esce senza fare niente.

If ActiveForm Is Nothing Then Exit Sub

' Imposta CancelError su True - premendo il pulsante Annulla genera un errore.

CommonDialog1.CancelError = True

' Se viene provocato l'errore va all'etichetta ed esce senza fare niente.

On Error GoTo ErrHandler

' Imposta i flag.

' Flags: il primo nasconde la casella sola lettura il secondo chiede.

' se si vuole sovrascrivere il file esistente con lo stesso nome.

dlgCommonDialog.Flags = cdlOFNHideReadOnly

dlgCommonDialog.Flags = &H2

' Imposta il Titolo.

dlgCommonDialog.DialogTitle = "Salva con nome"

' Imposta i filtri.

dlgCommonDialog.Filter = "Tutti i file (*.*)|*.*|File di testo (*.txt)|*.txt"

' Specifica il filtro predefinito.

dlgCommonDialog.FilterIndex = 1

' Visualizza la finestra di dialogo Save.

dlgCommonDialog.ShowSave

' Se il file e nullo esce.

If Len(dlgCommonDialog.Filename) = 0 Then

Exit Sub

End If

' Stringa nome file.

sFile = dlgCommonDialog.Filename

' Da il nome del file al form attivo .

ActiveForm.Caption = sFile

' Salva il file con nome.

ActiveForm.rtfText.SaveFile sFile

Exit Sub

' Etichetta.

ErrHandler:

'L'utente ha scelto il pulsante Annulla ed esce.

Exit Sub

End Sub

----------------------------------------------------------

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...