使用Delphi XE2,Win64.
所以我有一个包含多种表单的大型应用程序,如果我从主窗体打开帮助文件并打开一个模态窗口然后点击F1以触发模态窗口上的上下文相关帮助,帮助文件窗口会显示正确的信息但是在关闭模态窗口之前,无法关闭帮助文件.如果我回到应用程序直到模态窗口关闭,我甚至无法让帮助文件再次获得焦点.
调用这个确切的从旧版本我们的应用程序(用Delphi 6个内置)的同一帮助文件坐在同一个文件夹中的新版本(与德尔福XE2建)的帮助文件时会显示F1键从模态窗口击中,是响应,可以像我期望的那样关闭.
帮助文件是.chm类型文件.
总结一下.
启动应用程序通过F1打开帮助文件跳转到应用程序并在应用程序中打开模态窗口通过点击F1帮助文件窗口从模态窗口启动帮助无法关闭,直到我跳回我的应用程序并关闭模态窗口.
有没有人知道为什么会这样?
我搜索过互联网,但没有发现任何类似的问题.
我们很难过.
干杯TJ
- - 编辑 - -
下面是一些示例两个表单应用程序的代码,它也表现出这种行为.
program Project1;
uses
Vcl.Forms,
HTMLHelpViewer,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};
{$R *.res}
begin
Application.Initialize;
Application.HelpFile := 'C:\helpfile.chm';
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Run Code Online (Sandbox Code Playgroud)
这是Form1代码:
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations …
Run Code Online (Sandbox Code Playgroud)