thdlogmghandlepas.pas
来自「Delphi编程宝典光盘] 商业源码+精彩源码+精选控件+经典工具+光盘定制 」· PAS 代码 · 共 64 行
PAS
64 行
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 + =
减小字号Ctrl + -
显示快捷键?