Alle 17:52, martedì 13 giugno 2006, Michele Zarri ha scritto:
> Ciao,
>
> Ho un piccolo problemino che vi vorrei sottoporre: ho creato una finestra
> di dialogo con un paio di controlli piu' un pulsante "OK" e uno "Cancel".
>
> Prima che la finestra si chiuda devo compiere qualche operazione percio' ho
> creato una subroutine che ho associato all'evento "mouse release" sul tasto
> OK e tutto funziona.

Una piccola considerazione:
L'evento mouse release va bene ma l'evento "on action" è meglio
Da quanto mi risulta infatti, quest'ultimo è stato concepito proprio come 
astrazione dell'evento predefinito di un pulsante.
 
In effetti per gestire al meglio l'evento mouse button release dovresti 
controllare pure il pulsante premuto, e il numero di clicks

Cosa che non è necessaria con l'evento "on action"

>
> Purtroppo pero' la finestra di dialogo si chiude anche se l'utente preme il
> tasto invio (il pulsante OK e' quello di default), solo che in questo caso
> il mio codice non viene eseguito.

Ed è cosa buona e giusta infatti :-)

>
> Esiste un metodo veloce per catturare l'evento chiusura della finestra di
> dialogo cosi' che possa eseguire il codice che voglio? Mi piacerebbe
> evitare di mettere un key listener anche perche' non saprei a quale
> controllo associarlo.

Niente di tutto ciò.
Per gestire i dialoghi di openoffice si opera come con i dialoghi di tipo 
msgbox:

In pratica:

--------------------------------
iDlgResult = oDlg.Execute 'il dialogo viene mostrato:
                        'il flusso di esecuzione rimane bloccato fino
                        'a che il dialogo non viene chiuso dall'utente

If iDlgResult = 1 Then 'l'utente ha premuto OK (o invio)
        'fai qualcosa di utile qui
Else
        'l'utente ha premuto annulla (o ESC)
        'chiudi la faccenda senza fare nulla
End If
----------------------------



ciao
Paolo M

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Rispondere a