![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola,
Ejem... pero, esto no es nuevo... quiero decir, lo que hace "CnPack" y otros "expertos" es usar la API que ofrece Delphi, precisamente, para que este tipo de programas puedan interactuar con el propio entorno. Este API tiene el nombre de "Open Tools API", y, por ejemplo, en Delphi.About se encuentran varios artículos al respecto. Así que la función "IdeSetEditorSelectedLines()" probablemente pertenece a "CnPack" y hace uso de las interfaces que proporciona la "Open Tools API" para hacer su trabajo. Lo que sí es cierto es que impresiona, es decir, cuando yo supe de esto también vi un montón de posibilidades... y, bueno, ahí está "CnPack", por ejemplo, para demostrar que esto es así. Hace tiempo escribí ciertos "Expertos del ClubDelphi" que no llegué a publicar nunca, y que, precisamente, hacen cierto uso de la "Open Tools API" de Delphi. Adjunto los archivos que tengo por aquí guardados. Y copio a continuación el contenido de una unidad que llamé en un arrebato de originalidad "UtilesIDE.pas":
PD. Se me olvidó comentar que todo lo que yo usé de "Tools API", si no recuerdo mal, se basó en la Jedi Library, es decir, que, en alguna de las unidades conque se cuenta en la "JCL", se encuentran implementadas no pocas funciones y procedimientos que nos pueden servir como interfaz de la interfaz, es decir, que nos hacen más sencillo trabajar con "ToolAPI". Última edición por dec fecha: 14-12-2007 a las 12:01:30. |
|
#2
|
||||
|
||||
|
Esto.... ¿he dicho yo que era algo nuevo?
.Lo que yo estoy haciendo es usándolo bajo cnWizard con el cnDebugger. De hecho, mi "primer experto" lo construí en apenas 2 horas sin leer demasiada literatura. Si tengo este código:
Mi experto modifica el código y añade:
cnDebugger: es un depurador externo que trae implementado cnWizard. cnDebugger.LogMsg: añade un mensaje a ese depurador. "Mi experto" añade esa línea de Log para todos los procedimientos que tenga la unidad que estoy creando en mi programa final. Puesto que en DBGridCellPaint se incluye el modificador // Ignore Log, en ese procedimiento no se añaden líneas de debug. Cuando usar "mi experto": Estoy loco con una serie de rutinas que no muestran excepciones, pero no hacen lo que yo espero. En lugar de usar puntos de ruptura, Call Stack y demás, ejecuto ese experto y obtengo lo que podríamos llamar un "dynamic Call Stack" que mostrará en el log las llamadas a todos los procedimientos/eventos. Obviamente he realizado otro experto (copiando y pegando) que elimina las líneas "cnDebugger.LogMsg" de todos los procedimientos. Con solo 3 clics de ratón, puedo añadir 20 ó 30 trazas al programa que estoy realizando, depurando el programa de forma más cómoda si cabe. ¿útil? pse, no sé, el tiempo lo dirá .Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Adios rios, adios fontes, adios regatos pequenos | marcoszorrilla | Noticias | 1 | 26-10-2005 23:07:31 |
| Nueva versión de GExperts. | moesis | Noticias | 0 | 07-08-2004 19:07:32 |
| Triste adiós para Mario | santana | Humor | 0 | 11-07-2004 05:45:10 |
| PHP 5 RC1: Bienvenido al maravilloso mundo de los objetos | kinobi | PHP | 1 | 20-03-2004 21:32:51 |
| Adiós al BDE | Ruben_Cu | Firebird e Interbase | 4 | 22-06-2003 18:49:19 |
|