unit ReducedDeltaServerMain; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, uDAPoweredByDataAbstractButton, uROPoweredByRemObjectsButton; type TReducedDeltaServerMainForm = class(TForm) DAPoweredByDataAbstractButton1: TDAPoweredByDataAbstractButton; Memo: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } sync: TMultiReadExclusiveWriteSynchronizer; public { Public declarations } Procedure Log(const str: String); end; var ReducedDeltaServerMainForm: TReducedDeltaServerMainForm; implementation {$R *.dfm} { TReducedDeltaServerMainForm } procedure TReducedDeltaServerMainForm.Log(const str: String); begin sync.BeginWrite; try Memo.Lines.Add(str); finally sync.EndWrite; end; end; procedure TReducedDeltaServerMainForm.Button1Click(Sender: TObject); begin sync.BeginWrite; try Memo.Clear; finally sync.EndWrite; end; end; procedure TReducedDeltaServerMainForm.FormCreate(Sender: TObject); begin sync:= TMultiReadExclusiveWriteSynchronizer.Create; end; procedure TReducedDeltaServerMainForm.FormDestroy(Sender: TObject); begin sync.Free; end; end.