#1393 closed defect (worksforme)
Show no oculta los mensajes de la inclusión de paquetes
Reported by: | imendez | Owned by: | Jorge |
---|---|---|---|
Priority: | normal | Milestone: | Mantainance |
Component: | GUI Tol Packages | Version: | head |
Severity: | normal | Keywords: | |
Cc: |
Description
Hola, la función Show no es capaz de ocultar los mensajes que se muestran al incluir un paquete. Se puede ver con el siguiente código:
Real Show(0, "ALL"); WriteLn("Hola"); #Require MMS; Real Show(1, "ALL"); WriteLn("Adios");
Un saludo.
Change History (4)
comment:1 Changed 13 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:2 Changed 13 years ago by
Resolution: | fixed |
---|---|
Status: | closed → reopened |
comment:3 Changed 13 years ago by
Resolution: | → worksforme |
---|---|
Status: | reopened → closed |
Ya veo lo que pasa: el #Require
es una macro del parser que se ejecuta en tiempo de reconocimiento sintáctico, es decir antes de que se ejecute el código por lo que el Show(0,"ALL")
aún no ha tenido lugar cuando se hace el #Require
.
Esto es así porque de otra forma si usaras una estructura o una clase definida en el paquete el parser no la reconocería y daría error sintáctico.
Si queremos eliminar los mensajes deberemos ejecutar el Show(0,"ALL")
antes, bien en la ventana de eval bien en un archivo TOL compilado antes del que contenga el #Require
No sé si es un defecto o no ni si supone mayor o menor problema pero no hay nada que hacer al respecto,
Gracias por reportarlo de todas formas porque es algo que hay que tener en cuenta y que no sabíamos.
comment:4 Changed 13 years ago by
Vale, entendido. De hecho estaba reportando otro ticket relacionado con #Require y me he acordado de este.
Lo nuevo que me ocurre es que #Require se compila aunque haya un error sintáctico, pero claro al leer tu explicación queda claro que es porque el Parser se ejecuta después:
Set CjtoError = EvalSet( #Require MMS
Al compilar, primero se incluye el paquete y después devuelve un error sintáctico (por cierto, en la segunda línea, en lugar de en la primera).
Un saludo.
No sé qué es lo que puede estar pasando. Lo miraré.