Hallo zusammen
ich habe eine Hilfe mit ContextID erstellt.
Im Mainform steht im Create
Application.Helpfile := ExtractFilePath(ParamStr(0)) + 'HELP.CHM';
Über das Menü ist F1
Delphi-Quellcode:
procedure TfrmMain.miHelp1Click(Sender: TObject);
begin
Application.HelpShowTableOfContents;
end;
hinterlegt
Öffne ich jetzt ein eigenständiges Form das mit
HelpContext = 2000
definiert ist, wird die korrekte Hilfe angezeigt
Das MainForm selber besteht vor allem aus einem TPageControl. Wird eines der Pages geöffnet, lade ich auf den TabSheet ein eigenständiges Form
Delphi-Quellcode:
procedure TfrmMain.pcTestingChange(Sender: TObject);
begin
procedure MakeFormClient(aForm: TForm;aParent: TWinControl; bVisible: Boolean = True);
begin
aForm.BorderStyle := bsNone;
aForm.Parent := aParent;
aForm.Align := alClient;
if bVisible then
aForm.Show;
end;
begin
if pcTesting.ActivePage = tsSelfTest then
begin
if frmSelfTest = nil then
begin
frmSelfTest := TfrmSelfTest.Create(Application);
MakeFormClient(frmSelfTest, tsSelfTest);
end;
end
Jedem dieser Forms ist eine eigene HelpContext-ID hinterlegt.
Trotzdem wird immer die Haupthilfe geöffnet
Ich habe auch schon versucht die HelpContext-ID den einzelnen TabSheets zu hinterlegen, aber auch das funktioniert nicht.
Die HelpContext-ID sind immer im Objekt-Inspektor definiert.
Einzige Lösung die ich bisher gefunden habe ist:
Delphi-Quellcode:
procedure TfrmMain.pcTestingChange(Sender: TObject);
begin
iHelpContext:= pcData.ActivePage.HelpContext;
end;
und hinter F1
Delphi-Quellcode:
procedure TfrmMain.miHelp1Click(Sender: TObject);
begin
Application.HelpContext(iHelpContext);
end;
Das bedeutet aber, dass ich immer selber drauf achten muss die HelpContext-ID korrekt zuzuweisen.
Hat jemand eine Idee woran es liegen kann, dass die HelpContext-ID bei zusammengelegten Forms nicht beachtet wird?
Was auch noch aufgefallen ist:
- Auch wenn ich den Workaround verwende, funktioniert das eigenständige Form korrekt. Obwohl ich dort iHelpContext nicht ändere
- Das eigenständige Form funktioniert auch dann, wenn ich miHelp1Click ganz entferne. Im Hauptformular wird dann aber gar keine Hilfe geöffnet
- Das eigenständige Form ist als fsNormal definiert
Grüße
Gerd