On 15/06/06, Paolo Mantovani <[EMAIL PROTECTED]> wrote:

Alle 18:22, martedì 13 giugno 2006, Michele Zarri ha scritto:
[...]
>
> L'evento "on action" pare interessante, [...]


Mi sono spiegato male. In effetti parlavo proprio di uno degli eventi
predefiniti disponibili nel dialogo proprietà. Si tratta dell'evento
"Durante
l'esecuzione"


Non l'ho trovato ancora ma continua a cercare...

[...]

Sono d'accordo.
Anche impedire la chiusura del dialogo comunque non è una soluzione user
friendly: in tutti i casi stai sbattendo in faccia all'utente i suoi
errori
(che in realtà non sono errori dell'utente ma limiti del programma)


No, no ti assicuro che sono errori dell'utente. Per evitare che l'utente si
ica**i, gli/le fornisco un indizio sull'errore (MsgBox) e metto il cursore
sul campo da modificare. Insomma, cattivo si', ma non perfido :)

[..]Beh, se non vuoi che il tuo pulsante OK si comporti da pulsante OK devi
definirlo come pulsante di tipo standard.
In questo caso il pulsante non chiuderà automaticamente il dialogo e
potrai
gestire tutto manualmente.

In realta' io vorrei che il pulsante ok si comportasse da pulsante ok,
quello che non voglio e' che il tasto invio si comporti da pulsante "chiudi
la finestra di dialogo e arrivederci"

Infatti, anche trattando il pulsante OK come pulsante standard non riesco
egualmente a prevenire che la finestra si chiuda senza controllare quando
l'utente preme invio.
C'e' poi l'ulteriore scocciatura di dover chiudere a mano la finestra di
dialogo quando l'utente preme il pulsante OK (che ora e' un tasto standard)
e inserire una variabile globale per far sapere che l'utente ha premuto tale
pulsante. In altra parole il codice
If oMyDialog.execute() Then
...
End If
e' ora diventato

bBtnOkClicked = false
oMyDialog.execute()
If bBtnOkClicked Then
...
End If

e nel mio modulo che gestisce la finestra di dialogo ho
Sub subBtnOkClicked()
... test che i campi siano corretti poi ...
  oMyDialog.endExecute()
  bBtnOkClicked = true
...
End Sub

Domanda  (la domanda originale :-) ): se volessi catturare l'evento "premuto
il tasto invio" usando un listener o un handler, come faccio ad associarlo
alla finestra di dialogo in generale in modo da catturarlo sempre? devo
ottenere il model? il controller? qualcos'altro?

Ciao e grazie mille

Michele

Rispondere a