不知道 是不是Delphi的Bug,向高手求救 ( 积分: 100 )

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

lantern

Unregistered / Unconfirmed
GUEST, unregistred user!
有这样一个问题,最近一直困扰着我.系统的主界面使用ShowModal调出一个新的界面.这个界面上也可以调用多个Form,但是想把它做成两个Form好象一个比较好看,做成象PageControl的样子,但其实不是.所以我用的时候就是用Show调出来的,把子Form的FormStyle设置成fsstayontop,结果发现新出来的Form不仅仅是在本程序的最前面,其他程序的界面都被他挡住了.而实际上fsstayontop应该是只挡在本程序的最前面的,所以想大家帮我出个办法,应该怎么解决.
 
有这样一个问题,最近一直困扰着我.系统的主界面使用ShowModal调出一个新的界面.这个界面上也可以调用多个Form,但是想把它做成两个Form好象一个比较好看,做成象PageControl的样子,但其实不是.所以我用的时候就是用Show调出来的,把子Form的FormStyle设置成fsstayontop,结果发现新出来的Form不仅仅是在本程序的最前面,其他程序的界面都被他挡住了.而实际上fsstayontop应该是只挡在本程序的最前面的,所以想大家帮我出个办法,应该怎么解决.
 
没人可以帮助我吗?[:(]
 
不知道你是什么意思
 
那你直接这样行了Form2.BringToFront;
是不是这个意思?
 
这个必需在程序里面做判断。
你开一个QQ,再开一个任务管理器。他们都会相互的覆盖。所以没有绝对的TOP的窗口的,你可以判断当前自己是不是在最Top,如果不是,就把自己弄到最Top。

procedure Form1.onActivate(Sender:TObject);
begin
with Form2 do
SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height,
SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
end;
 
to yostgxf
我的意思是为什么Form3一直挡在所有程序的前面啊
to YellowMoon
SetWindowPos我用过了,我的意思不是要把它放在所有的程序窗口前面,只是放在本程序的所有窗口前面
 
>>>>> SetWindowPos我用过了,我的意思不是要把它放在所有的程序窗口前面,只是放在本程序的所有窗口前面>>>>>>>
帮你测试了下。
YellowMoon的方法。Form2如果是ShowModal的。会在屏幕最前面。如果是Show的,则只在本程序的最前面。
 
我也看不懂,你想要什么效果呢?
 
fsstayontop就是挡在所有程序的最前面的
 
to NC.Yang
fsstayontop 是挡在自己程序的前面,这个试一下就知道了
to czcn
你说的正是我的问题,应该怎么解决呢,我不想让他在所有的窗口前面啊
 
后退
顶部