AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Kontextsensitive Hilfe funktioniert nicht wenn Form in Main-Form eingebunden wird
Thema durchsuchen
Ansicht
Themen-Optionen

Kontextsensitive Hilfe funktioniert nicht wenn Form in Main-Form eingebunden wird

Ein Thema von norwegen60 · begonnen am 14. Apr 2022 · letzter Beitrag vom 15. Apr 2022
Antwort Antwort
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
504 Beiträge
 
Delphi 12 Athens
 
#1

Kontextsensitive Hilfe funktioniert nicht wenn Form in Main-Form eingebunden wird

  Alt 14. Apr 2022, 08:29
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

Geändert von norwegen60 (14. Apr 2022 um 08:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.007 Beiträge
 
Delphi 12 Athens
 
#2

AW: Kontextsensitive Hilfe funktioniert nicht wenn Form in Main-Form eingebunden wird

  Alt 14. Apr 2022, 09:50
Hat denn auch ein Control in dem eingebetteten Form den Focus?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
504 Beiträge
 
Delphi 12 Athens
 
#3

AW: Kontextsensitive Hilfe funktioniert nicht wenn Form in Main-Form eingebunden wird

  Alt 15. Apr 2022, 08:31
, das wars

Danke
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz