Ok, im making my first ever address book, and in Delphi 7. I have the following code:

Code:
unit Details;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TfrmDetails = class(TForm)
    txtName: TEdit;
    lblName: TLabel;
    txtDateOfBirth: TEdit;
    lblDateOfBirth: TLabel;
    txtAddress: TMemo;
    lblAddress: TLabel;
    lblHomeNumber: TLabel;
    txtHomeNumber: TEdit;
    txtMobileNumber: TEdit;
    lblMobileNumber: TLabel;
    txtEmailAddress: TEdit;
    lblAIMContact: TLabel;
    txtNotes: TMemo;
    lblNotes: TLabel;
    cmdCancel: TBitBtn;
    cmdOK: TBitBtn;
    Procedure AddEntry(Fn,Ad,HP,M,E,N:string);
    procedure cmdCancelClick(Sender: TObject);
    procedure cmdOKClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmDetails: TfrmDetails;
  Rgn:THandle;


implementation

uses Main;

{$R *.dfm}

Procedure TfrmDetails.AddEntry(Fn,Ad,HP,M,E,N:string);
begin
     if Not fileExists(QFileName) then rewrite(QFile)
     else if Not Edit then begin
          i:=Fsize;
     end
     else begin
          frmMain.cboNameList.Items.Delete(i);
          i:=Found;
     end;
     seek(QFile,i);
     with Entries do begin
          FullName:=Fn;
          Address:=ad;
          Hphone:=hp;
          Mobile:=m;
          Email:=E;
          Note:=N;
          write(QFile,Entries);
     end;
     closefile(QFile);
     reset(QFile);
     fsize:=filesize(QFile);
     frmMain.cboNameList.Items.add(txtName.text);
     i:=frmMain.cboNameList.Items.IndexOf(txtName.text);
     frmMain.cboNameList.ItemIndex:=i;
end;

procedure TfrmDetails.cmdCancelClick(Sender: TObject);
begin
  Close;
end;

procedure TfrmDetails.cmdOKClick(Sender: TObject);
var n:integer;
begin
     if Not Edit then begin
        for n:=0 to frmMain.cboNameList.Items.count-1 do begin
            if txtName.text=frmMain.cboNameList.Items[n] then begin
               MessageBox(handle,'The name already exists! Type a different name.',
               'Name Exists',MB_Ok);
               exit;
            end;
        end;
     end;
     AddEntry(txtName.text,txtAddress.text,txtHomeNumber.text,txtMobileNumber.text,txtEmailAddress.text,txtNotes.text);
     frmMain.seekRecord;
     if Rgn<>0 then DeleteObject(Rgn);
     frmDetails.Close;
     frmDetails.Release;
end;

end.
But when i click my OK button, it errors. DOnt know the problem, anyone care to assist?