几个很菜的问题,望高手指教(0分)

  • 主题发起人 lonely_chet
  • 开始时间
L

lonely_chet

Unregistered / Unconfirmed
GUEST, unregistred user!
1、在Form中插了个Image,然后还有几个bitbtn,能不能把bitbtn设置成透明的啊?这样
才能和Image融为一体,不然就象是几块膏药一样啊,难看。
2、主Form中通过几个不同的bitbtn来触发show几个不同的窗口。其中主Form的FormStyle属性
设置为fsMDIForm,几个show出来的Form的FormStyle属性设置成fsNormal。当我在Project|
Option中把那几个show的窗口从自动创建移动到可用窗口栏后,运行程序时点击到相应的bitbtn
时就会报错。这是什么原因啊??? 实在是疑惑啊[:(]
3、主Form中通过几个不同的bitbtn来触发show几个不同的窗口。在点击bitbtn时,如何能够检测
要show的窗口是否已经存在(已经show了)?如果已经存在(已经show了),则将其变为当前窗口啊?
 
1.用speedbutton或其他第三方控件
2.onclick事件中
application.createform(...,...)具体参数自己看
子form.show
 
你的主Form的FormStyle属性设置为fsMDIForm,其他被调用的要设置为fsMDIChild,你试试
 
1。1class控件好像可以满足你的要求
2。你的子窗体是怎么创建的?
3。可先判断 子窗体这个变量是否为nil(设计到问题2)
 
3.防止出现一个 Form 的多个实例:
If not Assigned( SomeForm ) then //也可写为 If SomeForm = nil then
SomeForm ;= TSomeForm.Create(Application);
SomeForm.Show;
 
1.可以选择SpeetBtn,设定其Transparent值为true,Flat设为true;此speetbutton就和Image
融为一体。
2.太明白。
3.你可以使用FindWindows函数来检测是否存在某一窗体。
 
第一问: 目前看来Delphi本身自带的控件中只能用SpeedButton可以
满足你的要求了,如果一定要使用BitBtn可能就要继承一下
写一个新的控件出来了。

第二部: 因为你把那几个窗口移走到了手动建立区,所以在显示时就
不能只调用一句“Form1.show;”就完事了,要用:
Form1 := TForm1.Create(self);
Form1.show;
这样才行。而且最好用如下代码:
try
Form1 := TForm1.Create(self);
Form1.show;
except
Form1.Free; //防止建立窗体时遇到意外,而造成内存泄露
end;
第三问: 有很多种方法,可以参照“覆雨翻云”的方法,如果觉得这样不太明白
的话,可以在建立窗体时生成一些标志性的变量体,再次点击按钮时检
查这些变量。

希望以上的内容可以帮到你。
 
顶部