Newsgroup: it.comp.lang.visual-basic
Titolo: CommonDialog: quesiti

Raga, come si fa a fare in modo che, se si preme annulla in una
commondialog, non dia l'errore, ma che esca senza fare
niente??????????? O non è giornata e non riesco a fare niente o sono
impazzito sul serio!
Aiutatemi!

...


 Setta CancelError a False.
Sì, però così non sai se l'utente ha premuto Cancel o Ok!
E' meglio una cosa tipo:
sub MiaSub
    on error goto UserCancel
    CommDlg1.ChooseFont ' o altro
    ' se arrivo qui user ha premuto ok
    Exit Sub
UserCancel:
    ' se arrivo qui user ha "cancellato"
end sub
Saluti, Massimo
ATTENZIONE! le common dialog, come ha accennato Domenico, sono fatte
col c**o, per essere "gentili". Su 95 "funzionano" in un modo, su 98 in un
altro,
su NT in un un altro ancora. E "funzionano" vuol dire che se per caso
l'utente
ha installato qualche programma che aggiorna COMMDLG32.DLL o .OCX
puoi ritrovarti con qualche "runtime error" tipo 320xx e simili.
Sarebbe meglio utilizzare direttamente le chiamate alle common dialog
tramite le API, almeno sai cosa stai facendo e puoi provvedere direttamente.
Purtroppo utilizzare le API Common Dialog da VB non è proprio banalotto
(tra l'altro anche il platform SDK è molto poco documentato!).
Per qualche informazione, cerca qui
http://msdn.microsoft.com/isapi/msdnlib.idc?theURL=/library/books/advnvb5/ht
ml/Ch09.htm
riSaluti, riMassimo.


Sě, perň cosě non sai se l'utente ha premuto Cancel o Ok!



Questo è il codice.
AIUTOOOOOOOOOOOOOOOOOOOOO!
Private Sub Command4_Click()
    Dim NomeFile As String
    Dim ndx As Long
 
    Form6.Common2.ShowSave
    Form6.Common2.Filter = "FastViewer List(*.fvl)|*.fvl"
    Form6.Common2.CancelError = True
 
    On Error GoTo UserCancel
 
        ndx = InStr(1, Form6.Common2.FileName, ".")
        If ndx = 0 Then
            NomeFile = Form6.Common2.FileName & ".fvl"
        Else
            NomeFile = Form6.Common2.FileName
        End If
 
        Open NomeFile For Output As #1
            For i = 0 To Form1.List1.ListCount - 1
                Print #1, Form1.List1.List(i)
            Next i
        Close #1
        ScriviText ("Il lista è stata salvata correttamente")
        Unload Form6
        Exit Sub
UserCancel:
    Unload Form6
End Sub
ByeZ!
Alkondor

     On Error GoTo UserCancel
Lo .ShowSave va dopo averne stabilito il comportamento....
Ciao. 
Maurizio

 Aiutatemi!
On error resume next prima di aprire la commondialog; quando ritorna,
controlli il valore di Err.Number, e se si č verificato l'"errore" di
chiusura lo tratti come un annullamento utente, altrimenti gestisci gli
altri errori in modo appropriato. Comunque la risposta alla tua domanda č:
trappa l'errore prima di aprire la CommonDialog.
MA TE VOI PROCURA' 'ST'HELP DE VB O NO???
;;))))
-- 
Ale...@tiscalinet.it

 del CancelError?
sono d'accordocon te!!! Vallo a dire a Billy...
-- 
Ale...@tiscalinet.it

Ovvio, resume devi metterlo prima di chiamare il dialog. Cmq ti consiglio
quest'alto modo:
Private Sub Command4_Click()
    On Error Resume Next
    Dim NomeFile As String
    Dim ndx As Long
    Form6.Common2.Filter = "FastViewer List(*.fvl)|*.fvl"
    Form6.Common2.CancelError = True
Queste cose devi metterle prima di richiamare il dialog.
    Form6.Common2.ShowSave
    If Err = 32755 Then
        'quello che vuoi (di solito niente)
        Exit Sub
    End If
..... et, etc
Ciao

     On Error GoTo UserCancel
è qui che sbagli; ecco come devi fare:
1) prima setti Form6.Common2.CancelError = True
2) poi metti i tuoi filtri
3) attivi la trap On Error GoTo UserCancel
4) ora (e SOLO ora) apri il dialog con Form6.Common2.ShowSave
il resto dovrebbe andar bene
Bye
-- 
Ale...@tiscalinet.it




Ciaooooooooo!
Anche tu qui?
Grande!
Eheheheheh
Ciao, ci si sente in chat!
ByeZ!
Alkondor
