Sử dụng Delphi XE2, Win64.Helpfile được mở từ cửa sổ phương thức không phản hồi
Vì vậy, tôi có một ứng dụng lớn với nhiều biểu mẫu và nếu tôi mở tệp trợ giúp từ biểu mẫu chính và mở cửa sổ phương thức và sau đó nhấn F1 để tắt trợ giúp theo ngữ cảnh trên cửa sổ phương thức cửa sổ tệp trợ giúp hiển thị thông tin chính xác nhưng không thể đóng tệp trợ giúp cho đến khi tôi đóng cửa sổ phương thức. Tôi thậm chí không thể lấy tập tin trợ giúp để tập trung lại nếu tôi quay lại ứng dụng cho đến khi cửa sổ phương thức đóng lại.
Calling này chính xác tập tin trợ giúp tương tự từ các phiên bản cũ của ứng dụng của chúng tôi (được xây dựng với Delphi 6) ngồi trong thư mục tương tự như các phiên bản mới (được xây dựng với Delphi XE2) các tập tin hiển thị giúp đỡ khi phím F1 là hit từ cửa sổ phương thức và đáp ứng và có thể đóng như tôi mong đợi.
Tệp trợ giúp là tệp loại .chm.
Để tóm tắt.
Launch ứng dụng mở tập tin trợ giúp bởi F1 Chuyển đến ứng dụng và cửa sổ modal mở trong ứng dụng Launch sự giúp đỡ từ cửa sổ modal bằng cách nhấn F1 Giúp cửa sổ tập tin không thể bị đóng cửa cho đến khi tôi nhảy trở lại ứng dụng của tôi và đóng cửa sổ modal .
Có ai có ý tưởng nào về lý do này không?
Tôi đã tìm kiếm trên Internet và không tìm thấy bất kỳ vấn đề tương tự nào.
Chúng tôi đang bối rối.
Cheers TJ
---- EDIT ----
Dưới đây là một số mã cho một ứng dụng mẫu hai mà cũng thể hiện hành vi này.
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.
Đây là mã 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 }
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.
tôi thiết lập thuộc tính helpcontext trên hai hình thức để hai bối cảnh hợp lệ trong tập tin giúp đỡ của tôi.
Chạy ứng dụng - F1 để mở tệp trợ giúp Nút lần truy cập để Form2 được tạo và hiển thị F1 để gọi tệp trợ giúp Không thể đóng tệp trợ giúp cho đến khi tôi đóng Form2.
Hy vọng điều này sẽ hữu ích. - TJ
Ứng dụng có kích hoạt phiên bản 32 bit không? –
@Tony Không. Đó là một .chm. Nó sẽ được trong quá trình với các thành phần ocx chm. –
@DavidHeffernan - Đặt popupparent một cách rõ ràng hoặc không có tác dụng rõ ràng. Bạn cần giúp gì? Điều này thậm chí xảy ra với một ứng dụng thử nghiệm hai mẫu đơn giản. –