unit GlobalForm; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TGlobalFrm = class(TForm) GlobalProcessEdit: TEdit; GlobalThreadEdit: TEdit; LocalThreadEdit: TEdit; SharedDataEdit: TEdit; ReadBtn: TButton; IncBtn: TButton; DecBtn: TButton; SetBtn: TButton; CreateThread: TButton; procedure ReadBtnClick(Sender: TObject); procedure IncBtnClick(Sender: TObject); procedure DecBtnClick(Sender: TObject); procedure SetBtnClick(Sender: TObject); procedure CreateThreadClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var GlobalFrm: TGlobalFrm; implementation uses GlobalHdr, DelayThread; procedure ReadInfo(var GlobalInfo: TGlobalInfo; var LocalThreads: integer); stdcall; external 'GlobalData.dll'; procedure SetSharedInteger(NewValue: integer); stdcall; external 'GlobalData.dll'; procedure IncSharedInteger; stdcall; external 'GlobalData.dll'; procedure DecSharedInteger; stdcall; external 'GlobalData.dll'; {$R *.DFM} procedure TGlobalFrm.ReadBtnClick(Sender: TObject); var GlobalInfo: TGlobalInfo; LocalThreads: integer; begin ReadInfo(GlobalInfo, LocalThreads); GlobalProcessEdit.Text := IntToStr(GlobalInfo.GlobalProcesses); GlobalThreadEdit.Text := IntToStr(GlobalInfo.GlobalThreads); SharedDataEdit.Text := IntToStr(GlobalInfo.SharedNumber); LocalThreadEdit.Text := IntToStr(LocalThreads); end; procedure TGlobalFrm.IncBtnClick(Sender: TObject); begin IncSharedInteger; ReadBtnClick(Sender); end; procedure TGlobalFrm.DecBtnClick(Sender: TObject); begin DecSharedInteger; ReadBtnClick(Sender); end; procedure TGlobalFrm.SetBtnClick(Sender: TObject); var NewInt: integer; begin NewInt := StrToInt(SharedDataEdit.Text); SetSharedInteger(NewInt); end; procedure TGlobalFrm.CreateThreadClick(Sender: TObject); var NewThread: TDelayThread; begin NewThread := TDelayThread.Create(true); NewThread.FreeOnTerminate := true; NewThread.Resume; end; end.