永发信息网

delphi中如何判断当前激活的是哪一个子窗体?

答案:2  悬赏:60  手机版
解决时间 2021-08-11 01:36
  • 提问者网友:我是我
  • 2021-08-10 22:28
我是新手,刚学delphi,各位大侠来看看怎么写。
父窗体里有一个菜单,单击菜单的条目能打开相应的子窗体,但之前打开的子窗体都只是被最小化或者隐藏,我希望点击菜单条目打开新窗体的同时能把当前使用的子窗体free。
打开子窗体的顺序不确定,所以不能预先指定打开Form2之前必定free Form1。网上有文章介绍用assigned()来判断某个指针是否存在,但如果预先设计的窗体太多,也不可能每次打开窗体前都要逐一判断。在打开新窗体前应该怎样加上判断语句才能快速判断当前激活的窗体呢?
最佳答案
  • 五星知识达人网友:英雄的欲望
  • 2021-08-10 23:01

可使用Windows API函数GetForegroundWindow获得当前活动窗体句柄


如果是你程序里的窗体,你可以用一个全局变量ActiveForm: TForm;来记录你最后操作的一个窗体。

全部回答
  • 1楼网友:白昼之月
  • 2021-08-10 23:10

最简单的方法:

在全局变量中建一个当前激活的窗体指针. hChildWnd : Pointer

在点击菜单项目的事件中, 使用代码

if Assigned(hChildWnd) then

 TForm(hChildWnd).Free

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