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:
Código Delphi
[-]
procedure TForm1.AbreTablas(Sender:TObject);
begin
bla blah
end;
procedure TForm1.DbgridCellPaint(...);
begin end;
procedure TForm1.CierraTablas;
begin
blah blah
end;
Mi experto modifica el código y añade:
Código Delphi
[-]
procedure TForm1.AbreTablas(Sender:TObject);
begin
cnDebugger.LogMsg('TForm1.AbreTablas');
bla blah
end;
procedure TForm1.DbgridCellPaint(...);
begin end;
procedure TForm1.CierraTablas;
begin
cnDebugger.LogMsg('TForm1.CierraTablas');
blah blah
end;
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