📄 thdlogmghandlepas.pas
字号:
unit thdlogmghandlepas;
interface
uses
Classes,windows,logmanagerpas,stdctrls;
type
Tthdloghandle = class(TThread)
private
{ Private declarations }
FLogMgr: TLogManager;
FNewLogAddEvent: TlogEvent;
fmemolog:Tmemo;
protected
procedure Execute; override;
public
constructor create(ALogMgr: TLogManager;memolog:Tmemo);
destructor destroy; override;
end;
implementation
constructor Tthdloghandle.create(ALogMgr: TLogManager;memolog:Tmemo);
begin
inherited create(true);
FLogMgr := ALogMgr;
fmemolog:=memolog;
FNewLogAddEvent := TlogEvent.Create('HAS_NEW_LOG_ADDED', false);
Priority := tpLower;
end;
destructor Tthdloghandle.destroy;
begin
FNewLogAddEvent.Free; //yj
inherited destroy;
end;
procedure Tthdloghandle.Execute;
var
sTmp: string;
begin
{ Place thread code here }
while true and (not terminated) do begin
if FLogMgr.HasWaitingLog then begin
sTmp := FLogMgr.GetFirstWaitingLog;
if sTmp <> '' then begin
FLogMgr.WriteLogToFile(sTmp);
fmemolog.Lines.Add(sTmp);
end;
if fmemolog.Lines.Count>180 then begin //xiao
fmemolog.Lines.Delete(0);
end;
//此处调用VCL控件应使用Synchronize同步,你在编程时可以加上
//我这么做并没有报错
//有问题可以与我联系yj.lucky@X263.net
end else
FNewLogAddEvent.Wait(INFINITE);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -