Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi HLP Hilfedateien in Delphi 2005 (https://www.delphipraxis.net/36847-hlp-hilfedateien-delphi-2005-a.html)

mschumann 27. Dez 2004 00:58


HLP Hilfedateien in Delphi 2005
 
Hallo,

weiß jemand, wie man ältere HLP Dateien (z.B. die Turbopower Hilfen) in die Delphi 2005 IDE integrieren kann? Wäre ja dämlich, wenn das nicht mehr ginge...

Micha

Bernhard Geyer 28. Dez 2004 10:34

Re: HLP Hilfedateien in Delphi 2005
 
Es ist dämlich - oder einfach nur Fortschritt.

Du wirst die Hilfe nach Microsoft Help 2.0 Format umwandeln müssen, damit sie integrierbar ist. Dieses Format wird jetzt von Delphi 2005 verwendet, um z.B. die Hilfe zum SDK von MS verwenden zu können.

mschumann 28. Dez 2004 12:05

Re: HLP Hilfedateien in Delphi 2005
 
:wall: Danke!

Gibt es denn einen Weg, diese Konvertierung durchzuführen? HLP-Files kann man ja gut "dekompilieren" und bekommt dann RTF Dateien. Ich kenne allerdings Microsoft HELP 2 überhaupt nicht. Ich denke, dass einige Delphi 2005 Anwender an den Turbopower-Hilfefiles interessiert sein dürften, da kann man sich den Aufwand vielleicht teilen?

Micha

Bernhard Geyer 28. Dez 2004 17:16

Re: HLP Hilfedateien in Delphi 2005
 
Zitat:

Zitat von mschumann
Gibt es denn einen Weg, diese Konvertierung durchzuführen?

Ich kenn keinen :-(

Aber da die Komponenten ja jetzt bei Sourceforge verfügbar sind, sind ja evtl. auch die Hilfedateien im Quellformat dabei. Und die könnte man mit sicherheit umwandeln.

MathiasSimmack 28. Dez 2004 20:06

Re: HLP Hilfedateien in Delphi 2005
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

Zitat von mschumann
Gibt es denn einen Weg, diese Konvertierung durchzuführen?

Ich kenn keinen :-(

Ich schon, aber der ist sowohl aufwändig als auch vom Ergebnis her umständlich. Zuerst könnte man die HLP-Hilfedatei(en) per HTML Workshop ins CHM-Format konvertieren. Solange nichts spezielles in den Hilfedateien drin ist (ich meine jetzt irgendwelche Sachen, die es nur im HLP-Format gibt, und die sich schwer bzw. gar nicht nach CHM umsetzen lassen), funktioniert das zwar einwandfrei, aber die Dateinamen der Ergebnis-HTMLs sind alles andere als selbsterklärend. Kurz gesagt: Furchtbar. :roll:

Aber da der Assistent auch die Projektdateien anlegt, könnte man das notfalls ignorieren (falls man die Dateien nicht manuell bearbeiten muss), und via Help 2.0-Workshop ins Help 2.0-Format konvertieren lassen. Den Help 2.0-Workshop gibt´s kostenlos (nennt sich "Visual Studio Help Integration Kit", kurz: VSHIK). Allerdings integriert sich die GUI ins Visual Studio.NET. Die Kommandozeilentools kann man benutzen, wenn auch mit rechtlich bedenklichem Patch der Installationsdatei.

Zitat:

Aber da die Komponenten ja jetzt bei Sourceforge verfügbar sind, sind ja evtl. auch die Hilfedateien im Quellformat dabei. Und die könnte man mit sicherheit umwandeln.
Die Hoffnung wäre, dass die Entwickler vllt. NDoc verwendet haben, oder wie das heißt. :oops: Dabei ist das Dateiformat wohl fest vorgegeben, aber als Ausgabe (sprich: Das Ergebnis) kann entweder CHM oder Help 2.0 oder sonst was sein. #develop nutzt NDoc für die Erstellung von Dokumentationen.

Ich würde mich mal an die Entwickler wenden und nachfragen. Evtl. sitzen die ja schon selbst an der Konvertierung. Aus eigener Erfahrung weiß ich, dass bereits die Konvertierung von HLP nach CHM eine Menge Zeit in Anspruch nimmt. Letztlich kommt man besser weg, die Hilfedatei gleich von Grund auf neu zu machen. Allerdings ist der Schritt CHM -> Help 2.0 kleiner, weil sich beide Formate ähneln. Es gibt Detailunterschiede, bei denen eine Nacharbeit notwendig wird. Aber eine ganz normale CHM-Hilfedatei, ohne irgendwelche Besonderheiten, ist ratzfatz 1:1 konvertiert.

Ich darf mal ganz bescheiden auf die Help 2.0-Version der Win32-API-Tutorials für Delphi verweisen. Die waren ursprünglich auch mal CHMs. :)

mschumann 28. Dez 2004 20:21

Re: HLP Hilfedateien in Delphi 2005
 
Danke!

Ich werde mal in Sourceforge CVS schauen, was da so als Hilfesource vor sich hin dümpelt und würde gerne Dein Konw How dann ggf. noch einmal penetrant ausnutzen! :wink:

Ich lasse den Thread daher nochmal offen.

Michael

MathiasSimmack 28. Dez 2004 22:05

Re: HLP Hilfedateien in Delphi 2005
 
Ja, klar. Wenn ich helfen kann, dann gern. Versuche mal die Projektdateien der Hilfe zu finden. Oder lass sie dir von den Entwicklern schicken. Ansonsten müsste man die originale Hilfedatei erst mal mit einem Decompiler auseinander nehmen, bevor man sie konvertieren kann.

Aber wie gesagt, frag erst mal die Entwickler. Wenn die das Produkt noch betreuen (womit wohl klar wäre, dass mir "Turbopower" nichts sagt :oops:), dann werden die sich u.U. schon selbst Gedanken wg. Delphi 2005 machen.

Bernhard Geyer 28. Dez 2004 22:23

Re: HLP Hilfedateien in Delphi 2005
 
Was :shock:

Dir sagt TurboPower nichts? Einer der (ehemaligen) Delphi/Turbo Pascal-Komponenten-Entwickler-Firmen? Dort kommt z.B. auch Async Pro (welche im Forum schon zig-Mal erwähnt wurde) her.

mschumann 28. Dez 2004 23:40

Re: HLP Hilfedateien in Delphi 2005
 
Ich habe im CVS in SOurceforge nachgesehen, es sind RTFs :x und das Hilfesystem wurde wohl mit ROBOHELP gemacht. Kennt jemand RoboHelp und kann man damit vielleicht MSHELP 2 erzeugen?

Micha

Marcel Gascoyne 29. Dez 2004 06:34

Re: HLP Hilfedateien in Delphi 2005
 
Robohelp hab ich zuletzt 1995 verwendet, war nicht sonderlich begeistert davon. Ich verwende nur noch Help & Manual, was besseres ist mir bisher nicht untergekommen. Damit kann man auch HLP Dateien importieren und als CHM, PDF, EXE, HTML exportieren. Einfacher gehts nicht.

Gruß,
Marcel

Stevie 29. Dez 2004 08:24

Re: HLP Hilfedateien in Delphi 2005
 
Moin,

ich hätte noch ne Frage dazu, weil es mir noch nicht ganz klar ist:
Kann ich jetzt also aus RTF-Dateien ne WinHelp2 erstellen?

Marcel Gascoyne 29. Dez 2004 08:35

Re: HLP Hilfedateien in Delphi 2005
 
Die CHM Hilfedateien können mit dem freien HTML Workshop von Microsoft erstellt werden. Im Gegensatz zum klassischen Winhelp werden hier keine RTF- sondern HTML Dateien verwendet.

RTF Dateien kannst Du mit entsprechenden Programmen als HTML speichern, z.b. Word, Open Office.

Gruß,
Marcel

Stevie 29. Dez 2004 08:42

Re: HLP Hilfedateien in Delphi 2005
 
Also RTF -> HTML -> CHM -> WinHelp2 ??

MathiasSimmack 29. Dez 2004 08:58

Re: HLP Hilfedateien in Delphi 2005
 
Den Zwischenschritt HTML kannst du weglassen, weil CHM ja bereits HTML ist. Wenn "Help & Manual", wie Marcel schreibt, HLP in CHM umwandeln kann, bist du schon mal eine Hauptsorge los. @Marcel: Vllt. könntest du ja mal ein paar Erfahrungen beim Konvertieren beschreiben.

Ich kenne nur den im HTML Helpworkshop eingebauten Konverter, der aus HLP-Projekten CHM-Projekte erzeugt. Aber wie gesagt, dabei werden Dateinamen verwendet ... :shock: oh, boy. Wenn man an der Datei nichts ändern muss, kann man das notfalls noch ignorieren. Haarig wird es bspw. bei Popups. Du kennst doch diese kleinen Popups in HLP-Dateien, erkennbar an einem einfach unterstrichenen Text. Der Konverter von Microsoft legt für jedes Popup eine separate HTML-Seite an. Logisch, weil es sich dabei ja auch um Seiten in der RTF-Datei gehandelt hat.
Tja, und dann suche mal in Dateinamen wie "sb09383as34.htm" nach solchen Popups und setze sie für CHM ins richtige Format. :roll:


Die entstandene CHM-Hilfedatei bzw. das CHM-Hilfeprojekt kann man ganz bequem mit dem von mir o.g. "VSHIK" von Microsoft nach Help 2.0 (HxS) konvertieren.

Stevie 29. Dez 2004 09:03

Re: HLP Hilfedateien in Delphi 2005
 
Zitat:

Zitat von MathiasSimmack
Tja, und dann suche mal in Dateinamen wie "sb09383as34.htm" nach solchen Popups und setze sie für CHM ins richtige Format. :roll:

Werden die Dateinamen nach dem Bookmark benannt? Dann hab ich keine Probleme damit, ich bau nämlich einen HelpBuilder und da werden "vernünftige" Namen vergeben und net so "blöde" Nummern...

Marcel Gascoyne 29. Dez 2004 09:20

Re: HLP Hilfedateien in Delphi 2005
 
@Stevie: Ich bin irgendwie davon ausgegangen das CHM = Microsoft Help 2.0 ist. Ist es ja nicht :oops: Die folgenden Seiten sollten Dir aber weiterhelfen:

MS Help 2 Infopage
Collections and Borland .NET

@MathiasSimmack: Das Ergebnis von H&M sieht gut aus, die HLP Dateien werden in ein internes Format von H&M überführt. Aus diesem internen Format wird dann das entsprechende Ausgabeformat erzeugt.


Sowie D2005 bei mir eingetroffen ist werde ich mir das mal näher ansehen und versuchen einige Hilfedateien zu konvertieren. Laut Borland ist das Paket ja gestern raus...

Gruß,
Marcel

MathiasSimmack 29. Dez 2004 09:28

Re: HLP Hilfedateien in Delphi 2005
 
@Stevie: Ich habe gerade mal ein kleines HLP-Projekt konvertieren lassen, weil ich es nicht mehr so genau wusste. Immerhin verwendet der Konverter die ersten Buchstaben der ursprünglichen HLP-Projektdatei für das neue Projekt. Meine ehemalige "upx-ui.*" (HPJ, RTF, CNT) sind also jetzt Dateien wie "upx-5qnn.htm" oder "upx-7fz9.htm".

Dummerweise sind sie alle
Code:
<title>(Untitled)</title>
Das heißt, im HTML Helpworkshop siehst du nicht, in welcher Datei was drin steht. Und das obwohl zumindest jede RTF-Seite die Fußnote # benutzt. Wenn du dich mit HLP-Dateien auskennst, dann weißt du, dass diese Fußnote der Identifikation dient. Um bspw. bestimmte Themen gezielt aufrufen zu können, bzw. um Hints zu bestimmten Controls anzuzeigen, werden diese Fußnoten bzw. ihre Bezeichner dann im Hilfeprojekt mit Ziffern "gemappt", die man dann in der VCL einstellen kann, usw.
Es wäre also denkbar gewesen, diese Fußnote als Titel zu verwenden. Es hätte zwar nicht schön ausgesehen und man hätte nacharbeiten müssen, aber immerhin hätte man gewusst, wo welches Thema ist.


@Marcel: Dann scheint H&M (btw: :mrgreen:) besser zu sein als der Konverter des HTML Helpworkshop.



Edit: wg. Marcel ;)

Stevie 29. Dez 2004 09:34

Re: HLP Hilfedateien in Delphi 2005
 
Naja, auch das Problem hätte ich eventuell nicht, denn ich erstelle auch die RTF selber (aus xml-Dateien).
Also könnte ich an dieser Stelle ja gleich selber die htms erstellen und sie mit vernünftigen Namen versehen...

MathiasSimmack 29. Dez 2004 09:43

Re: HLP Hilfedateien in Delphi 2005
 
Zitat:

Zitat von Marcel Gascoyne
Sowie D2005 bei mir eingetroffen ist werde ich mir das mal näher ansehen und versuchen einige Hilfedateien zu konvertieren. Laut Borland ist das Paket ja gestern raus...

PS: Wenn du es hast, dann geh doch mal auf Luckies Seite und schau dir mal die Help 2.0-Version der Tutorials an ("Win32API_Tutorials_HxS.exe"). 8)


