⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 thdlogmghandlepas.pas

📁 Delphi编程宝典光盘] 商业源码+精彩源码+精选控件+经典工具+光盘定制 经典编程资源 精彩不容错过
💻 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 + -