Newsgroup: it.comp.lang.visual-basic
Titolo: [VB6] commondialog e annulla

Salve a tutti,
il soggetto: commondialog
il fatto: faccio apparire  con .showopen la finestra selezione file, 
seleziono il file, ma poi decido di non aprirlo con "apri" ma clicco su 
"annulla";
il problema: ho costruito un un if .filename<> "" then FAI questo else FAI 
quest'altro  endif,
                      se seleziono il file e lo apro o oppure se clicco 
subito su annulla le due condizioni vengono rispettate;
                      se invece faccio come detto ne "il fatto" viene 
eseguito "FAI questo";
la domanda: come la risolvo???? 


Credo che le CommonDialog non permettano di distinguere tutti i casi in 
cui una finestra viene chiusa (Ok, Annulla, con la 'X'). Io per evitare 
casini mi sono creato delle CommonDialog (almeno per quanto riguarda 
l'apertura dei file o la scelta delle cartelle) su misura, che ritornano 
risultati diversi a seconda della modalita' di uscita.
Bye by SixaM 8-]



Non ho capito niente, ma credo tu risolva leggendo l'help della proprietï¿œ  
.CancelError
-- 
Dr. Atlantis

 .CancelError
purtroppo non ci risolvo niente con .cancelerror... che dice solo se 
premendo annulla
cï¿œ qualche errore...che nel mio caso non cï¿œ.
forse cosi ï¿œ piu chiaro:
If CommonDialog1.FileName <> "" Then
    On Error Resume Next
    Kill App.Path & "\" & "xxxxxx.dat"
    FileCopy CommonDialog1.FileName, "xxxxxxx.dat"
    MsgBox "Operazione completata correttamente", vbInformation, "Messaggio"
Else
    MsgBox "Operazione annullata", vbInformation, "Messaggio"
End If
se seleziono un file, nella finestra "APRI" generata da commondialog, e poi
invece di premere il pulsante "apri" , clicco su "annulla" viene eseguito
lo stesso quello che cï¿œ tra IF ed ELSE.
 

 risultati diversi a seconda della modalita' di uscita.
non � che me le passeresti vero? ;)
sto facendo solo un programmino free
per salvarsi le password
(lo so che ce ne stanno centinaia in giro)...
lo puoi provare a questo indirizzo:
http://cid-990f6c5923f62566.skydrive.live.com/browse.aspx/.Public
(� ancora in versione beta...)
 

 cï¿œ qualche errore...che nel mio caso non cï¿œ.
C'ï¿œ, con l'apostrofo, per caritï¿œ!
Dice che "viene generato" errore se ï¿œ impostato su True quando viene  
premuto "Cancel".
Devi fare:
	On Error Goto Skip
	With CommonDialog1
		'Se viene premuto "Annulla" genera errore e va a Skip direttamente
		.CancelError = True
		.Filters=....
		.Flags=.....
		.ShowOpen
' Qui non arriva se ï¿œ premuto "Annulla".
		On Error Resume Next
		Kill ........
		Copy .filename .......
	        MsgBox "Operazione completata correttamente", vbInformation,  
"Messaggio"	
	End With
	Exit Sub
Skip:
	MsgBox "Operazione annullata", vbInformation, "Messaggio"
	End sub
 
-- 
Dr. Atlantis

non � che me le passeresti vero? ;)
Qui trovi esempi di CommonDialog personalizzabile:
http://www.maurorossi.net/pagine/codice.htm
http://vbnet.mvps.org/index.html?code/main/index.html
clicca su commondlgs
--
ciao
  Stefano

 ' Qui non arriva se � premuto "Annulla".


 lo stesso quello che cï¿œ tra IF ed ELSE.
Ovviamente :-). Ci hai messo quell'On error resume next, ma se poi
non gestisci subito l'errore, lui continua. Il che ï¿œ esattamente quello
che gli hai detto di fare :-).
On error resume next = in caso di errore continua con il prossimo
comando.
Un esempio di come funziona la cosa lo trovi qui:
http://www.vb-helper.com/howto_select_file.html
Un'altra possibilitï¿œ, quella che io preferisco, ï¿œ quella di gestire l'errore
insieme a tutti gli altri:
'****************
   On Error GoTo Gestisci_errori
   CommonDialog1.ShowOpen
   If CommonDialog1.filename <> "" Then
      Kill App.Path & "\" & "xxxxxx.dat"
      FileCopy CommonDialog1.filename, "xxxxxxx.dat"
      MsgBox "Operazione completata correttamente", vbInformation, "Messaggio"
   End If
   Exit Sub
Gestisci_errori:
   If Err.Number = cdlcancel Then
      MsgBox "Operazione annullata", vbInformation, "Messaggio"
   Else
      MsgBox "Si ï¿œ verificato un errore " & Err.Number & "  " & _
            Err.Description, vbExclamation, "Messaggio"
      Exit Sub
   End If
'****************
Bye, G. 

   CommonDialog1.ShowOpen
cioï¿œ se c ï¿œ un errore (che viene generato dalla pressione del tasto 
"annulla"
in quanto CancelError ï¿œ True) va all' etichetta Gestisci_errori
e mostra l'errore. Funziona egregiamente. Thank u! 

 situazione?
vero. per� non direi che sia un tipo di logica propriamente user
friendly...
:)
-- 
Salutoni
Sergio
C'� il giorno in cui nasci e quello in cui scegli di vivere
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it