@Stevie: Stimmt, das wäre von Vorteil.

mschumann 29. Dez 2004 10:14

Re: HLP Hilfedateien in Delphi 2005
 
Ich habe jetzt VSHIK installiert. Ich finde aber keine Kommandozeilenutilities. Kann mir jemand auf die Sprünge helfen?

Meine Idee jetzt:

Helpdeco
AccViz Helpmaker (Freeware)

Accviz kann auch Help 2 erzeugen (lat Konfigdialog), wenn man Ihm den Compiler bekannt macht. Für CHM nutze ich das Programm schon länger.

mschumann 29. Dez 2004 10:18

Re: HLP Hilfedateien in Delphi 2005
 
Sorry gefunden. Hatte auch nur einen Teil des Thread gelesen...

MathiasSimmack 29. Dez 2004 11:06

Re: HLP Hilfedateien in Delphi 2005
 
Zitat:

Zitat von mschumann
Helpdeco

Warum? Hast du denn nicht geschrieben, du hättest die Projektdateien gefunden? :gruebel: Ach so, das war für RoboHelp. Wie sehen denn da die Projektdateien aus? Vllt. sind die mit dem Helpworkshop von Microsoft kompatibel. Es wäre einfacher, das Projekt umzuwandeln, als per Decompiler die Hilfedatei auseinanderzunehmen. Okay, wenn es nicht anders geht, dann muss es wohl so sein, aber es besteht die Gefahr, dass ein paar Sachen beim Generieren der Projektdateien "verschluckt" werden.

