动态创建FRAME,如何调用相应事件?简单,100分
我建好了一个Frame,里面有个listview.
然后在主窗体中动态调用:
var
Frame1 :Tframe;
begin
Frame1:= f_listview1.TFrame1.Create(self);
Frame1.Parent:=self;
Frame1.Top :=100;
其中f_listview1就是我创建的FRAME窗体,在主窗体中调用成功。
现在有两个问题:
1、如何判断调用的实例已经存在从而在再次调用前将其FREE?用if Frame1:=nil无法判断。
2、调用后我的目的是让里面的listview读数据库内容,那么这个读的过程是在哪里进行?如果是在FRAME窗口中,那么应该是什么事件?而在主窗体里好象无法访问里面的listview控件(因为是动态生成)
问题点数:100、回复次数:7Top
1 楼rikky(Java转型中ing...)回复于 2003-06-02 18:17:08 得分 40
1.
就用这个判断是可以的啊
if Frame1=nil then
begin
Delete Frame1;
Frame1 = nil;
end
2.
在Frame1的构造函数里面完成
Top
2 楼tw829(唐牛)回复于 2003-06-02 18:22:20 得分 0
upTop
3 楼bbs791109(小别)回复于 2003-06-02 18:23:21 得分 30
先寫一自定議事件﹐比如﹕ONClick.
生成listview時﹕listview.onclick:=ONClick;
if Frame1=nil then
begin
Delete Frame1;
Frame1 = nil;
end
Top
4 楼ljccyzy(飞云)回复于 2003-06-02 18:25:28 得分 0
同意楼上的说法。Top
5 楼Eastunfail(龍子龍孫) (Serpent's Embrace)回复于 2003-06-02 18:29:53 得分 0
1."if Frame1:=nil无法判断"当然无法判断,因为“:=”不是比较运算符
2.你在设计Frame的时候,已知那个listView是动态创建的,你想要在别的地方访问那个listview,你可以将listview声明在public域中。
事件问题,设计时的类可以直接在Object Inspector中编辑。动态创建的,只需要设置OnXXXX属性Top
6 楼whitetiger8(键盘未敲坏,基本功未练成)回复于 2003-06-02 19:09:56 得分 30
一楼的说的好Top
7 楼lonaerd(redhat10)回复于 2003-06-03 09:26:59 得分 0
谢谢各位!
但是,当我点击主窗口的按钮调用FRAME后,此时FRAME里的LISTVIEW就要显示数据了(读数据库),因此没有用到ONClick等事件啊!而我在主窗口的按钮里是无法直接访问到FRAME里的 LISTVIEW的呀。Top




