关于动态创建控件的存储问题。简单问题(50分)

  • 主题发起人 主题发起人 Pear
  • 开始时间 开始时间
P

Pear

Unregistered / Unconfirmed
GUEST, unregistred user!
动态创建的控件怎样存储呢?
在buttonclick事件中写入了以下内容:
CTabSheet:=TTabSheet.Create(PageControl1);
CTabSheet.Parent:=PageControl1;
CTabSheet.PageControl:=PageControl1;
CTabSheet.Caption:=XXX;
这样创建的tabsheet在下一下启动程时就消失了,请问怎样把它保存下来呢?
 
那为什么药用动态创建呢?
把它的visible属性设为fasle,当按钮按下时,设为true就行了.
当该窗体关闭时根据是否需要在设为false
 
不知你什么意思!
‘在下一下启动程时就消失了’,可以解释一下吗?

动态创建的东西,顾名思义,是在程序运行是创建,应该不会有问题!
 
>>gcq
大概是第二次运行是就不见了吧。

陈君凯方法不错。

 
弄个ini文件,把要显示的动态创建的控件的名字记录下,下次启动时读取,然后再次创建
能看明白吗?我的语言表达能力不太好。
 
to 陈君凯
  我也不知道要准备多少页啊,我不可能事先建立一大堆的页来浪费资源吧。

to CaoAizu
delphi本身不能实现这功能吗?我不想这么麻烦啊。有更好的方法吗?
 
to gcq
在ButtonClick事件中所动态创建的页在关闭程序后程序不会把它们保存起来,
再打开程序时那些页已经不见了。
 
当然是这样了, 你可以想办法存起来
 
不要在程序中定义该控件变量,将该控件变量定义为全局的。然后在程序退出时再释放掉!
 
不知道你设计这个Button究竟是什么用意?

如果你的用意是这个Button仅仅在第一次起个设置的话,只有使用CaoAizu所说的方法,用个文件保存起来,并且在程序启动的时候通过判断这个文件的内容已确定是否创建该Sheet;或者在注册表里保存一个键值也可以;

否则的话,动态创建的空件都是在程序启动以后再创建,其生命期只从执行Create起到程序结束,不可能还保留到下一次!
 
我明白了!如果用INI文件可以满足你的要求!而且再弄个Open、Save还可以保存许多
不同的所创建的页面!:)
不过既然动态创建,只要你点点MOUSE,用的着这么麻烦吗?
如果你把具体的要求贴出来,我们大家可以替你想想别的点子
 
  我的程序是用来管理数据的,动态创建的页是用来显示和编辑数据的。我在Form上
放了个DBGrid,动态创建页并选中该叶后就在PageControl.OnChange事件上把DBGrid
的Parent属性设为该页,而且还用了Filter把不要的数据过滤掉。但后就可以在该页
上编辑数据了。我真的要使用ini文件来保存页吗?
  明白我的意思吗?我的表达能力不大行,请见谅吧。
 
创建一个文件,把该生成的控件的相关的资料保存到这个文件中,在下一次启动时载入不就可以了吗???
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部