mschumann 29. Dez 2004 17:34

Re: HLP Hilfedateien in Delphi 2005
 
Hast schon Recht, für die Turbopower Produkte gibt es wohl alle Quelldateien auf SF. Aber ich habe noch andere (z.B. WPTools 5) und hatte gehofft, am Ende mit eiem Procedere dazustehen, das eine HLP in ein HxY oder wie auch immer umwandelt und zumindest rudimentäre Kontexthilfe erlaubt.

Da wäre noch eine Sache: Wie bindet man dann die HxYz Teile in D2005 ein?

Wäre sicher ein Service für die Delphi 2005 Leute, wenn man dann mit Inno Setup Päckchen packen kann mit Turbopower und anderen (JCL/JVCL) usw.

Möglicherweise ist dieses Ziel aber zu hoch gesteckt und möglicherweise interessieren sich gar nicht so viele für die Hilfen :gruebel:

MathiasSimmack 29. Dez 2004 18:23

Re: HLP Hilfedateien in Delphi 2005
 
Zitat:

Zitat von mschumann
Wäre sicher ein Service für die Delphi 2005 Leute, wenn man dann mit Inno Setup Päckchen packen kann mit Turbopower und anderen (JCL/JVCL) usw.

Möglicherweise ist dieses Ziel aber zu hoch gesteckt und möglicherweise interessieren sich gar nicht so viele für die Hilfen :gruebel:

