有三个窗体,form1,form2,form3,form1是主窗体,form2,form3是子窗体。form1调用form2,form2调用form3,form3中自定义了一个属性prop1,定义形式如下property prop1 : string read fProp1 write fProp1在form2中对form3.prop1进行赋值,赋值语句如下。
if not assigned(form3) then
begin
form3 := Tform3.create(self);
form3.prop1 := 'test';
form3.show;
end;
在form3显示的时候发现prop1并没有被赋值'test',不解。请问这是什么原因?如果form3是模态窗体,通过下面的语句对prop1赋值,则可以
form3 := TForm3.create(nil);
try
form3.prop1 := 'test';
form3.showmodal;
finally
from3.release;
end;
请赐教,谢谢!
if not assigned(form3) then
begin
form3 := Tform3.create(self);
form3.prop1 := 'test';
form3.show;
end;
在form3显示的时候发现prop1并没有被赋值'test',不解。请问这是什么原因?如果form3是模态窗体,通过下面的语句对prop1赋值,则可以
form3 := TForm3.create(nil);
try
form3.prop1 := 'test';
form3.showmodal;
finally
from3.release;
end;
请赐教,谢谢!
解决方案 »
- Delphi中捕获了一个滚动条滚动的 消息,如何判断滚动条的方向
- DBGRID如何实现上下行互换?
- delphi2005 update 3 刚刚发布,注册用户可下载
- adoquery连接问题
- 如何把一个edit.text的内容追加到sql server 数据库中,在线等待!!!
- 高分请教大虾吗关于类似TDBGrid支持打印预栏的控件的网站或源码!
- 如何在DLL中放置资源!!!!!!!高手请入!!!
- sql语句 ,高手帮忙。。。
- 国庆,散分兼一个小问题..
- delphi如何判断一字符串是不是合法网址?
- 要想把 TEdit 在 Enabled:=False 后,其背景变成灰色,应该在哪里写代码?
- 关于delphi团队开发的问题
var
newform3: Tform3
begin
newform3:= Tform3.Create(self);
NewFOrm3.prop1:= 'text'
NewForm3.show;
end;
如果是自动创建的话,是不会立即显示的。而你上面的代码也不会被执行。
if not assigned(form2) then
begin
form2 := Tform2.create(self);
form2.show;
end;
form2中放一个按钮,事件如下
if not assigned(form3) then
begin
form3 := Tform3.create(self);
form3.prop1 := 'test';
form3.show;
end;
form3中放一个edit,用来显示prop1
procedure TForm3.FormShow(Sender: TObject);
begin
edit1.Text := fprop1;
end;
form3中属性的定义
private
fProp1 : string;
{ Private declarations }
public
property prop1 : string read fProp1 write fProp1;
{ Public declarations }
end;
我原来也遇到这个问题,后来想问,但一直都望了!