各位高手,我有两个问题,请各位高手帮我看看如何解决。第一个问题:
    我想建立两个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         同上   另一地点   同上  一条内容     一条措施  第二天或第三天
     5         同上     同上     同上  与上不同     与上不同  第二天或第三天
     6       12-7-7   某地     某人  一条内容     一条措施  第二天或第三天
     7         同上     同上     同上  与上不同     与上不同  第二天或第三天    以上表中,即:每天会去不同地点检查(最少1个地点,但这种情况几乎没有),每一个地点都会有多条内容,每一条内容都会对应一条措施。(同时,日期不同的时候,即便内容、措施一样,也必须为一条新记录)复查日期为检查日期的第2或第3、4天。    请问各位高手:
    2、这样的表怎么做主表和从表?
    3、由于“每天会去不同地点检查(最少1个地点,但这种情况几乎没有),每一个地点都会有多条内容,每一条内容都会对应一条措施。”。如果每输入一条就保存一条,太麻烦(每天都会有不少于10条需要输入),怎样设计窗体使输入过程简单?是否能够每次输入都先输入多条记录,然后一起保存?如能,怎样实现?

解决方案 »

  1.   

    Form2.ShowModal;
      Form2.Free;
      Form2.SetComponentState(1);都释放了还怎么设置Form2.SetComponentState(1);
    Form2.ShowModal;
    Form2.Free;
      

  2.   

    函数声明和实际不相符呀
    procedure SetComponentState(AGroupNum: TGroupBox);
    procedure TForm2.SetComponentState(AGroupBoxNum: Integer);可以改成这样:
    private
     procedure SetComponentState;
    public
     AGroupBoxNum:Integer;implementation{$R *.dfm}procedure TForm2.SetComponentState;
    begin
     ...
    end;procedure TForm2.FormShow(Sender: TObject);
    begin
     SetComponentState;
    end;其它窗体调用:
    try
      Application.CreateForm(TForm2, Form2);
      Form2.AGroupBoxNum:=0;
      Form2.ShowModal;
     finally
      Form2.Free;
     end;