Newsgroup: it.comp.lang.visual-basic
Titolo: [?] trapping cancel button on common dialog

Ciao gente,
com'è che non riesco a rilevare la pressione del tasto cancel di una
finestra di dialogo comune ?
1- l'esempio nella guida in linea (....a parte un errore di sintassi) non
funza             nemmeno
2- immaginando che tale form sia vbmodal , il ON ERROR GOTO myproc
    dovrei metterlo nel form_load  o no ??
se qlc1 ha già trovato una soluzione mi aiuti GRAzie
Ciao @lex

     dovrei metterlo nel form_load  o no ??
Se stai usando il controllo CommonDialog, devi settare la
proprietà CancelError a True. Se l'utente preme il tasto "Annulla"
viene generato l'errore 32755.
Nella routine che stai utilizzando puoi inserire all'inizio
On Error Resume Next e analizzare un eventuale errore
al ritorno da CommonDialog1.Action = X.

 wrote in message 8a8ngr$m4e$1...@nslave2.tin.it...

Ciao e GRAzie,
allora,  ti riporto il codice che ho scritto nella routine e che non rileva
niente, ho provato ad aggiungerci on error resume next ma nada  :
Private Sub Commapri_Click()
Dim ext As String
   On Error GoTo cancella
   commdialog.CancelError = True
   ' Set filters
   commdialog.Filter = "Immagini(*.bmp;*.gif;*.jpg)|*.bmp;*.gif;*.jpg"
   commdialog.FilterIndex = 3
   commdialog.Flags = &H1000
   ' Display the Open dialog box.
   commdialog.Action = 1
   ext = Right(commdialog.FileName, 3)
   If ext = "bmp" Or ext = "gif" Or ext = "jpg" Then
    'Call the set picture .
    Set picfoto = LoadPicture(commdialog.FileName)
   Else
   commdialog.FileName = ""
   End If
cancella:
    commdialog.FileName = ""
    Exit Sub
End Sub

Puo' essere perche' usi commondialog.action = 1, che e' vecchio e (pare) non
completamente compatibile. Usa
commondialog.ShowOpen
e vedi se funziona meglio.


 wrote in message
8a8pg7$72d$1...@news.planet.it...


Devi selezionare il check "Cancell Error" nelle proprietą della common
dialog, quindi da codice ti trappi l'errore con costante cdlCancel

    commdialog.FilterIndex = 3
                          ^^^^^^^^^^^
Hai un solo filtro impostato.
Prova cosě, vedrai che se premi Annulla ti ritorna l'errore corretto
   Err = 0
   On Error Resume Next
   commdialog.CancelError = True
   commdialog.Filter = "Immagini(*.bmp;*.gif;*.jpg)|*.bmp;*.gif;*.jpg"
   commdialog.Flags = &H1000
   commdialog.Action = 1
   If Err Then
      If Err = 32755 Then
         MsgBox "Premuto Annulla"
       Else
         MsgBox "Errore" & Err.Number & ": " & Err.Description
      End If
      Exit Sub
   End If
   ext = Right(commdialog.FileName, 3)
   If ext = "bmp" Or ext = "gif" Or ext = "jpg" Then
    picfoto.Picture = LoadPicture(commdialog.FileName)


 ha scritto nel messaggio
news:8a8q0v$18a$1...@pegasus.tiscalinet.it...


 End Sub
--
Ciao.
Maurizio

Grazie Jimi, effedipi, Gianluca,
ebbene ho provato i vostri consigli e la situazione comunque non č
cambiata...
allora mi sono detto o son pirla io o č pirla sta macchinetta fatta di tanti
flip-flop e transistor....
siccome la seconda non ha intelligenza....
vuoi vedere che gli errori di run-time li sa gestire solo a prog compilato
ed effettivo run-time non simulato con il tastino "play" del vb6...
ed infatti ...!!!!
SCUSATEMI TUTTI PER LA MIA IMPERDONABILE IGNORANZA !
@lex