MDI界面问题,大虾小虾都来光顾吧!!! (100分)

  • 主题发起人 主题发起人 wataki
  • 开始时间 开始时间
W

wataki

Unregistered / Unconfirmed
GUEST, unregistred user!
1.有一个toolbar,如何在程序中动态创建toolbutton

2.子窗体的windowstate属性选择wsMaximized,但每次创建子窗体时,都有一个最大化显
示过程,如何让他它一显示即在最大化状态

3.创建子窗体的语句
sbwhbpsbform:=tsbwhbpsbform.create(application);
Application.CreateForm(tsbwhbpsbform, sbwhbpsbform);
这两种有什么区别?

4.在我的另一个问题中
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1120772


来自:哈利波特, 时间:2002-5-24 11:52:00, ID:1121151
用assigned这个函数,来判断是否已经运行!!

if not assigned(form1) then
begin
form1:=tform1.create(application);
form1.show;
end
else
//可以什么也不做!
showmessage('窗口已经运行!!');

用assigned函数后一旦释放cafree子窗体,就无法再重建,为什么?

我在做erp的毕设,有很多问题要请教各位,请各位多多指点
这几天提了不少问题,分也不多了,各位就少赚一点吧,呵呵
我的QQ31633926
谢谢各位!!!




 
>>用assigned函数后一旦释放cafree子窗体,就无法再重建,为什么?
释放子窗体后再将窗体变量置空 form1:=nil
 
1.略
2,设置子窗体的windowstate(好像就是吧)为...max...
3,4,生成窗体的给你一个函数:
procedure OpenForm(FormClass: TFormClass; var fm; AOwner:TComponent);
var
i: integer;
Child:TForm;
begin
for i := 0 to Screen.FormCount -1 do
if Screen.Forms.ClassType=FormClass then
begin
Child:=Screen.Forms;
if Child.WindowState=wsMinimized then
ShowWindow(Child.handle,SW_SHOWNORMAL)
else
ShowWindow(Child.handle,SW_SHOWNA);
if (not Child.Visible) then Child.Visible:=True;
Child.BringToFront;
Child.Setfocus;
TForm(fm):=Child;
exit;
end;
Child:=TForm(FormClass.NewInstance);
TForm(fm):=Child;
Child.Create(AOwner);
end;
 
>>硬木花椒
第二个问题我就是那样做的
问题是这样会有一个动画效果,即从一般显示状态变为最大化状态,我想取消这一效果
让子窗体一出来就停留在最大化状态
 
3.>>>
两种方式创建的窗体的生成期不同
 
>>黑影
能否详细点?
 
因为子窗体是动态生成的嘛。
有两个笨方法:
1。工程加载的时候生成子窗体,但是hide,需要的时候show出来。
2。动态生成,在create or show事件中,
用户定义子窗体的width ,height一直到接近最大化,然后最大化,
不过不知道效果怎么样,你试一下告诉我呀。
 
算我一个吗?
 
第二个问题依然没有解决
是不是没有办法做到呢?
 
第二个问题跟windows个性化设置有关。
很多修改注册表的工具都可以做到让最大化的时候没有动画现实。
你可以down一个然后监视一下注册表,
应该是修改了某一项的属性的。
 
我觉得8D说的有一定的道理,可以试试效果,至于在程序中可以如下修改注册表:

窗口打开、缩小、关闭时是否显示动画过程
HKEY_CURRENT_USER/Control Panel/Desktop
在右边的窗口中新建一个字符串值:“MinAnimate”,数据为“0”表示不显示过程,“1”表示显示。
 
多人接受答案了。
 
问题2 可以使用LockwindowUpdate

参见 http://www.delphibbs.com/delphibbs/dispq.asp?lid=529023
 
后退
顶部