我写了个程序,在MDI子窗体中,调用另外一个MDI子窗体,并且通过dbgrid的dbclick事件向调用它的MDI窗体返回一个值,可是在返回时会出现一个致命的错误。请各位大哥看看到底是怎么回事呀!
-------
调用窗体:以下测试了booknum的返回值是正常的!
procedure Tbooklog.BitBtn2Click(Sender: TObject);
begin
  inherited;
  mainform.N60.Click ;
end;
被调用窗体:
procedure Tbookchoose.DBGrid1DblClick(Sender: TObject);
var
booknum:string;
begin
booknum:=dbgrid1.Fields[1].AsString ;
showmessage(''+booknum+'');
booklog.dbedit2.Text :=booknum;
bookchoose.Close ;
end;
--------
mainform.N60.click的代码:
procedure TMainForm.N60Click(Sender: TObject);
var
newform:Tbookchoose;
begin
 if findform('图书查询')=false then
  begin
  newform:=Tbookchoose.Create(application);
  newform.Caption :='图书查询';
  end;
end;

解决方案 »

  1.   

    为什么不用fsNormal作为被调用窗口类型?错误信息能提供吗?
      

  2.   

    你procedure Tbookchoose.DBGrid1DblClick(Sender: TObject);这个有没有声明为公有函数?
      

  3.   

    你procedure Tbookchoose.DBGrid1DblClick(Sender: TObject);这个有没有声明为公有函数?
    ---------------------------------------------------------
    这个要声明为公共函数才能被其他模块所调用吗?,我只是在USES的后面加上了这个bookchoose的单元!大哥能解释一下吗?