Fermare l'esecuzione in attesa di una scelta dell'utente

Ciao, vorrei capire come fare a uscire da questa situazione.

In pratica scorro un array con un ciclo For, se incontro una determinata condizione devo presentare all’utente una finestra con un popupmenu da cui viene effettuata una selezione. Fin qui nulla di difficile, il problema che anche se la finestra una modal il programma non si arresta ma continua il ciclo For generando n finestre che si sovrappongono.

Qualche consiglio per creare la situazione: blocca il ciclo, presenta la finestra, attendi una selezione e poi continua con il ciclo ?

Grazie !

Come definita la Modal e come la richiami?

Beh ho semplicemente aggiunto una finestra al progetto e selezionato modal nel menù. Da codice la creo con

Dim w ad mywindow
w.show

Cambia il tipo di finestra a Modal (una variante che si possa chiudere…)
e mostrala con w.showModal

Grazie mille Antonio, speravo di cavarmela da solo con questa informazione ma purtroppo ho ancora bisogno di una mano… Se volessi avere un valore di ritorno dalla mia finestra ? Un po come succede con un MsgBox che ritorna un integer ?

Questo é quello che cerchi allora: http://documentation.xojo.com/index.php/MessageDialog

Purtroppo no, perché ho la necessità di inserire un popupmenu nella finestra

Per quanto riguarda il valore di ritorno puoi semplicemente dichiarare una propriet pubblica nella tua finestra e metterci un valore a seconda del pulsante che viene premuto. La propriet rimarr disponibile anche dopo aver chiuso la finestra. Esempio:

dim w as MyWindow
w.showModal
// la finestra si apre e con un pulsante (es.) "Close"
// verr chiusa dal tuo codice nella finestra
// quindi il flusso del programma riprende qui:
dim reply as integer = w.reply

Grazie mille Massimo.

Ricordati che al momento che vedi il risultato puoi accedere alle sole propriet pubbliche (quindi volendo accedi anche a pi risultati)
e a nessun controllo.
Quindi se devi leggere il valore di un popup (ad esempio) nella modal, prima di chiuderla copia il valore del popup nella variabile

Ok, grazie!

di solito uso fare cos :
creo una propriet senza assegnare un valore
ad esempio ritorno as string e non ritorno as string = “prova”

poi apro la finestra dove mi serve ad esempio
prova = finestra.valore(“test”)

nel modulo valore ad un certo punto inserisco
me.showmodal
return ritorno

la finestra rimane in modalit modal fino a che alla propriet ritorno non assegnato un valore
oppure se chiudo la finestra.
a questo punto mi domando …
come verificare che la finestra sia in modo modal ?
cos alla chiusura (evento close) posso assegnare un valore di ritorno se ho chiuso la finestra