IExtendedHelpViewer implementieren

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Hilfesystem-Interfaces


System.HelpIntfs.ICustomHelpViewer bietet direkte Unterstützung nur für auf Schlüsselwörtern basierende Hilfe. Einige Hilfesysteme (insbesondere HTMLHelp) arbeiten, indem sie Hilfethemen Zahlen zuordnen (auch als Kontext-IDs bezeichnet), wobei sie nach einem System vorgehen, das intern für das Hilfesystem ist und von der Anwendung deshalb nicht eingesehen werden kann. Solche Systeme bedingen, dass die Anwendung eine kontextbasierte Hilfe unterstützt, in der die Anwendung das Hilfesystem mit dieser numerischen Kontext-ID aufruft, und nicht mit einem Schlüsselwortstring, und das Hilfesystem die Zahl der Kontext-ID dann selbst übersetzt.

Anwendungen können mit Systemen kommunizieren, für die kontextbasierte Hilfe erforderlich ist, indem sie das Objekt erweitern, das ICustomHelpViewer implementiert, so dass es auch System.HelpIntfs.IExtendedHelpViewer implementiert. IExtendedHelpViewer unterstützt außerdem die Kommunikation mit Hilfesystemen, die es erlauben, direkt in übergeordnete Themen zu springen, statt Suchen nach Schlüsselwörtern auszuführen.

IExtendedHelpViewer stellt vier Funktionen bereit:

Drückt der Benutzer einer Anwendung F1, ruft der Hilfe-Manager folgendes auf:

UnderstandsContext(const ContextID: Integer; const HelpFileName: String): Boolean
int __fastcall UnderstandsContext(const int ContextID, UnicodeString HelpFileName)

und das aktuell aktivierte Steuerelement unterstützt kontextbasierte statt von einem Schlüsselwort abhängige Hilfe. Wie bei der Methode ICustomHelpViewer.UnderstandsKeyword fragt der Hilfe-Manager nacheinander alle registrierten Hilfeanzeigen ab. Anders als bei ICustomHelpViewer.UnderstandsKeyword jedoch wird, wenn mehrere Anzeigen den angegebenen Kontext unterstützen, die erste registrierte Anzeige aufgerufen, die einen bestimmten Kontext unterstützt.

Der Hilfe-Manager ruft Folgendes auf:

DisplayHelpByContext(const ContextID: Integer; const HelpFileName: String)
void __fastcall DisplayHelpByContext(const int ContextID, UnicodeString HelpFileName)

nachdem er die registrierten Hilfeanzeigen abgefragt hat.

Die Funktionen zur Unterstützung von Themen arbeiten auf dieselbe Weise:

UnderstandsTopic(const Topic: String): Boolean
bool __fastcall UnderstandsTopic(const UnicodeString Topic)

fragt die Hilfeanzeigen daraufhin ab, ob sie einen bestimmten Namen des Themas unterstützen, der mit dem angegebenen Topic-String übereinstimmt.

DisplayTopic(const Topic: String)
void __fastcall DisplayTopic(const UnicodeString Topic)

ruft die erste registrierte Anzeige auf, die zurückmeldet, dass sie ein bestimmtes Hilfethema unterstützt, dessen Name mit dem angegebenen Topic übereinstimmt.

Siehe auch