Indice de contenido
-> Capítulo 14 - Funciones misceláneas
A continuación se describe el uso de las siguientes funciones predeterminadas en TEIMSI:
1)- reghotkey(teclas,dirección_procedimiento)
2)- regtimer(entero_tiempo,entero_puntero)
3)- seterrorlevel(número)
4)- waitevent()
5)- openapp(senda)
6)- fn_at_long(entero_puntero)
7)- waitfor(número_milisegundos)
reghotkey
La función "reghotkey", asocia una combinación de teclas a un procedimiento TEIMSI. De esa forma al presionarse tal combinación se llama al procedimiento, el cual no recibe parámetros como variables TEIMSI.
Se reciben dos parámetros donde el primero describe las teclas especiales y el segundo es el nombre del procedimiento precedido del carácter "@", por ejemplo: @tarea1 ("tarea1" es la función declarada en TEIMSI).
También se puede desasociar una combinación de teclas previamente asociadas con la misma función, para ello el segundo parámetro debe valer 0 (entero cero). La función predeterminada "waitevent()" se utiliza para entrar en estado de escucha de teclas, eso significa que detiene el flujo de ejecución de código del programa pero continúa su flujo si el procedimiento asociado devuelve el booleano "true" en lugar de "false".
Sintaxis
reghotkey(teclas,dirección_procedimiento) |
Parámetros
teclas
| "teclas" representa una variable tipo cadena que describe la combinación de teclas a utilizar, en su contenido los primeros tres caracteres describen si usar o no teclas Shift, Control y Alt: para usar Shift+Alt será "s-a" (el guión indica que la tecla Control no se usará), para usar Ctrl+Alt sería "-ca". Luego estos tres caracteres viene un punto (".") y la tecla adicional del teclado se indica con una cadena (no distingue mayúscula) de las que están en la siguiente lista de palabras (separadas por una coma): back, clear, delete, down, end, escape, home, insert, lbutton, mbutton, rbutton, left, pause, pgdn, pgup, print, return, right, shift, snapshot, space, tab, up, numpad0, numpad1, numpad2, numpad3, numpad4, numpad5, numpad6, numpad7, numpad8, numpad9, multiply, add, separator, subtract, decimal, divide, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, numlock, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z |
Valor devuelto
booleano
| Variable tipo booleano de TEIMSI, que indica si ocurrió error alguno. Si vale false, para saber la cadena del error puede llamarse a la función predeterminada err_number como se muestra en el ejemplo. |
Ejemplo:
// El siguiente ejemplo muestra un programa que registra las teclas Ctrl+Alt+P, espera a que la combinación de teclas se haga para salir.
function evento(){
alert("Se presionó Ctrl+Alt+P")
return true; // Al devolver "true", la función "waitevent" para de esperar por eventos.
}
// A continuación asocia una combinación a un procedimiento.
var error=reghotkey("-ca.p",@evento)
if(error==false){
alert("Ocurrió un error al asociar Ctrl+Alt+P, descripción: "+_nl+" "+err_description(err_number()))
sys.quit()
}else{
alert("Presionar Ctrl+Alt+P para salir!")
}
waitevent()
reghotkey("-ca.p",0) // Desasocia las teclas Ctrl+Alt+P.
// Estas instrucciones muestran un ejemplo de que ocurre cuando la tecla ya está asociada por otra aplicación (Ctrl+Alt+Suprimir es un comando para el sistema operativo).
var error=reghotkey("-ca.delete",@evento)
if(error==false){
alert("Ocurrió un error al asociar Ctrl+Alt+Delete, descripción: "+_nl+" "+err_description(err_number()))
}
sys.quit() // Termina la aplicación.
Ver también <<
err_number>>, <<
err_description>>, <<
waitevent>>, <<
regtimer>>
Volver arriba
regtimer
La función "regtimer", registra un "timer" (cronómetro) a un procedimiento. Un "timer" llama cada cierta cantidad de milisegundos (1 milisegundo = 0.001 segundos) a un procedimiento. El procedimiento o función TEIMSI no debe recibir parámetros. La función predeterminada "waitevent()" se utiliza para entrar en estado de escucha de "timers", eso significa que detiene el flujo de ejecución de código del programa pero continúa su flujo si el procedimiento asociado devuelve el booleano "true" en lugar de "false".
Sintaxis
1- regtimer(entero_milisegundos,@procedimiento) |
2- regtimer(manejador_regtimer,0) |
Parámetros
parámetro entero 1
| Variable tipo número entero de 32 bits de TEIMSI. Si se quiere registrar un "timer" a una función este parámetro indica los milisegundos. Si se quiere dar de baja un "timer" este debe valer el entero (manejador) devuelto por la misma función "regtimer" en una llamada previa. |
parámetro entero 2
| Variable tipo número entero de 32 bits de TEIMSI. Si se quiere registrar un "timer" a una función este parámetro indica el procedimiento antecedido por "@". Si se quiere dar de baja un "timer" este debe valer el entero 0 (cero). |
Valor devuelto
manejador/booleano
| Si se registra un "timer", devuelve una variable tipo número entero de 32 bits de TEIMSI que tiene el "manejador" (utilizado para una futura desasociación). Si se da de baja un "timer", el valor devuelto es un booleano que indica el resultado. |
Ejemplo:
alert("Esperar 2 segundos!")
var timerh = regtimer(2000, @timer1);
waitevent();
alert("Saliendo!")
function timer1(){
var resultf = regtimer(timerh, 0);
alert("Timer1 en acción!")
return true;
}
Ver también <<
reghotkey>>, <<
waitevent>>
Volver arriba
seterrorlevel
La función "seterrorlevel", establece el valor del entero "errorlevel" usado tras terminar la aplicación.
Sintaxis
seterrorlevel(numero_entero) |
Parámetros
numero_entero
| Variable tipo número entero de 32 bits de TEIMSI. |
Valor devuelto
booleano
| Variable tipo booleano de TEIMSI. |
Ejemplo:
// El siguiente ejemplo muestra una utilidad de "seterrorlevel".
// Editar con el Editor de TEIMSI un archivo llamado "errorlevel.tsi", ponerle la siguiente línea y luego presionar F5.
seterrorlevel(2)
// Ahora editar un archivo llamado "test.bat" en la misma carpeta del archivo .exe, ponerle lo siguiente y ejecutar el bat.
@echo off
call errorlevel.exe
if errorlevel 2 goto et2
echo "Error level 0"
pause
exit
:et2
echo "Error level 2"
pause
exit
// Como se verá aparece la cadena "Error level 2".
Ver también <<
openapp>>
Volver arriba
waitevent
La función "waitevent", detiene el flujo del programa hasta que la llamada de un "timer" (registrado con la función "regtimer") o combinación de teclas (registrada con la función "reghotkey") se cumple.
Sintaxis
Parámetros
Valor devuelto
Ver también <<
regtimer>>, <<
reghotkey>>
Volver arriba
openapp
La función "openapp", ejecuta un programa o documento en el sistema de archivos para que lo abra el sistema operativo (o la aplicación asociada a al tipo de archivos que corresponde). Recibe un parámetro que es la senda al documento o programa, si es un programa se puede especificar la línea de comandos: para ello la senda debe estar seguida por el carácter "<" y la línea de comandos.
Sintaxis
Parámetros
senda
| Variable tipo cadena de TEIMSI. Indica la ubicación del archivo. |
Valor devuelto
booleano
| Variable tipo booleano que indica el resultado de la tarea. |
Ejemplo:
// Editar con el Editor de TEIMSI un archivo llamado "program.tsi", ponerle la siguiente línea y luego presionar F5.
alert(cmdline())
// Se verá un mensaje con la senda al programa.
// Ahora editar con el Editor de TEIMSI un archivo llamado "caller.tsi", ponerle las siguientes líneas y luego presionar F5.
if(fileexists("program.exe")){
openapp("program.exe<Hola!") // Corre el programa "program.exe" en caso de estar en el sistema de archivos.
}
// Como se verá aparece un mensaje con la senda al programa "program.exe" y la línea de comandos (que en este caso es "Hola!").
Ver también <<
cmdline>>
Volver arriba
fn_at_long
La función "fn_at_long", llama a un procedimiento cuya localización en la sección de código se especifica con una variable tipo entero de TEIMSI.
Sintaxis
Parámetros
entero
| Variable tipo entero de TEIMSI con la posición del procedimiento. |
Valor devuelto
variable
| Variable devuelta por el procedimiento que se llama. |
Ejemplo:
var posicion=@ejemplo
var num=fn_at_long(posicion)
alert("380 + 2 = "+ num)
function ejemplo(){
alert("hola")
return 382
}
Ver también <<
regtimer>>
Volver arriba
waitfor
La función "waitfor", espera la cantidad especificada de milisegundos y luego continúa la ejecución del programa.
Sintaxis
Parámetros
numero_entero
| Variable tipo número entero de 32 bits de TEIMSI. Indica el |
Valor devuelto
booleano "true"
| Variable tipo booleano. |
Ejemplo:
// El siguiente programa utiliza "waitfor".
alert("Esperar 1,5 segundos")
waitfor(1500)
alert("Listo!")
Ver también <<
regtimer>>
Volver arriba