(gelöst) Offline Hilfe, Einstellung

Für Fragen rund um die Ide und zum Debugger
Antworten
wolf_z
Beiträge: 88
Registriert: Mo 31. Aug 2009, 09:31

(gelöst) Offline Hilfe, Einstellung

Beitrag von wolf_z »

Hallo
Ich habe große Probleme, die Lazarus-Hilfe zu konfigurieren.

Was ich bisher herausgefunden haben:
- Ich habe mich weitgehend an diese Vorgehensweise gehalten: http://www.mail-archive.com/lazarus@mir ... 08440.html" onclick="window.open(this.href);return false;
- Allerdings werden dort wichtige Parameter für "Hilfe konfigurieren" nicht mit angegeben,
- z.B. fehlt mir der Pfad auf den Html-Betrachter. Dort habe ich "C:\Program Files (x86)\Internet Explorer\iexplore.exe" eingegeben, bekomme aber beim Aufruf der Hilfe die Meldung "Hilfebetrachter nicht gefunden - The program "" doesn't seem to exist".

Was mir auch noch unklar ist, wo genau müssen folgende Ordner und Dateien hin: fcl, lcl, rtl, fpdoc.css, index.html. Ich habe sie unter "C:\lazarus\docs\html\docs" abgespeichert und dann die Pfade in der Html-Hilfe-Konfiguration z.B. auf "file://C:/lazarus/docs/html/doc/rtl" gesetzt.

Dann gibt es noch unter "C:\lazarus\docs\html" dieses Projekt "build_lcl_docs.lpr". Das habe ich kompiliert, nachdem ich in build_html.bat den Pfad auf "PATH=C:\lazarus\fpc\2.2.2\bin\x86_64-win64" angepasst habe. Dann habe ich build_html.bat gestartet und dann jede Menge Fehlermeldungen bekommen. Das ganze macht aber doch nur Sinn, wenn diese Prozedur auch die Html-Hilfe findet. Aber darauf wird ja nirgendwo ein Pfad gesetzt.

Also die wichtigeste Frage wäre zunächst die nach dem Pfad für den Html-Betrachter. Ist das der Explorer "C:\Program Files (x86)\Internet Explorer\iexplore.exe"? Oder auch entsprechend für Firefox? Oder ist das ein spezielles Programm? Wenn der richtig gesetzt wäre, dürfte doch die Fehlermeldung "Hilfebetrachter nicht gefunden" nicht mehr kommen.

Wolfgang

Nachtrag: Also ich hab jetzt mal WinHlp32.exe für Vista runtergeladen und dann den Pfad für den Html-Betrachter auf "C:\Windows\WinHlp32.exe" gesetzt. Hilft aber auch nix, auch nachdem ich Lazarus komplett neu kompiliert habe.
Zuletzt geändert von wolf_z am Fr 4. Sep 2009, 11:43, insgesamt 1-mal geändert.

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: Offline Hilfe, Einstellung

Beitrag von monta »

Was mir auch noch unklar ist, wo genau müssen folgende Ordner und Dateien hin: fcl, lcl, rtl, fpdoc.css, index.html. Ich habe sie unter "C:\lazarus\docs\html\docs" abgespeichert und dann die Pfade in der Html-Hilfe-Konfiguration z.B. auf "file://C:/lazarus/docs/html/doc/rtl" gesetzt.
Wo du die hin speicherst, ist völlig egal, solange du dann, wie du es ja gemacht hast, bei Hilfe > Datenbanken die entsprechende BaseURL unter RTLUnits, FCLUnits und LCLUnits setzt.

Da du wohl die HTML-Dateien hast, und kein chm ist auch der chm-Viewer unnötig. Also bei mir läuft es, wenn gar kein spezieller Browser angegeben ist. Lediglich die drei "BaseURL"s der Datenbanken eintragen und es sollte automatisch der Systemstandardbrowser aufgerufen werden. Nimm am besten den BrowserPath nochmal raus, geht es dann?

Die Datei, die du da kompiliert hast, brauchst du nur, wenn du ein Hilfspaket selbst erstellen willst, wenn du das fertige nimmst, kannst du dir das sparen. Neukompilieren hat damit auch nichts zu tun, ist nur einen einfache XML-Datei die entsprechend mit den Hilfseinstellungen abgespeichert wird. ;)


Nei mir sieht das von den Einstellungen funktionierend so aus:
Hilfe_LCL.png
(Eventuell ist das Dielogdesign bei deiner Lazarusversion noch etwas anders, nicht verwirren lassen, die Einstellungen sind die selben) So eingestellt, startet automatisch die Offline-Hilfe in FF.
Johannes

wolf_z
Beiträge: 88
Registriert: Mo 31. Aug 2009, 09:31

Re: Offline Hilfe, Einstellung

Beitrag von wolf_z »

Danke für die prompte Hilfe

Bei mir bestand noch das Problem, dass ich vorher noch die Komponenten unter lazarus/components/chmhelp installiert hatte. Danach erschien unter Hilfeeinstellungen noch ein zweiter Betrachter für chm. Das führte dann ohne weitere Eingabe dort zu der genannten Fehlermeldung. Danach habe ich mal unter Dateibetrachter "C:\windows\hh.exe" eingegeben und man konnte tatsächlich den chm-Betrachter starten als Hilfe. Anscheinend stellt sich die Hilfe nach Installieren der Packages automatisch um auf chm. Allerdings scheint es noch keine CHM-Hilfe für Lazarus zur Zeit zu geben, oder lieg ich da falsch? Außerdem scheint es keine einstellbare Wahlmöglichkeit mehr zu geben, wenn man die Packages installiert hat. Die Hilfe will dann automatisch CHM.

Nach Deinstallation der CHM-Packages und Eingabe der Pfade so wie Du es vorgeschlagen hast, funktioniert der Aufruf der Hilfe wieder.

Allerdings funktioniert die Kontext-Hilfe mit F1 nicht. Bisma Jayadi hat ja in dem verlinkten Posting ganz oben geschrieben, dass die Kontext-Hilfe wenigstens im Objektinspektor und im Editor funktionieren sollte, aber nicht auf dem Formular.

Kann es sein, dass ich mir da irgendwas zerschossen habe oder geht das grundsätzlich nicht? Also im Property-Editor kommt manchmal ein Auswahl-Formular. Allerdings wird bei Auswahl dann der Browser nicht gestartet.

Der eigentliche Grund, warum ich mich mit der Sache beschäftige ist, dass ich für mein zu portierendes Programm in Lazarus ein plattformunabhängiges Hilfesystem implementieren möchte. Rein Html oder chm ist im Prinzip egal, chm wäre natürlich besser, weil die Hilfetexte schon existieren, aber die Html-Sorucen für die Hilfe habe ich auch. Wichtig wäre vor allem, dass der Kontext-sensitive Aufruf funktioniert. Dazu müsste das natürlich erst mal in Lazarus richtig funktionieren.

Wäre natürlich absolut super, wenn mir jemand noch einen Link oder Hinweis spendieren könnte, wie man das Problem grundsätzlich angeht. Googeln und Wiki-Suche ist diesbezüglich leider nicht sehr ergiebig.

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: Offline Hilfe, Einstellung

Beitrag von monta »

Ich kann mir eigentlich nicht vorstellen, das du was zerschossen hast, weil mir spontan nichts einfällt, was da so empfindlich sein sollte. Aber auf der anderen Seite, die Kontexthilfe per F1 funktioniert im Editor wunderbar. (Allerdings nicht bspw. bei Schlüsselwörtern, aber bei Funktionen wie bspw. IntToStr usw. geht es).
Welche Lazarusversion hast du eigentlich genau?

Zu CHM kann ich nur sagen, das Freepascal seit einiger Zweit nativ CHM unterstützt, siehe:
http://lazarus-dev.blogspot.com/2008/11 ... ascal.html" onclick="window.open(this.href);return false;

Hab damit allerdings noch nie gearbeitet, kann also nicht viel mehr dazu sagen.
Johannes

wolf_z
Beiträge: 88
Registriert: Mo 31. Aug 2009, 09:31

Re: Offline Hilfe, Einstellung

Beitrag von wolf_z »

Ich benutze die Version 0.9.26.2 (beta) mit FPC 2.2.2. Das ist wohl die neueste einigermaßen stabile Version. Ich hatte jetzt noch nicht vor, mir immer die aktuellste SVN-Version runterzuladen. Kann natürlich sein, dass höhere Versionen da schon besser funktionieren.

