祝大家在新的一年里万事如意,多多发财!问题请教?帮助俺提前者有分!回答结果满意的不多,我决定分数推迟到明晚10点前给出! (300分)

  • 主题发起人 主题发起人 Ccmake
  • 开始时间 开始时间
C

Ccmake

Unregistered / Unconfirmed
GUEST, unregistred user!
各位富翁:
祝大家在新的一年里万事如意,多多发财!
言归正传,在DELPHI中如果要实现下面的要求,应用什么方法?
比如说一个项目存在三个以上的窗口,1为主窗口;2为多个管理模块窗口;
3为信息窗口。我的要求是窗口3必须总是位于这个项目所有窗口之上,就是说
不论窗口2是以SHOW方式,还是SHOWMODAL方式显示(这是个关键)
,窗口3必须总是在最上面。

 至于为什么窗口3要做成这样,目的1:我用它作为信息显示窗口;目的2:
我想用其替换MESSAGEBOX,作为提示及选择窗口。从而形成自己的风
格。但如果其窗口不能总是位于最上端的话,用户就无法看到信息或提示,当然
也就进行选择。

难点在于:当窗口2以SHOWMODAL方式显示时,这个时候窗口3会以
SHOW方式显示,并给出相关的信息,但是窗口2会覆盖信住窗口3,如何使
得窗口3在SHOW方式下还能位于最上面就是难点。

 形成的方式请给出详细的说明!300大元酬谢!
 
FormStyle := fsStayOnTop;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
{
第一次显示窗口2和3时:
}
form2.show;
form3.show;
form3.parent:=form2;

//调整窗口3的位置:
form3.left:=0;
form3.top:=适当的位置;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
{
接下来无论你何时显示窗口2时,窗口3都在最上面了,哈哈!
}
FORM2.SHOW;
end;
 
TO wql
*****************************************************************************
procedure TForm1.Button1Click(Sender: TObject);
begin
{
第一次显示窗口2和3时:
}
form2.show; //窗口采用SHOWMODAL方式 且为最大化方式
form3.show;
form3.parent:=form2;

//调整窗口3的位置:
form3.left:=0;
form3.top:=适当的位置;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
{
接下来无论你何时显示窗口2时,窗口3都在最上面了,哈哈!
}
FORM2.SHOW;
end;
*****************************************************************************
 
form2.Show;
form2.Update;

 
form2上放一BUTTON,事件为:
form3.show;
form3.bringtofront;
在form2为SHOWMODAL显示而需要FORM3显示提示信息时执行

不知道我理解的对不对
 

哎!那招白虹贯日一定要用剑么!!!

颠倒一下顺序就可以了啊!

form3.parent:=form2;
form3.show;
form2.showmodal;
 
FormStyle := fsStayOnTop;
这样不就行了吗
 
HWND:=FindWindow('TForm','Form3');
BringWindowToTop(HWND);
 
欢迎大家继续讨论,但一定要切实可行!
 
我不明白,UP!
 
第一个说得不错啊
关键是Form类型fsStayOnTop;
 
UP一下
实在无话可说啊
 
窗口2以showmodal
窗口3 以show方式
因为代替messagebox用
所以窗口不用太大

歘给你口2挡住窗口三是没办法的
适当的调整窗口大小吧
要不调用form3.bringtofront 试试
 
在窗口1和2的SHOW中加入
HWND:=FindWindow('TForm','Form3');
BringWindowToTop(HWND);
 
窗口3動態創建可以達到你的要求
 
后退
顶部