Buenas colegas. aqui tengo otra experiencia que quiero compartir con ustedes.
Para la mayoria de mis proyectos, necesito hacer un monitoreo de los eventos que sucede durante la ejecución. de esta forma puedo depurar mas los errores encontrados.
En esta oportunidad, mi clase monitoreo para ustedes.
Código Delphi
[-]
type
TMonitorLog = class
private
Fventana: tmemo;
Fbolsa: tstringlist;
procedure Setventana(const value: tmemo);
public
constructor create; overload;
destructor destroy; overload;
procedure evento(msg: string); procedure volcar(archivo: string = '.\logs\eventos.log');
property ventana: tmemo read Fventana write Setventana;
end;
implements
constructor TMonitorLog.create;
begin
inherited;
Fbolsa := tstringlist.create;
Fbolsa.Add('Eventos: ' + datetimetostr(now));
end;
destructor TMonitorLog.destroy;
begin
Fbolsa.Free; inherited;
end;
procedure TMonitorLog.evento(msg: string);
begin
if assigned(Fventana) then
begin
Fventana.Lines.Add(msg);
Fventana.Perform(EM_SCROLLCARET, SB_PAGEDOWN, 0);
end;
Fbolsa.Add(msg);
end;
procedure TMonitorLog.Setventana(const value: tmemo);
begin
Fventana := value;
Fventana.Lines.Clear;
Fventana.Lines.Add('Monitor de eventos: listo');
fventana.ScrollBars := ssVertical;
end;
procedure TMonitorLog.volcar(archivo: string);
begin
Fbolsa.SaveToFile(archivo);
Fbolsa.Add('volcado ok');
if assigned(Fventana) then
Fventana.Lines.Add('volcado ok');
end;
Desde ya, gracias por la atencion.
saludos cordiales.