Für CHM gibt es ja tatsächlich schon ein Package, das aber die Html-Hilfe von Lazarus blockiert, wenn man es installiert. Den Link, den Du mir genannt hast, hatte ich auch schon gefunden, aber daraus entnommen, dass chm-Unterstützung zur Zeit noch Projektstatus hat, also für ein zu portierendes Programm wohl noch nicht so sinnvoll ist, wenn es am Ende stabil funktionieren soll. Ich hab in den Packages auch schonmal das Demoprogramm gestartet, das funktioniert aber nicht. Es steigt beim Lesen einer existierenden chm-Hilfe-Datei komplett aus. Die Demo enthält auch nur ein Beispiel für das Starten der Hilfe, nicht für Kontext-sensitive Hilfe. Das ganze funktioniert über irgendwelche Server-Kommunikation. Bin mir nicht sicher, ob das dann unter Linux genauso funktionieren würde. Ich bin ja an einer plattformübergreifenden Lösung interessiert.

Dann probiere ich zur Zeit gerade mit diesem fpdoc-Editor rum. Damit werden ja auch die Html-Hilfen für Lazarus erstellt. Vielleicht kann man daraus ja eine Kontext-sensitive Hilfe basteln. Obwohl, glaub ich eher nicht, ich fische halt im Moment etwas im Trüben. Aber da gibt's auch noch jede Menge technische Probleme. Z.B. kann ich den IDE-internen Doc-Editor zwar starten, aber ich kann dort nichts eingeben, weil alle Bedienelemente disabled sind. Auch wenn ich unter Projekteinstellungen einen Pfad für die Dokumentation setze. Das Projekt unter lazarus/doceditor kann ich zwar compilieren, wenn ich in der Projektunit {$R manifest.rc} aus-ixe, aber dann fehlen dem Programm ein paar Icons, die nicht dargestellt werden. Arbeiten kann ich aber wohl damit. Aber ich weiß dann nicht, wie ich das erstellte File unter der Lazarus-Ide aufrufen kann.

Probleme über Probleme, ist halt so, wenn man sich mit einer neuen Entwicklungsumgebung befasst. Werde mich noch etwas tiefer in die Materie rein pfriemeln. Deshalb möchte ich Deine Zeit nicht über Gebühr beanspruchen. Du hast mir ja schon viel geholfen!

Aber wenn Du oder jemand anders einen Lösungspfad kennt für die Erstellung einer plattformübergreifenden kontextsensitiven Hilfe für ein Programm unter Lazarus, bitte melden! Gerne auch später noch. Danke erstmal.

Gruß Wolfgang

Nachtrag:
Ich habe jetzt endlich den richtigen Einstieg in das Thema gefunden:
http://wiki.lazarus.freepascal.org/chm" onclick="window.open(this.href);return false;
Werde mich aber wohl intensiv einarbeiten müssen.
(Warum finde ich sowas nicht mehr per Googel? Muss ich erst dieses geniale Firefox-Plugin "Surf Canyon" installieren, um darauf zu stoßen.)

wolf_z
Beiträge: 88
Registriert: Mo 31. Aug 2009, 09:31

Re: Offline Hilfe, Einstellung

Beitrag von wolf_z »

Mein Erkenntnisstand ist wieder gewachsen.

Es gibt tatsächlich schon fcl.chm, lcl.chm und rtl.chm-Dateien.

ftp://ftp.hu.freepascal.org/pub/lazarus/" onclick="window.open(this.href);return false; (s. dort: fpc-lazarus-doc-chm-20090904.tar.bz2)

Die Dateien kann man sich in den Ordner für die Dokumentation laden, z.B. C:\lazarus\docs\html\docs

Dann das chmhelp-Package installieren, dabei der Datei unter C:\lazarus\components\chmhelp\README.txt folgen für die Installation.

Ergänzen sollte man noch, dass man in der Hilfe-Konfiguration als Dateibetrachter: C:\Windows\hh.exe eintragen sollte, es sei denn es gibt noch andere CHM-Betrachter. Zu beachten ist auch, dass nach der Installation des chm-Hilfe-Package die normale Html-Hilfe nicht mehr funktioniert. Die geht erst wieder, wenn man das Package wieder deinstalliert.

Danach kann man versuchen, die Online-Hilfe aufzurufen. Der Hilfebetrachter hh.exe wird dabei per TCP/IP-Server gestartet, zeigt aber leider keine der eingetragenen Hilfen fcl.chm, lcl.chm oder rtl.chm an und verhält sich ansonsten auch ziemlich merkwürdig, z.B. beim Versuch, ihn zu schließen.

Ursache ist wohl ein Bug, der bisher noch nicht beseitigt wurde (oder etwas anderes, denn mein Problem sieht nicht ganz genauso aus, wie folgt beschrieben):

