如何回到第一个FORM中?(100分)

  • 主题发起人 主题发起人 sxzww
  • 开始时间 开始时间
S

sxzww

Unregistered / Unconfirmed
GUEST, unregistred user!
我的工程文件中包含5、6个FORM,FORM的类型都是NORMAL,工程中第一个显示的FORM包含
三、四个按钮,通过按钮进入别的FORM,这个FORM中又有按钮,通过按钮调用其他窗口,
也就是说有三层窗口(或更多),当在最后显示的窗口中点击关闭按钮时,如何从最後
层窗口直接回到第一个窗口(要求:中间原来打开的窗口包括最后层的窗口都关闭),
并不知道用户进到哪层,该如何判断中间打开的窗口?
 
定义一个STRING类型变量,
每个窗体用一个‘0’至‘9’表示,
打开某窗体时将该数字字符追加到变量中,关闭时从变量中删除该数字字符
最后关闭时根据变量值可以知道哪些窗口是打开的,依次关闭就可以了
 
if GetForegroundWindow<>findwindow(nil,'form1') then
close;
 
用GetForegroundWindow得到当前活动的窗口,然后和自己的窗口句柄去比较...

又是你讨厌的句柄操作。 ^_^

AYellow (2000-10-24 14:10:00)
来迟了,Iknow的答案肯定是对的。

wjiachun (2000-10-24 14:19:00)
function FlashWindow(const hwnd:Integer;const bInvert:LongBool):LongBool;
该函数需要2个参数,第一个参数是要闪动标题栏的窗口的句柄,第二个参数用于指定是设
置窗口的闪动状态,还是恢复其原始状态。如果该bInvert参数为True,则表明窗口的标题
栏被闪动,如果该参数为False,则表明窗口的标题栏被恢复为原始状态。
该函数所返回的值用于指定调用该函数前窗口的状态,如果该返回值True,则表明窗口在调
用该函数之前是活动的,否则,如果返回值为False,则表明调用函数前窗口是<font color=red>非活动</font>的。

小猫:看看能不能把这个用上?

gcq (2000-10-24 22:18:00)
用GetForegroundWindow得到当前活动的窗口,
然后和自己的窗口句柄去比较
轻松解决!


cat.yy (2000-10-25 18:21:00)
多人接受答案了。

 
for i:=9 downto 1 do
begin
if assigned(form) then
关闭之
end
 
后退
顶部