Vai al contenuto
PLC Forum


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


Brothers

Messaggi consigliati

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

Link al commento
Condividi su altri siti


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

Link al commento
Condividi su altri siti

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
Link al commento
Condividi su altri siti

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

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

Link al commento
Condividi su altri siti

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