Using Delphi XE2, Win64.
So I have a large application with many forms and if I open the help file from the main form and open a modal window and then hit F1 to fire off context-sensitive help on the modal window the help file window shows with the correct info but the help file cannot be closed until I close the modal window. I cannot even get the help file to have focus again if I go back to the application until the modal window closes.
Calling this exact same help file from the old version of our application (built with Delphi 6) sitting within the same folder as the new version (built with Delphi XE2) the help file displays when the F1 key is hit from the modal window and is responsive and can be closed like I expect.
The help file is .chm type file.
To summarize.
Launch application
Open help file by F1
Jump to application and open modal window in application
Launch help from modal window by hitting F1
Help file window cannot be closed until I jump back to my application and close the modal window.
Does anybody have any idea at all why this would be?
I have searched the Internet and have not found any similar issue.
We are stumped.
Cheers
TJ
----EDIT----
Here is some code for a sample two form app that also exhibits this behavior.
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.
Here is Form1 code:
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.
I set the helpcontext property on the two forms to two valid contexts within my help file.
Run the app - F1 to open help file
Hit button so Form2 is created and shown
F1 to call help file
Cannot close help file until I close Form2.
Hope this helps. - TJ
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…