Non riesco a capire perchè con la pressione del tasto ESC non riesco ad uscire da un DO WHILE ... ENDDO.
Di seguito il codice
DO WHILE .T.
SEL_AZI(V_AZICOD,V_AZIRAGIO1,V_AZIRAGIO2,V_AZIANNOCO)
IF V_AZICOD = 0
EXIT
ENDDO
DO WHILE .T.
DEFINE DIALOG oDlg RESOURCE "DOCUMENTI" TITLE "Elenco Documenti"
. . .
REDEFINE BUTTON ID 205 OF oDlg ACTION oDlg:End()
IF LASTKEY() = 27
oDlg:End()
ENDIF
ACTIVATE DIALOG oDlg CENTER
EXIT
ENDDO
ENDDO
Se clicco sul bottone 205 (Uscita) riesco ad uscire dal loop, se premo ESC no.
Grazie, Andrea
Uscrire da un loop con ESC
Moderator: Enrico Maria Giordano
Uscrire da un loop con ESC
Andrea Errigo
info@andreaerrigo.it
info@andreaerrigo.it
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
Re: Uscrire da un loop con ESC
Per prima cosa devi tenere presente che fintanto che una DIALOG è visualizzata l'esecuzione si trova bloccata nel comando ACTIVATE DIALOG (più o meno come succedeva in Clipper con il comando READ).
EMG
EMG
Re: Uscrire da un loop con ESC
Io faccio esattamente questo, solo che se clicco sul bottone Uscita lui mi attiva il comando oDlg:End() ed esce regolarmente mentre se premo ESC è come se avessi confermato.EnricoMaria wrote:Per prima cosa devi tenere presente che fintanto che una DIALOG è visualizzata l'esecuzione si trova bloccata nel comando ACTIVATE DIALOG (più o meno come succedeva in Clipper con il comando READ).
EMG
Ho provato con LASTKEY() ma anche quello sembra che non lo legga.
Andrea
Andrea Errigo
info@andreaerrigo.it
info@andreaerrigo.it
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
Re: Uscrire da un loop con ESC
Allora cerca di fare un esempio chiaro del tuo problema perché da quello che hai riportato non si capisce assolutamente.
EMG
EMG
Re: Uscrire da un loop con ESC
Caro Enrico,EnricoMaria wrote:Allora cerca di fare un esempio chiaro del tuo problema perché da quello che hai riportato non si capisce assolutamente.
EMG
ho messo su questo link un documento in PDF dove spero di aver spiegato meglio il problema :
http://www.kompasso.it/sito/ControlloESC.pdf
Il problema mi sembrava molto semplice (fra l'altro in clipper 5.2 funziona benissimo), se passo il controllo ad una funzione quando questa mi ritorna, leggo una variabile e se è = 0 devo uscire dal loop del programma che l'ha richiamata.
Grazie, Andrea.
Andrea Errigo
info@andreaerrigo.it
info@andreaerrigo.it
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
Re: Uscrire da un loop con ESC
Senza un esempio minimale e compilabile del problema è molto difficile aiutarti. Comunque, se ho capito bene, prova a sostituire
con
EMG
Code: Select all
IF LASTKEY() = 27
oDlg:End()
ENDIF
Code: Select all
IF GETKEYSTATE( VK_ESCAPE )
oDlg:End()
ENDIF
Re: Uscrire da un loop con ESC
Caro Enrico,EnricoMaria wrote:Senza un esempio minimale e compilabile del problema è molto difficile aiutarti. Comunque, se ho capito bene, prova a sostituire
conCode: Select all
IF LASTKEY() = 27 oDlg:End() ENDIF
EMGCode: Select all
IF GETKEYSTATE( VK_ESCAPE ) oDlg:End() ENDIF
ti ringrazio, ho risolto; solo che al comando oDlg:End() ho sostituito il comando EXIT poichè la Dialog non è stata ancora attivata (il comando IF è in testa al loop).
Grazie ancora, Andrea.
Andrea Errigo
info@andreaerrigo.it
info@andreaerrigo.it