Problemdiskussion: http://forum.lazarus.freepascal.org/ind ... 153.0.html" onclick="window.open(this.href);return false;
Bug-Tracker: http://bugs.freepascal.org/view.php?id=12995" onclick="window.open(this.href);return false;

Damit ist für mich das Thema erst mal erledigt. Immerhin kann man ja die Hilfen fcl.chm, lcl.chm und rtl.chm direkt aufrufen, was gegenüber der alten Html-Hilfe vielleicht ein Fortschritt ist, je nach Geschmack.

wolf_z
Beiträge: 88
Registriert: Mo 31. Aug 2009, 09:31

Gelöst

Beitrag von wolf_z »

Ich weiß ich nerve, aber alle meine Probleme sind gelöst:

Es gibt einen Lazarus-eigenen CHM-Betrachter unter

C:\lazarus\components\chmhelp\lhelp

Den muss man compilieren und dann eintragen in der Hilfe-Konfiguration als CHM-Dateibetrachter:

C:\lazarus\components\chmhelp\lhelp\lhelp.exe

Damit kann man jetzt die CHM-Hilfe benutzen: file/open z.B. fcl.chm

und es funktioniert endlich :D

Außerdem kann ich diesen Dateibetrachter ja irgendwie auch in meinem Programm verwenden.

Wäre natürlich noch schön, wenn dieser Dateibetrachter nicht nur die Lazarus-CHMs lesen würde, sondern auch normale mit dem HH-Workshop-erstellte, z.B. die für mein Programm, das geht nämlich nicht, da steigt lhelp.exe aus (aber das kriege ich noch irgendwie raus :mrgreen: )

wolf_z
Beiträge: 88
Registriert: Mo 31. Aug 2009, 09:31

Re: (gelöst) Offline Hilfe, Einstellung

Beitrag von wolf_z »

Folgende Lösung für das Problem "Kontext-sensitive Hilfe im eigenen Programm plattform-unabhängig" möchte ich Euch nicht vorenthalten (siehe auch: http://www.forumromanum.de/member/forum ... threadid=2" onclick="window.open(this.href);return false; ):

Einfach eine TProcess-Komponente auf's Formular und einen Button. OnClick:

Code: Alles auswählen

procedure Tfrm_launchApplications.btn_htmlHelpClick(Sender: TObject);
begin
  // Process1.CommandLine := 'hh.exe -mapid 1410 MyHelp.chm';   // oder:
  Process1.CommandLine := 'hh.exe MyHelp.chm::/html/titelei.html';
  Process1.Execute;
end;
Die Datei MyHelp.chm liegt dabei im gleichen Verzeichnis, wie die Anwendung.

Das ist natürlich nur die Version für Windows. Wenn man unter Windows einen ähnlichen Html-Hilfe-Betrachter wie hh.exe besitzt, über den sich die Inhalte per mapid oder Verzeichnispfad finden lassen, bräuchte man nur die Kommandozeile entsprechend anpassen.

Ein Nachteil der Lösung ist, dass bei einem erneuten Aufruf der Hilfe eine zweite Hilfe-Instanz geöffnet wird. Aber das kann man vorerst in Kauf nehmen.

Ein weiterer Nachteil ist, dass man nicht wie in Delphi, das HelpContext-Property im Eigenschaftsdialog nutzen kann. Das heißt, man kann es verwenden, aber für den Aufruf über F1 muss man sich selbst was programmieren.

Für mich reicht diese Lösung erstmal.

Einzige Frage wäre jetzt noch, welcher CHM-Betrachter unter Linux (und unter Macintosh) käme für diese Lösung in Frage. Ich denke aber, bis ich soweit bin, dass ich das brauche, gibt es einen, der stabil funktioniert :mrgreen: hoffentlich!

(So und jetzt deiinstalliere ich das Chm-Package für Lazarus bei mir wieder und nutze wieder die alte Html-Hilfe, denn die CHM-Hilfe für Lazarus ist noch ziemlich scheußlich)

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Re: (gelöst) Offline Hilfe, Einstellung

Beitrag von creed steiger »

für Linux:
http://www.kchmviewer.net" onclick="window.open(this.href);return false;
oder HelpExplorer

wolf_z
Beiträge: 88
Registriert: Mo 31. Aug 2009, 09:31

Re: (gelöst) Offline Hilfe, Einstellung

Beitrag von wolf_z »

Danke für den Tip, bis auf in den Help-Text integrierte iFrames stellt kchmviewer meine Windows-chm-Files ordentlich dar.

Antworten