不是这样,应该是:
TSnapThread = class(TThread)
  private
    { Private declarations }
    m_hcg: LongWord;
    m_hWnd: LongWord;
    m_DC: LongWord;
    m_x,m_y,m_width,m_height:LongWord;    m_nBufSize:LongWord;
    m_Buf:Pchar;
  protected
    procedure Execute; override;
  public
    constructor Create(hcg:LongWord; hwnd:LongWord;
                       x,y,width,height:LongWord);
    destructor Destroy; override;
  end;destructor TSnapThread.Destroy;
begin
  ReleaseDC(m_hWnd, m_DC);
  FreeMem(m_Buf, m_nBufSize);
  inherited Destroy;
end;然后再主程序中可以这样建立和释放,
var
  m_SnapThread :TSnapThread;
begin
m_SnapThread := TSnapThread.Create(m_hcg, self.Handle, 4, 4, 100, 100);
。。
。。
m_SnapThread.Free;
end;