怎的在Form1中调用Form2里的带参数自定义procedure

怎样在Form1中调用Form2里的带参数自定义procedure。
各位高手,我有两个问题,请各位高手帮我看看如何解决。

第一个问题:
    我想建立两个Form,在Form1中设置2个按钮(Add和Edit),在Form2中建立两个GroupBox,在这两个GroupBox中分别添加Label和Edit组件。目的是这样:
    
    当单击Form1中的Add按钮时,调用Form2,同时将Form2中GroupBox1中TLabel组件除外的其它所有输入性质的组件的Enabled设为True,将Form2中GroupBox2中TLabel组件除外的其它所有输入性质的组件的Enabled设为False;
    当单击Form1中的Edit按钮时,调用Form2,同时将Form2中GroupBox2中TLabel组件除外的其它所有输入性质的组件的Enabled设为True,将Form2中GroupBox1中TLabel组件除外的其它所有输入性质的组件的Enabled设为False。

    (即:单击Form1中的Add、Edit按钮后,同时调用Form2,但Form2中的两个GroupBox内的组件的Enabled值相反)

     问题:我觉得应该在Form2中编写“自定义事件”,但参数不会写。我写的代码如下所示,但运行后不起作用。

     代码如下:

unit Form2;

……

public
    { Public declarations }
    procedure SetComponentState(AGroupNum: TGroupBox);

implementation

{$R *.dfm}

uses Form1;

procedure TForm2.SetComponentState(AGroupBoxNum: Integer);
Var
  ComTotal: Integer;
begin
 IF AGroupBoxNum = 1 Then
  begin
   For ComTotal := 0 To GroupBox2.ControlCount -1 Do
    begin
     GroupBox2.Controls[ComTotal].Enabled := False;
    end;
  end;
 IF AGroupBoxNum = 2 Then
  begin
   For ComTotal := 0 To GroupBox1.ControlCount -1 Do
    begin
     GroupBox1.Controls[ComTotal].Enabled := False;
    end;
  end;
end;



unit Unit1;

……

procedure TForm1.Button1Click(Sender: TObject);
begin
 Try
   Application.CreateForm(TForm2, Form2);
   Form2.ShowModal;
   Form2.Free;
   Form2.SetComponentState(1);
 Except
   Form2.Free;
 end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Try
   Application.CreateForm(TForm2, Form2);
   Form2.ShowModal;
   Form2.Free;
   Form2.SetComponentState(2);
 Except
   Form2.Free;
 end;
end;



第二个问题:

    数据库表中,有“编号、日期、地点、检查人、内容、措施、复查日期、复查人、复查结果”等几个字段。其中“内容”、“措施”两个字段是对应的,有一条内容,就必有一条措施。并且,每次输入都会输入成如下这样:

    编号    检查日期    地点    检查人  内容         措施       复查日期       其它字段省略
     1       12-7-6   某地     某人  一条内容     一条措施  第二天或第三天
     2         同上     同上     同上  与上不同     与上不同  第二天或第三天
     3         同上     同上     同上  与上不同     与上不同  第二天或第三天
     4         同上   另一地点   同上  一条内容     一条措施  第二天或第三天