unit SyncForm; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, ChecksumList, CheckThread; type TForm1 = class(TForm) FileMemo: TMemo; Timer1: TTimer; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } FChecksumList: TChecksumList; FCheckThread: TCheckThread; public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin FChecksumList := TChecksumList.Create; FCheckThread := TCheckThread.Create(true); with FCheckThread do begin StartDir := 'D:\Netscape Profiles\Martin\News\host-newsgroups.borland.com\'; CheckList := FChecksumList; Resume; end; end; procedure TForm1.FormDestroy(Sender: TObject); begin with FCheckThread do begin Terminate; WaitFor; Free; end; FChecksumList.Free; end; procedure TForm1.Timer1Timer(Sender: TObject); var TempList: TStringList; begin TempList := FChecksumList.GetChecksumList; with FileMemo do begin with Lines do begin BeginUpdate; Assign(TempList); EndUpdate; end; selstart := gettextlen; perform(em_scrollcaret, 0, 0); end; TempList.Free; end; end.