Pah, als ob sich hier Leute für Inno Setup interessieren würden. :mrgreen:


Jetzt aber ernsthaft: Es gibt mehrere Möglichkeiten, die Hilfedateien zu integrieren. Eine davon ist das Tool H2Reg von Rob Chandler, das du auf seiner Webseite (www.helpware.net) findest. Dann hat Borland vor nicht allzu langer Zeit mal ein JavaScript veröffentlicht, mit dem man das machen kann. Und ich erlaube dir hiermit auch, mein eigenes Tool zu benutzen, das du im Setup der schon mehrfach genannten (;)) Win32-API-Tutorials findest. Dort findest du auch die XML-Datei, mit der die Tutorials in die Delphi 2005-Hilfe integriert wird. Aber ich bin auch gern bereit, bei Interesse den Link zu meiner Dokumentation zu verraten. *hüstel*

Wenn du dich für ein Tool entschieden hast, solltest du dich mit den so genannten Plugins vertraut machen. Das dürfte der einfachste Weg sein, die Hilfen zu integrieren. Eben so, wie ich das auch bei den Tutorials gemacht habe.
Borland selbst bindet bspw. das Platform SDK und das .NET-Framework SDK direkt durch die Angabe der einzelnen Dokumente ein. Das wäre dann der zweite Weg.

mschumann 29. Dez 2004 18:59

Re: HLP Hilfedateien in Delphi 2005
 
Das Tutorial habe ich gerade installiert. Ist klasse! Und das genau hat mich zu der Idee "Installationspackages mit Hilfe" inspiriert.

Was ist zwischen Delphi-Praxis und Inno-Setup? Ich bin neu hier, aber ich arbeite schon seit Stunde 0 mit Inno und habe mit Installshield (auch den Bilieden) nur Ärger gehabt.

However - ich wäre sehr interessiert, wie das Tutorial-Setup die Integration vornimmt...

MathiasSimmack 29. Dez 2004 19:50

Re: HLP Hilfedateien in Delphi 2005
 
Zitat:

