Delphi - 在任务栏上单击窗口微缩后触发的事件

时间:2014-11-05 12:23:34

标签: delphi taskbar

当我点击任务栏上的应用程序窗口的缩影时,有人知道Delphi中发生了什么事件?

例如,在我将鼠标移到任务栏上的应用程序图标后,我可以看到两个不同的打开的应用程序窗口的两个微缩模型,现在我想带到前窗,我点击了哪个缩图

在任务栏上我有2个微缩模型:使用

从mainform打开的mainform和表单
 with TfrZadaniaMain.Create(Application) do
  try
   Show;

其中TfrZadaniaMain是微缩模型中可见的第二种形式的名称。

我通过点击微缩

来切换这两种形式有问题

在创建TfrZadaniaMain的参数时,我有:

procedure TfrZadaniaMain.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
end;

但这并没有帮助。在FormActivate事件上的mainform和TfrZadaniaMain上我都有BringToFront,但我可能需要更多的东西来舒适地在这两种形式之间切换


在任务栏上我有2个微缩模型:使用

从mainform打开的mainform和表单
 with TfrZadaniaMain.Create(Application) do
  try
   Show;

其中TfrZadaniaMain是微缩模型中可见的第二种形式的名称。

我在这两种形式之间切换时遇到问题

创建TfrZadaniaMain的params我有:

procedure TfrZadaniaMain.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
end;

但这并没有帮助。关于mainform和TfrZadaniaMain FormActivate事件,我有BringToFront,但我可能需要更多的东西来舒适地在这两种形式之间切换

2 个答案:

答案 0 :(得分:0)

关于应用程序从最小化状态恢复时首次触发哪个事件的原始问题:

第一个被触发的事件是TApplication.OnRestore http://docwiki.embarcadero.com/Libraries/XE7/en/Vcl.Forms.TApplication.OnRestore

不要将这个与TForm.OnRestore事件混淆,因为它们不同。

TApplication.OnRestore仅在应用程序从最小化状态恢复时触发(没有任何形式恢复应用程序)

当特定表单从最小化或最大化状态恢复并且特定于每个单独的表单时,将触发TForm.OnRestore。

答案 1 :(得分:-1)

好的,我终于找到了解决方案!

感谢this site

解决方案是在WndParent := GetDesktopwindow;

中添加TfrZadaniaMain.CreateParams.

现在,当我点击每个表格的缩略图(Main或TfrZadaniaMain)时,会出现所请求的(点击的)表格。