CHM: Aufruf über Index-Kennwort bei mehrstufigem Index?

G. Carl @, Mittwoch, 02.05.2007, 23:02 (vor 6197 Tagen)

Hallo.

Wir erzeugen eine größere chm-Hilfe mit einem entsprechenden Index. Ein .NET-Programm ruft die Hilfe mit einem Kennwort über den Index auf (HH_DISPLAY_INDEX, "Kennwort"). Solange das Kennwort in Ebene 1 des Hilfe-Index steht, wird die entsprechende Seite direkt aufgerufen.
Wir haben im Index aber auch viele mehrstufige Einträge wie z.B.

Obst
Apfel
Südfrucht
Zitrone
Orange
Kirsche

Ein Aufruf des Index-Eintrags "Obst" funktioniert also. Aber wie rufe ich Einträge in Ebene 2 "Apfel" oder Ebene 3 "Zitrone" auf>

Kann mir jemand einen Tipp geben>

Danke, Guido

CHM: Aufruf über Index-Kennwort bei mehrstufigem Index?

Ulrich Kulle ⌂, Freitag, 04.05.2007, 12:21 (vor 6195 Tagen) @ G. Carl

Hallo Guido,

deine Kontaktdaten scheinen in diesem Forum falsch zu sein, da ich zuerst offline etwas nachfragen wollte (harald.blazek #AT# rigips.de)>

Welche Version (VB 2003, VB 2005)>
Wie wird die Hilfe bisher augerufen (API oder VB.net Aufrufe)>

Ein Code-Auszug bzw. das Modul wäre hilfreich, um passend nachvollziehen zu können. Ich probiere was geht und gebe ein positives/negatives Ergebnis hier weiter.

Offline Kontakt (E-Mail) siehe unter Impressum der Homepage:

Gruss
Ulrich

--
Mit besten Grüßen
Ulrich Kulle
Microsoft Help MVP (2007-2009)
************************
http://www.help-info.de
Unterstützen Sie Help-Info.de durch eine PayPal Spende!
https://www.paypal.com

CHM: Aufruf über Index-Kennwort bei mehrstufigem Index?

Ulrich Kulle ⌂, Sonntag, 06.05.2007, 11:51 (vor 6193 Tagen) @ G. Carl

Hallo Guido,

» Wir erzeugen eine größere chm-Hilfe mit einem entsprechenden Index. Ein
» .NET-Programm ruft die Hilfe mit einem Kennwort über den Index auf
» (HH_DISPLAY_INDEX, "Kennwort"). Solange das Kennwort in Ebene 1 des
» Hilfe-Index steht, wird die entsprechende Seite direkt aufgerufen.

nach ersten Versuchen (ohne deinen genauen Code) habe ich noch die Frage, ob nach dem von dir beschriebenen erfolgreichen Aufruf eines Index-Keywords in Ebene 1 noch ein "ENTER" oder Klick auf "Anzeigen" im HTMLHelp Viewer Fenster auf der Registerkarte Index erforderlich ist>

--
Mit besten Grüßen
Ulrich Kulle
Microsoft Help MVP (2007-2009)
************************
http://www.help-info.de
Unterstützen Sie Help-Info.de durch eine PayPal Spende!
https://www.paypal.com

CHM: Aufruf über Index-Kennwort bei mehrstufigem Index?

G. Carl, Donnerstag, 10.05.2007, 10:09 (vor 6189 Tagen) @ Ulrich Kulle

Hallo Ulli,

» Welche VB Version (VB 2003, VB 2005)>
Der Entwickler arbeitet mit Visual Studio .Net 2005.

» Wird über die HH API oder über .Net Framework Funktionen aufgerufen>
» Bitte Code-Ausschnitt oder Modul übersenden, damit eine eventuelle Lösung
» für dich nutzbar wird.
In dem Aufruf wird eine Framework-Funktion benutzt:

Help.ShowHelp(Nothing, HelpFile, Helpnavigator.KeywordIndex, Text)
HelpFile: Name der Hilfedatei (mit Pfad)
Text: Suchwort, das im Index gesucht wird.

Bis jetzt haben wir festgestellt, dass dieses Suchwort nur auf Level1-Einträge angewendet wird. Alle Versuche, den Text von Unterebenen in das Suchwort einzubinden, sind bislang gescheitert.

» Ist nach dem von dir beschriebenen erfolgreichen Aufruf eines Index-Keywords
» in Ebene 1 noch ein "ENTER" oder Klick auf "Anzeigen" im HTMLHelp Viewer
» Fenster auf der Registerkarte Index erforderlich>

Nein. Der Aufruf öffnet sofort die gewünschte Seite, wenn der Aufruf eindeutig ist.
Beispiel: Aufruf mit "Obst", im Index steht "Obst". Voraussetzung ist, dass der Indexeintrag mit einer Seite verknüpft ist.

Ein Klick kann aber schon nötig sein, wenn der Aufruf nicht eindeutig ist:
- Der Suchtext im Aufruf entspricht nicht genau dem Index-Eintrag: Aufruf mit "Obs", im Index steht "Obst".
- Der Index-Eintrag "Obst" ist nicht verlinkt, z.B. weil er nur ein Oberbegriff für Untereinträge ist.

Danke, Guido

CHM: Aufruf über Index-Kennwort bei mehrstufigem Index?

Ulrich Kulle ⌂, Sonntag, 13.05.2007, 12:12 (vor 6186 Tagen) @ G. Carl

Hallo Guido,

ich habe einige Zeit in einen Lösungsversuch investiert, um das auch für andere Verwendungen einmal zu klären. Um es vorweg zu nehmen - es wird meines Wissens nicht funktionieren. Aber ein paar Fragen sind offen geblieben.

» » Welche VB Version (VB 2003, VB 2005)>
» Der Entwickler arbeitet mit Visual Studio .Net 2005.

Da nutzen wir ja die gleiche Programmiersprache - das vereinfacht.
Da die Aufrufe von CHM-Dateien im .Net Framework meines Erachtens von Microsoft nur halbherzig und schlecht dokumentiert umgesetzt wurden, habe ich einen ersten Versuch in VB6 durchgeführt. Aber selbst mit direkten Aufrufen der HH API und entsprechenden HH_AKLINK Strukturen kann die Anzeige mit mehreren Schlüsselworten (Semikolon getrennt) zwar erfolgen, aber dies sind keine multi-level Keywords.

» » Wird über die HH API oder über .Net Framework Funktionen aufgerufen>
» » Bitte Code-Ausschnitt oder Modul übersenden.
» In dem Aufruf wird eine Framework-Funktion benutzt:
» Help.ShowHelp(Nothing, HelpFile, Helpnavigator.KeywordIndex, Text)

Hier konnte ich zwar den Aufruf des Themas, aber nicht den gleichzeitigen und synchronen Aufruf des markierten Schlüsselwortes auf der Index-Registerkarte *und* der gleichzeitigen Anzeige des Themas im Fenster rechts erreichen. Dies ist mir nur mit einem Trick gelungen!

Ist das wirklich so, dass bei dir beides synchron angezeigt wird>

Außerdem ist mir nicht ganz klar, warum der Aufruf über die Keywords erfolgen soll. Für Kontext-sensitive Hilfe könnte mann doch auch das zugehörige Thema direkt aufrufen.

Ist das wirklich über die Keywords erforderlich>

Die Erstellung eines guten mehrstufigen Index ist ohnehin recht aufwändig. Allerdings bin auch ich ein Befürworter eines Schlüsselwortindex. Über die Tiefe kann man allerdings diskutieren. Ich denke zwei Ebenen sind genug. Die Tendenz geht heute mehr zu aufgabenorientierten Hilfe.

Bei Bedarf kann der Entwickler mit mir auch noch einmal direkt Kontakt aufnehmen.

--
Mit besten Grüßen
Ulrich Kulle
Microsoft Help MVP (2007-2009)
************************
http://www.help-info.de
Unterstützen Sie Help-Info.de durch eine PayPal Spende!
https://www.paypal.com

CHM: Aufruf über Index-Kennwort bei mehrstufigem Index?

Guido Carl @, Montag, 14.05.2007, 12:29 (vor 6185 Tagen) @ Ulrich Kulle

Hallo Ulrich,

» ich habe einige Zeit in einen Lösungsversuch investiert, um das auch für
» andere Verwendungen einmal zu klären. Um es vorweg zu nehmen - es wird
» meines Wissens nicht funktionieren. Aber ein paar Fragen sind offen
» geblieben.
Erstmal vielen Dank für die Zeit, die Du investiert hast. Das ist ja alles andere als selbstverständlich.

» » » Wird über die HH API oder über .Net Framework Funktionen aufgerufen>
» » » Bitte Code-Ausschnitt oder Modul übersenden.
» » In dem Aufruf wird eine Framework-Funktion benutzt:
» » Help.ShowHelp(Nothing, HelpFile, Helpnavigator.KeywordIndex, Text)
» Hier konnte ich zwar den Aufruf des Themas, aber nicht den gleichzeitigen
» und synchronen Aufruf des markierten Schlüsselwortes auf der
» Index-Registerkarte *und* der gleichzeitigen Anzeige des Themas im Fenster
» rechts erreichen. Dies ist mir nur mit einem Trick gelungen!
»
» Ist das wirklich so, dass bei dir beides synchron angezeigt wird>
Nein. Das hatte ich wohl nicht genau beschrieben: Im Index wird der Eintrag weder in der Liste markiert noch wird er als Schlüsselwort angegeben. Es wird aber das passende Thema im Hauptfenster angezeigt.

» Außerdem ist mir nicht ganz klar, warum der Aufruf über die Keywords
» erfolgen soll. Für Kontext-sensitive Hilfe könnte mann doch auch das
» zugehörige Thema direkt aufrufen.
» Ist das wirklich über die Keywords erforderlich>
Eine gute Frage. Und es stimmt, ein Direktaufruf wäre natürlich auch möglich. Um unser Vorgehen zu erklären, muss ich ein bisschen weiter ausholen.
Die Hilfe gehört zu einer Entwicklungsumgebung für eine Programmiersprache (ADbasic). Dabei werden Hilfethemen zu Fenstern der Umgebung direkt aufgerufen. Den Aufruf über den Index nutzen wir, um die Hilfe zu einem im Quelltext markierten Kennwort aufzurufen.
Beispiel: Im Quelltext steht die Zeile "PAR_1 = ADC(PAR_2)". Wenn ADC markiert ist, ruft F1 das Hilfethem zu diesem Befehl auf.
Der Aufruf über den Index ist für uns praktisch, weil dauernd neue Befehle in die Programmiersprache aufgenommen werden. Der Hilfeersteller muss dann nur den Index um die neuen Befehlsworte erweitern, für den Programmierer ändert sich nichts. Das hat den Vorteil, dass die Entwicklungsumgebung nicht wegen neuer Befehle (und der entsprechenden Hilfeänderung) neu kompiliert werden muss.
Dieses Verfahren haben wir aus der alten WinHelp übernommen und funktioniert verlässlich.

Leider ergeben sich in jüngster Zeit Probleme, weil es immer häufiger für ein Befehlswort mehrere Hilfethemen gibt. Genau hier wird der Index mehrstufig.

Ich denke aber, wir werden vom Index-Aufruf abkommen müssen und stattdessen tatsächlich die Themen direkt aufrufen. Mal sehen, wie wir das realisieren können.

» Die Erstellung eines guten mehrstufigen Index ist ohnehin recht aufwändig.
» Allerdings bin auch ich ein Befürworter eines Schlüsselwortindex. Über die
» Tiefe kann man allerdings diskutieren. Ich denke zwei Ebenen sind genug.
» Die Tendenz geht heute mehr zu aufgabenorientierten Hilfe.
Soweit es um die Hilfe zur Entwicklungsumgebung geht, stimme ich Dir voll zu. Bei den Topics zu den einzelnen Befehlen passt das allerdings nicht.
» Bei Bedarf kann der Entwickler mit mir auch noch einmal direkt Kontakt
» aufnehmen.
Vielen Dank, ich werde es weiterleiten.

Guido

powered by my little forum