unit NumberForm; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TNumberFrm = class(TForm) GetBtn: TButton; SetBtn: TButton; NumberEdit: TEdit; procedure GetBtnClick(Sender: TObject); procedure SetBtnClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var NumberFrm: TNumberFrm; implementation {$R *.DFM} function GetNumber:integer;stdcall;external 'NumberDLL.dll'; procedure SetNumber(NewNumber:integer);stdcall;external 'NumberDLL.dll'; procedure TNumberFrm.GetBtnClick(Sender: TObject); begin NumberEdit.Text := IntToStr(GetNumber); end; procedure TNumberFrm.SetBtnClick(Sender: TObject); begin try SetNumber(StrToInt(NumberEdit.Text)); except on EConvertError do ShowMessage('Not a valid number. Number not set.'); end; end; end.