Zitat von mschumann
Was ist zwischen Delphi-Praxis und Inno-Setup? Ich bin neu hier, aber ich arbeite schon seit Stunde 0 mit Inno und habe mit Installshield (auch den Bilieden) nur Ärger gehabt.

Das war ein Insiderscherz. ;) Wenn hier jemand sein Programm mit Setup vorstellt, kommt garantiert von irgendwem der Einwand: "Och, ein ZIP-Archiv o.ä. würde reichen" :mrgreen:

Zitat:

However - ich wäre sehr interessiert, wie das Tutorial-Setup die Integration vornimmt...
Im Prinzip reicht ein Blick in die "delphi9.xml"
Code:
<?xml version="1.0" encoding="UTF-8"?>
<register>
  <plugin parent="borland.bds3" child="Win32API.Delphi.20"/>
</register>
"parent" bzw. borland.bds3 ist der Namespace-Name der Delphi 2005-Hilfe, den du ebenfalls benutzen musst (egal welches Tool du am Ende einsetzt), und "child" definiert den Namespace-Namen deiner eigenen Hilfedateien. Win32API.Delphi.20 solltest du also nicht verwenden, sonst klopfe ich dir auf die Finger. ;) Das wäre die rein technische Grundlage. Ansonsten verweise ich dich mal an meine Doku. Der Link oben verweist auf die PDF mit hoffentlich nützlichen Infos zu Help 2.0-Dateien, beim Link unten drunter findest du noch mal mein Registertool mit einer Kurz-Doku zur Syntax. Ist auch nicht schwer. In meinem NSIS-Setup sieht´s so aus:
Code:
ExecWait '"$INSTDIR\register\register.exe" +p \
  "$INSTDIR\register\delphi9.xml" [@parent=$\'borland.bds3$\']'
Und etwas ähnliches (zum Ausführen von externen Programmen) kennt Inno Setup ja auch.

mschumann 29. Dez 2004 20:40

Re: HLP Hilfedateien in Delphi 2005
 
Super vielen Dank. Ich werde dann mal daran arbeiten... Erfolgsmeldungen und Resultate poste ich dann hier!

Micha

MathiasSimmack 30. Dez 2004 11:23

Re: HLP Hilfedateien in Delphi 2005
 
Als Tipps vllt. noch:

1. Sichere dein Setup so ab, dass es nur Administratoren installieren können. Ich hab´s nie probiert und bin daher nicht sicher, vllt. klappt´s auch ohne Admin-Rechte. Aber bei NT/2000/XP ist es ja auch eigentlich Standard, dass nur Administratoren Software installieren können/dürfen. Und bei Inno Setup ist das recht einfach, und du bist auf der sicheren Seite.


2. Dann musst du immer auch davon ausgehen, dass jemand die Hilfedateien installieren möchte, der weder Delphi 2005 noch die neue Help 2.0 hat. Wenn du bspw. mein Tool verwendest, wäre die Suche nach MS XML 3 auch zu empfehlen. Ich zeige dir mal die entsprechenden Abschnitte aus meinem NSIS-Setup. Du müsstest das eigentlich ohne größere Schwierigkeiten für Inno Setup nachbilden können. Notfalls sag Bescheid, und ich helfe.

a) Microsoft XML 3 suchen
Code:
!define CLASS_DOMDocument30 "CLSID\{F5078F32-C551-11D3-89B9-0000F81FE221}\InProcServer32"

ReadRegStr $R0 HKCR "${CLASS_DOMDocument30}" ""
StrCmp $R0 "" 0 +4
IfFileExists "$R0" +3 0

  MessageBox MB_OK|MB_ICONEXCLAMATION "MS XML 3 nicht vorhanden"
  Abort
b) Help 2.0 suchen
Code:
!define HXSESSION "CLSID\{31411198-A502-11D2-BBCA-00C04F8EC294}\InprocServer32"

ReadRegStr $R0 HKCR "${HXSESSION}" ""
StrCmp $R0 "" +2
IfFileExists "$R0" +3 0

  MessageBox MB_OK|MB_ICONEXCLAMATION "Help 2.0 nicht vorhanden"
  Abort
c) Delphi 2005 suchen
Code:
ReadRegStr $R0 HKLM "Software\Borland\BDS\3.0" "App"
StrCmp $R0 "" +2
IfFileExists "$R0" +3 0

  MessageBox MB_OK|MB_ICONEXCLAMATION "Delphi 2005 nicht vorhanden"
  Abort
In der Reihenfolge am besten auch prüfen lassen und das Setup abbrechen, wenn eine der Bedingungen nicht erfüllt ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:54 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