社区
Delphi
帖子详情
一个form调用的问题
alexsten
2002-06-19 09:58:14
有三个form:form1,form2,form3,
form1为主窗口,form2和form3是用来动态生成的
现在在form1中点一个button,动态创建form2
点form2的一个button,动态创建form3
在form3中要调用或者修改form2中声明的一个public变量
程序运行出错了,form2和form3都是nil
如何解决?
...全文
83
11
打赏
收藏
一个form调用的问题
有三个form:form1,form2,form3, form1为主窗口,form2和form3是用来动态生成的 现在在form1中点一个button,动态创建form2 点form2的一个button,动态创建form3 在form3中要调用或者修改form2中声明的一个public变量 程序运行出错了,form2和form3都是nil 如何解决?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
knock
2002-06-19
打赏
举报
回复
在form2和form3中互相调用那是肯定不对的,那会造成循环!
***在unit2的interface部分uses unit3
在unit3的inplementation部分uses unit2***//表示局部引用
这样是可以的。也可以都放在inplementation区。
alexsten
2002-06-19
打赏
举报
回复
to superljj:
试了一下,是可以执行了!
可以说说这是为了什么原因呢?
为什么会出这样的错误呢?
superljj
2002-06-19
打赏
举报
回复
procedure TForm1.Button1Click(Sender: TObject);
begin
Application.CreateForm(TForm2, Form2);
Form2.show;
end;
end.
procedure TForm2.Button2Click(Sender: TObject);
begin
Application.CreateForm(TForm3, Form3);
Form3.Show;
end;
end.
alexsten
2002-06-19
打赏
举报
回复
to yansea:
有啊,unit3里面有uses unit2
superljj
2002-06-19
打赏
举报
回复
同意楼上.
alexsten
2002-06-19
打赏
举报
回复
在unit2的interface部分uses unit3
在unit3的interface部分uses unit2
编译无法通过
错误:Circular unit reference to "unit2"
yansea
2002-06-19
打赏
举报
回复
unit3 没有use unit2
gxyc76
2002-06-19
打赏
举报
回复
现在在form1中点一个button,动态创建form2
var
myform2 :TForm2;
myform2 :=TForm2.Create(nil);
点form2的一个button,动态创建form3
var
myform3 :TForm3;
myform3 :=TForm3.Create(nil);
在form3中要调用或者修改form2中声明的一个public变量
因为form2与form3要进行单元互调,所以uses unit2,uses unit3必需放在interface部分.
alexsten
2002-06-19
打赏
举报
回复
底下是代码:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
aaa : String;
end;
var
Form1: TForm1;
implementation
uses Unit2,Unit3;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
F2:TForm2;
begin
F2:=Tform2.create(nil);
F2.show;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Edit1: TEdit;
Button2: TButton;
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
a:String;
end;
var
Form2:Tform2;
implementation
uses Unit1,Unit3;
{$R *.dfm}
procedure TForm2.Button2Click(Sender: TObject);
var
form3:TForm3;
begin
Form3:=TForm3.Create(self);
Form3.Show;
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm3 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
form2.Edit1.Text := form3.Edit1.text;
form2.a := form3.edit1.text;
end;
end.
yansea
2002-06-19
打赏
举报
回复
你是怎么创建的?如果变量在form的public里声明,可以用form2.变量名引用~~~~~似乎不应该有问题
alexsten
2002-06-19
打赏
举报
回复
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
aaa : String;
end;
var
Form1: TForm1;
implementation
uses Unit2,Unit3;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
F2:TForm2;
begin
F2:=Tform2.create(nil);
F2.show;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Edit1: TEdit;
Button2: TButton;
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
a:String;
end;
var
Form2:Tform2;
implementation
uses Unit1,Unit3;
{$R *.dfm}
procedure TForm2.Button2Click(Sender: TObject);
var
form3:TForm3;
begin
Form3:=TForm3.Create(self);
Form3.Show;
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm3 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
form2.Edit1.Text := form3.Edit1.text;
form2.a := form3.edit1.text;
end;
end.
Python自动化测试之Selenium
Selenium 测试环境搭建单元测试、生成测试报告、定位元素、WebDriver属性和方法、WebElement属性和方法、操作
form
表单、操作下拉列表、处理等待、远程测试、Selenium Grid、鼠标事件、键盘事件、
调用
js、屏幕截图、...
c#_
Form
调用
另
一个
Form
中的按钮和方法
c#_
Form
调用
另
一个
Form
中的按钮和方法 本文主要记录实现在
Form
1中
调用
Form
_call中的button按钮和方法。算是
一个
笔记,适合初入门的童鞋参考。 首先在同
一个
项目中,分别新建
一个
名为
Form
1的windows 窗体和
一个
名为...
Form
调用
另
一个
Form
说明
Form
调用
Form
是我们经常回遇到的
问题
。可以使用
Form
提供的API来实现。在
Form
的API中提供了如下几个api实现
form
调用
。 |-call_
form
|-new_
form
|-open_
form
call_
form
打开
一个
新的
form
。不过保持父
form
的状态。...
C#
一个
Form
中用控件
调用
另
一个
Form
相关
Form
为
Form
1 和AddUsers
Form
, Button为button_AddUsers 位于
Form
1 上, 点击此Button 可跳到AddUsers
Form
。 解答: 1.
Form
1中,button添加click事件,然后加入如下代码 public static AddUsers
Form
Add
Form
...
C#如何引用另
一个
form
里面的变量
C#如何引用另
一个
form
中的变量
Delphi
5,392
社区成员
262,731
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章