首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

在Dll中新建两个窗口,要求第一个窗口能调用到第二个窗口中的数据。代码如下,但是出错了解决办法

2012-02-11 
在Dll中新建两个窗口,要求第一个窗口能调用到第二个窗口中的数据。代码如下,但是出错了窗口新建:procedureT

在Dll中新建两个窗口,要求第一个窗口能调用到第二个窗口中的数据。代码如下,但是出错了
窗口新建:
procedure   TForm1.CustomItem5Click(Sender:   TObject);
begin
  with   TForm2.Create(self)   do
  begin
    ShowModal   ;
    Free;
  end;
  SetFocus;
end;

打开第二个窗口后,
procedure   TForm2.Btn_AddtClick(Sender:   TObject);
begin
  form1.edit1.text:=edit2.text;
  self.close;                 //关闭form2,希望Form1.Edit1中的内容=form2.edit2
end;

出错:Access   violation   at   address   01879062   in   module 'Report.dll '.Read   of   address   000003A0.


[解决办法]
procedure TForm1.CustomItem5Click(Sender: TObject);
begin
with TForm2.Create(self) do
begin
Show ;
end;
SetFocus;
end;

打开第二个窗口后,
procedure TForm2.Btn_AddtClick(Sender: TObject);
begin
form1.edit1.text:=edit2.text;
self.close; //关闭form2,希望Form1.Edit1中的内容=form2.edit2
end;
[解决办法]
楼主是调用Dll,创建form1的时候出错吧?上面的代码应该没问题
[解决办法]
procedure TForm2.Btn_AddtClick(Sender: TObject);
begin
form1.edit1.text:=edit2.text; ------------------------是这里出错吧?
self.close; //关闭form2,希望Form1.Edit1中的内容=form2.edit2
end;


你的TFORM1创建的时候没有将其赋给Form1

[解决办法]
那你创建form1的时候这样写:
form1:=Tform1.Create(nil);
[解决办法]
procedure TForm1.CustomItem5Click(Sender: TObject);
begin
with TForm2.Create(self) do
begin
ShowModal ;
Free;
end;
SetFocus;
end;

procedure TForm2.Btn_AddtClick(Sender: TObject);
begin
//form1.edit1.text:=edit2.text;//此form1非彼form1啊
TForm1(Owner).Edit1.Text := edit2.Text
self.close;
end;

[解决办法]
同意楼上的,个人觉得你因该在TForm2中定义一个事件,在TForm1中引用

热点排行