Registriert seit: 17. Nov 2005
Ort: Hamburg
1.064 Beiträge
Delphi XE2 Professional
|
Positionsmarken in .rtf Files
4. Jun 2022, 17:28
Zur Erstellung von Help Files (.hlp) benutze ich seit vielen Jahren Microsoft Help Workshop.
Basis für den Help Compiler ist jeweils eine .rtf Datei.
Die .rtf Datei ist in mehrere, oft hunderte, Kapitel unterteilt.
Den Überschriften der Kapitel ist jeweils eine Fußnote oder Endnote zugewiesen.
Zum Beispiel sieht ein Kapitel (nicht vollständig) so aus:
#$kHilfe Menu im Hauptfenster // Topic-Id = miHelpMain
Mit den Einträgen dieses Menus kann die Hilfe zum Programm angezeigt werden.
Hilfe InhaltmiHelpContentMain // Die Topic-Id "miHelpContentMain" ist als "Verborgen" formatiert.
#$kHilfe Inhalt Eintrag im "Hilfe" Menu // Topic-Id = miHelpContentMain
Zeigt die Startseite der Hilfe.
Mit der F1-Taste kann eine kontextbezogene Hilfe gezeigt werden.
Es wird versucht die Hilfe zu dem Objekt zu zeigen, auf das der Mauszeiger zeigt.
Die kontextbezogene Hilfe ist sowohl im Hauptfenster wie auch in allen anderen Fenstern des Programms verfügbar.
Vor der Zuweisung von Fuß-/ Endnoten sahen die Kapitelüberschriften so aus:
miHelpMainHilfe Menu im Hauptfenster
miHelpContentHilfe Inhalt Eintrag im "Hilfe" Menu
Die Fuß-/Endnoten wurden so zugewiesen
Eingabecaret hinter "miHelpMain" stellen und Shift-Ctrl-J drücken
Shift-Ctrl-J ist dem Macro "Help_YMakeJumpToHeader()" zugewiesen
Eingabecaret hinter "miHelpMain" stellen und Shift-Ctrl-S drücken
Shift-Ctrl-S ist dem Macro "Help_YMakeShowHeader()" zugewiesen
Wie ich (in der .rtf Datei) von einem Link zum Text springen kann, habe ich gelöst.
EingabeCaret in den Text "Hilfe Inhalt" stellen und Alt-G drücken.
Alt-G ist dem Macro "GotoTopic()" zugewiesen.
Was ich noch machen möchte ist, wie z.B. in Delphi, mit Shift-Ctlr-1 bis 9 Positionsmarken zuweisen.
Meine Vorstellung ist, dass ich das Eingabecaret in eine Kapitelüberschrift stelle und mit Shift-Ctrl-1 die zugehörige Topic-Id in einem Array(9) of String speichere, um später mit einer anderen Tastenkombination die Topic-Id aus dem Array zu lesen und zur entsprechenden Textstelle zu springen.
Woran es scheitert:
Ich habe bisher nicht herausgefunden, wie ich, herausfinden kann, welche Topic-Id einer bestimmten Kapitelüberschrift zugewiesen ist.
Kann mir da jemand helfen? Achtung: Word 2010
Die von mir benutzten Macros sind in der Datei Help.dot (Im Anhang als Help.zip)
Die Idealvorstellung ist natürlich eine "Positionsmarke" für eine beliebige Stelle im Text zu erstellen um später zu dieser Textstelle zu springen.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
|