¿Cómo detectar si un cuadro de subtítulos ha sido cerrado?¡Hola!
Tengo un script que recorre las celdas de los datos y procesa algunos datos.
Para darle al usuario una idea de qué celda está procesando actualmente, agrego esta línea:
Caption("Processing "||Char(i)||" out of "||Char(Nrows(dtmed))||" Cells...");De todos modos, si cierro el título, la secuencia de comandos simplemente pasa a la siguiente iteración. Lo que quiero es que la secuencia de comandos termine si el usuario cierra el cuadro de título. ¿Quizás haya alguna función que me dé el estado del cuadro de subtítulos si estuviera cerrado?
De todos modos, el último recurso es este hilo:
https://community.jmp.com/t5/Discussions/Jsl-How-can-i-stop-a-script-with-a-button/td-p/6787
Aunque, estoy preocupado de tener dos ventanas (un cuadro de título y una caja de ventana) solo para tener un botón de escape.
Gracias por la ayuda.
Re: ¿Cómo detectar si un cuadro de subtítulos ha sido cerrado?Podría considerar el uso de 'OnClose ()' para hacer el mantenimiento, siempre y cuando esté siguiendo las tablas:
NamesDefaultToHere(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = NewWindow("Using 'On Close'", << onClose(onCloseBlock), TextBox("Close Me"));
onCloseBlock =
Expr(
Print("Closing table "||(dt << getName));
Close(dt, NoSave);
);Re: ¿Cómo detectar si un cuadro de subtítulos ha sido cerrado?@ian_jmp
Lo hice así:
CheckBlock=Expr (
stattb<<SETTEXT></SETTEXT>De alguna manera, el botón Cancelar no está haciendo su trabajo, creo que lo puse mal dentro del script.
Hm, desafortunadamente, el botón anular abortado por (X) deja muchas tablas de datos invisibles.
Todavía estoy comprobando cómo lidiar con eso.
Gracias por la ayuda.
Re: ¿Cómo detectar si un cuadro de subtítulos ha sido cerrado?¡Gracias! Déjame ver cómo puedo adaptar esto a mi script actual.
Re: ¿Cómo detectar si un cuadro de subtítulos ha sido cerrado?Parece que no puedes enviar mensajes a 'Caption ()' para manipularlo.
Adaptando lo que hay en el otro hilo, podrías intentar algo como:
NamesDefaultToHere(1);
nw = NewWindow("Stop script",
tb = TextBox("Press 'Run'... \!n"),
bb1 = ButtonBox("Run", runScript),
bb2 = ButtonBox("Cancel", stopFlag = 1),
);
nw << setWindowSize(150, 120);
runScript =
Expr(
bb1 << enable(0);
stopFlag = 0;
for(i=1,i<=100, i++,
Wait(1);
if(stopFlag,
// Stop . . .
nw << closeWindow;
Print("Stopped after "||Char(i)||" seconds.");
Stop(),
// Else update display . . .
tb << setText("Counted for "||Char(i)||" seconds.")
);
);
nw <<CLOSEWINDOW></CLOSEWINDOW>