紧急问题,请各位高手指教(150分)

  • 主题发起人 主题发起人 mini_fx
  • 开始时间 开始时间
M

mini_fx

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手,请教三个问题,答对有奖(本来想多给点的,可惜只有这么点分了,总得留一个家底
是吧,所以只能给150分了)。
一、近日小生在做一个有关于MDI窗口的程序,我想得知当前打开的MDI子窗口的NAME属性。注意:
1、此MDI子窗口并非临时创建的,而是在开发时已经设计好的,程序中只是显示一下而已。
2、我不想拿显示的窗体NAME与程序中存在的所有MDI窗体NAME一一比较而得出这个结论。
3、MDI子窗体在同一时间显示的只有一或二个。
4、我想用得到的NAME关闭这个窗体。
5、请给出实例。
6、小生不胜感激。

二、动态创建复选框。
我想在程序运行过程中,动态的创建几个复选框在窗体上(数目不定)。
我是这样写的:
procedure Tform1.cmb_testclick(sender:Tobject);
var
cbx_test:Tcombobox;
begin
cbx_test:=Tcombobox.create(form1);
cbx_test.visible:=true;
end;
但却始终不见复选框出现在窗体上。
另外,我想知道如何同时动态的创建几个复选框在窗体上。各名称如何确定,是否用其NAME属性即可?
请给出实例。
另外,如果方便的话,告诉我如何能方便的确定哪些被选上了。

如何打开.cab文件
现有一个.cab文件,不知道里面的内容,很想知道里面的内容。
请给出实例(我的水平很菜的哦,请详细点!)。
 
一.
1.直接访问form的name属性就行。动态创建的childform有默认的name,如form2_1,form2_2...
当然,你也可以在创建时为其赋值:
with Tform2.Create(form1) do
name:=format('name_%d',[Self.MDIChildCount]);
childform将被命名为name_0,name_1....
2.mdichild的Zorder是与显示顺序相关的:如最上面childform的name属性可以这样得到:
mainform.mdichildren[0].name;
3.没什么关系。
4.name不能关系窗体。 ;-)
5.上面这些应该够了
6。不用

二.
动态创建的控件必须为其指定parent属性以确定解除关系。所以你应该:

procedure Tform1.cmb_testclick(sender:Tobject);
var
cbx_test:Tcombobox;
begin
cbx_test:=Tcombobox.create(form1);
cbx_test.parent:=self;//或application、panel1.....
cbx_test.visible:=true;
end;

<font color='red'>!!但是 ,combobox是复选框吗?</font>

如果用你上述方法创建,已经可以用cbx_test访问该控件,如果要创建多个,也可以这样:
with Tcombobox.Create(form1) do begin
name:=format('name_%d',[Self.MDIChildCount]);
parent:=form1;
end;
但这时虽然指定name属性,却不能用它来访问此控件,只能这样:
Tcombobox(form1.findcomponent('name_0')).droppeddown:=true;.......

判断checkbox可以这样
if Tcheckbox(form1.findcomponent('name_0')).checked then
........

三.如果要编程序打开,可以找一个现成的控件。
否则,嘿嘿,winrar就可以打开。

注:你的问题给50分就已经不少了。

 
同意 MENXIN
可惜可惜,来晚一步
 
3)winzip也可以
 
接受答案了.
 

Similar threads

后退
顶部