TEIMSI
Plataforma del desarrollador de textos programados
Inicio|Utilidades|Foro|Documentación

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
waitevent()
 

Parámetros
(ninguno)
 

Valor devuelto
(ninguno)
 

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
openapp(senda)
 

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
fn_at_long(entero)
 

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
waitfor(numero_entero)
 

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