使用Delphi XE2,Win64。從模態窗口打開的Helpfile無響應
所以我有很多形式的大型應用程序,如果我打開從主窗體中的幫助文件,打開一個模式窗口,然後點擊F1到斷火模態窗口的幫助文件窗口顯示上下文敏感的幫助正確的信息,但幫助文件無法關閉,直到我關閉模態窗口。如果我回到應用程序,直到模式窗口關閉,我甚至無法再次獲得幫助文件的焦點。
調用此確切相同的幫助從舊版本我們的應用程序(用Delphi 6個內置)的文件坐在同一個文件夾中的新版本(與德爾福XE2建)的幫助文件時會顯示F1鍵擊從模式窗口,並作出響應,可以像我期望的那樣關閉。
幫助文件是.chm類型文件。
總結。
啓動應用程序 打開幫助文件由F1 跳轉到應用程序並打開模式窗口從模態窗口申請 啓動幫助擊中F1 幫助文件窗口無法關閉,直到我跳回到我的應用程序,並關閉模態窗口。
有沒有人有任何想法,爲什麼會這樣?
我已經搜索了互聯網,並沒有發現任何類似的問題。
我們很難過。
乾杯 TJ
---- ---- EDIT
這裏爲樣品2形式的應用程序,也表現出這種行爲的一些代碼。
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.
這裏是Form 1代碼:
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 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses Unit2;
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2 := TForm2.Create(Application);
try
Form2.ShowModal;
finally
Form2.Free;
end;
end;
end.
我設置HelpContext屬性的兩種形式,以我的幫助文件中的兩個有效的上下文。
運行的應用程序 - F1打開幫助文件 命中按鈕,這樣窗體2創建和顯示 F1調用幫助文件 不能關閉幫助文件,直到我關閉窗體2。
希望這會有所幫助。 - TJ
它啓動了winhlp64還是32位版本? – 2013-02-21 21:38:06
@Tony也沒有。這是一個.chm。它將與chm ocx組件進行中。 – 2013-02-21 21:39:10
@DavidHeffernan - 明確設置popupparent沒有明顯的效果。你需要什麼幫助?這甚至發生在一個簡單的兩種形式的測試應用程序。 – 2013-02-21 21:51:32