AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

HTML-Hilfedatei, keine Kontentanzeige

Ein Thema von waldforest · begonnen am 15. Jun 2014 · letzter Beitrag vom 4. Nov 2016
Antwort Antwort
Seite 2 von 2     12   
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#11

AW: HTML-Hilfedatei, keine Kontentanzeige

  Alt 16. Jun 2014, 13:27
Hallo,
hier ruft sich die OnHelp wohl selber auf.


@Es scheint eine echte Herausforderung zu sein ein Hilfesythem aufzubauen.
mfg wf

Geändert von waldforest (16. Jun 2014 um 13:35 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#12

AW: HTML-Hilfedatei, keine Kontentanzeige

  Alt 16. Jun 2014, 14:00
Wo hast'n das Application.HelpKeyword('Glossar'); aufgerufen?
Könnest du einfach mal den stacktrace kopieren, nach der exception?

Ja ist es.
Wir hatte da am Ende bestimmt 2-3 Monate lang immer mal wieder dran gesessen und versucht rauszufinden was nun wieder knallt, bis es dann bei allen großen Kunden mal lief.



Aktuell hab ich das OnHelp selbst implementiert, da wir die Hilfeeinträge live aus der Datenbank ziehen und dort hinterlegt haben welches Control/Fenster mit welcher Hilfeseite verlinkt ist.
* Hilfe = eine der HTML-Dateien vom Help&Manual, inkl. eines optionalen Anchor oder eine direkte URL
* Die Tabelle ist auch in der Synchronisation, so daß man die Hilfe problemlos und voallem unabhängig von Programmupdates erweitern kann.

Das Ganze wird standardmäßig an den Standardbrowser geschickt, kann aber auch Programmintern in einem Fenster mit TWebBrowser angezeigt werden. (ein alternatives Programmfenster mit Chromium war auch mal mit drin, aber ist dann doch wieder rausgeflogen, obwohl der TWebBrowser vorallem in Serverumgebungen mit Netzwerkpfaden nicht funktioniert)
Und ein paar Anpassungen am JavaScript/CSS des Help&Manual waran damals auch nötig, weil der TWebBrowser damit nicht zurecht gekommen ist, bzw. diese Funktionen einfach "sperrte".

Und dann läuft die Verbreitung mit über einen AppServer im Intranet, wo ich via TidHTTPServer die Hilfedateien freigebe. Die Dateien könnten aber auch via externem HTTP-Server oder Netzwerkfreigabe (file:) geladen werden. Und theoretisch kann man HTML-Dateien auch direkt aus den Resourcen einer EXE/DLL via RES:-Protokoll vom Windows streamen lassen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#13

AW: HTML-Hilfedatei, keine Kontentanzeige

  Alt 16. Jun 2014, 15:59
Hallo,
vielen Dank für die Unterstützung.

ich Rufe Application.HelpKeyword('Glossar') im Form.onhelp auf.

Ich betreibe die Programmierung als "Hobby", für meinen eigenen kleinen Betrieb, niuchts kommerzielles, und glaube jetzt meine Grenzen erreicht zu haben.
wenn hier Profis 2-3 Monate zur Umsetzung benötigen will ich nicht abschätzen wie viel Zeit ich investieren muss.

Wenn dies wirklich so kompliziert ist, dann werde ich wohl eher auf ein Hilfesystem in meiner Anwendung verzichten, bzw. erstellen uns als externe, also nicht über F1 aufrufbare, Hilfe aufbauen.
Habe gerade mal über Batch versucht, vielleicht bekomm ich es über Shellexecute auch hin.

Dennoch, und mit dem Thema Trace habe ich mich noch nicht befasst, dieses Thema hatte ich noch nicht, wie kann man diesen Trace ziehen ?
mfg wf

Geändert von waldforest (16. Jun 2014 um 16:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#14

AW: HTML-Hilfedatei, keine Kontentanzeige

  Alt 16. Jun 2014, 16:57
Im Debug-Layout (wird beim Debuggen eigentlich automatisch geladen) die wichtigstens Fenster:
* Aufruf-Stack > Liste das auktuell aufgerufenen Funktionen (meistens oben links, da wo im Standard-Layout der Struktur liegt)
* Thread-Status > der aktive Thread und die vorhandene Threads (meistens unten, bei den Compiler-Meldungen)
* Liste überwachter Ausdrücke
* Haltepunkte
(wenn nicht vorhanden, dann siehe Ansicht > Debugfenster)

Wenn der Programmablauf angehalten ist, z.B. nach einer Exception, dann einfach in Aufruft-Stack gehen, alles markieren und Strg+C.
Programm mit F9 starten und warten bis es knallt ... meistens sieht man dann im Stack-Strace wo man grade ist und vorallem von wo die aktuelle Funktion/Codestelle aufgerufen wurde.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von blondervolker
blondervolker

Registriert seit: 14. Sep 2010
Ort: Bei: Leeeiipzzhhh
381 Beiträge
 
Delphi XE2 Architect
 
#15

AW: HTML-Hilfedatei, keine Kontentanzeige

  Alt 16. Jun 2014, 17:58
Guten Tag,

hab es ganz einfach gelöst.Hilfe erstellt als HTM mit Knoten.
Diese komplett in einen Ordner"Hilfe" geworfen.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);

//Hilfe über Browser öffnen und Fehler unterdrücken
Webbrowser1.Silent := true;
webbrowser1.navigate(extractfilepath(application.exename)+ 'Html/Hilfe.htm');
Siehe Abbildung.Vielleicht hilft das weiter...
Miniaturansicht angehängter Grafiken
hilfe.jpg  
www.bewerbungsmaker.de
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.633 Beiträge
 
Delphi 12 Athens
 
#16

AW: HTML-Hilfedatei, keine Kontentanzeige

  Alt 16. Jun 2014, 20:57
Halllo,
ich habe die aktuellen Datei geladen, aktuell liegt die Hilfe noch auf meinem Desktop PC, soll aber zukünftig im Netzwerk zur Verfügung gestellt werden. Aktuell nutze ich WIN 7.
Ich hatte mal Probleme, dass, wenn die Hilfe auf dem Netz liegt, diese nicht geladen wird. Dann habe ich diese beim Start ins Userverzeichnis kopiert und dann ging es. Aber du hast ja schon Probleme, wenn du die Hilfe lokal starten willst.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#17

AW: HTML-Hilfedatei, keine Kontentanzeige

  Alt 16. Jun 2014, 21:17
Hallo,
anbei mein Aufrufstack,

die ersten Aufrufe, welche sich unzählige male wiederholen habe ich nicht mit dabei getan.


F_Wkorb.TWkorb.FormHelp(1,1002,True)
Vcl.Forms.TApplication.DoOnHelp(1,1002,True)
Vcl.Forms.TApplication.HelpContext(1002)
F_Wkorb.TWkorb.FormHelp(1,1002,True)
Vcl.Forms.TApplication.DoOnHelp(1,1002,True)
Vcl.Forms.TApplication.HelpContext(1002)
F_Wkorb.TWkorb.FormHelp(1,1002,True)
Vcl.Forms.TApplication.DoOnHelp(1,1002,True)
Vcl.Forms.TApplication.HelpContext(1002)
F_Wkorb.TWkorb.FormHelp(1,1002,True)
Vcl.Forms.TApplication.DoOnHelp(1,1002,True)
Vcl.Forms.TApplication.HelpContext(1002)
Vcl.Forms.TCustomForm.WMHelp((83, (), 0, $8ADF0, 0))
Vcl.Controls.TControl.WndProc((83, 0, 568816, 0, 0, 0, (), 44528, 8, (), 0, 0, ()))
Vcl.Controls.TWinControl.WndProc((83, 0, 568816, 0, 0, 0, (), 44528, 8, (), 0, 0, ()))
Vcl.Forms.TCustomForm.WndProc((83, 0, 568816, 0, 0, 0, (), 44528, 8, (), 0, 0, ()))
Vcl.Controls.TWinControl.MainWndProc(???)
System.Classes.StdWndProc(330554,83,0,568816)
Vcl.Controls.TWinControl.DefaultHandler(???)
mfg wf

Geändert von waldforest (16. Jun 2014 um 21:50 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#18

AW: HTML-Hilfedatei, keine Kontentanzeige

  Alt 16. Jun 2014, 23:42
Hilfe-Aufrufe werden erst an Application.OnHelp, bzw. TApplicationEvents.OnHelp geleitet und wenn sie dort nicht verarbeitet wurden, dann auch nochmal an ActiveForm.OnHelp und erst danach landet der Aufruf bei
HelpSystem.Hook(..., ActiveForm.HelpFile, {Hilfe-Index/Context}...) // wenn eine Hilfe-Datei bei ActiveForm.HelpFile angegeben wurde
und wenn nicht vorhanden oder es False lieferte, dann bei
HelpSystem.Hook(..., Application.HelpFile, {Hilfe-Index/Context}...) // wenn eine Hilfe-Datei bei Application.HelpFile angegeben wurde
und wenn es das auch nicht gibt, oder es ebenfalls False lieferte, dann bei CM_INVOKEHELP
PostMessage(..., CM_INVOKEHELP, {Hilfe-Index/Context}...);

Wenn man also in einem dieser OnHelp die Hilfe nochmals aufruft, dann landet man natürlich in einer Endlosschleife,
außer man verlässt diese Hilfestruktur, verarbeitet den Aufruf selber oder gibt den Aufruf direkt an das HelpSystem oder CM_INVOKEHELP weiter (und sagt natürlich Result:=True und CallHelp:=False).
Wenn die Parameter Command und Data richtig sind und man nichts "Anderes" aufrufen will, dann kann man mit Result:=True und CallHelp:=True der Hilfestruktur sagen, daß es das selber an HelpSystem oder CM_INVOKEHELP weitergeben soll, ohne andere OnHelp auszulösen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (16. Jun 2014 um 23:55 Uhr)
  Mit Zitat antworten Zitat
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#19

AW: HTML-Hilfedatei, keine Kontentanzeige

  Alt 17. Jun 2014, 06:28
Hallo,
vielen Dank,
klingt alles plausibel, ich habe nun meine Eintragungen im OnHelp gelöscht.


Ich bin einen Schritt weiter, wenn ich über einen Button die Hilfe
mit Application.HelpCommand(HELP_CONTEXT,1002)

aufrufe funktioniert es.

So, nun läuft es.
Ich habe nun im OnShow
Application.HelpFile := ExtractFilePath(Application.ExeName) + 'LHelp.chm';
angegeben und nun läuft es.

(bisher hatte ich diese im OnCreate ...)


Vielen Dank für die Unterstützung mich auf den weg zu bringen....
mfg wf

Geändert von waldforest (17. Jun 2014 um 07:29 Uhr)
  Mit Zitat antworten Zitat
ATON

Registriert seit: 17. Aug 2007
3 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#20

AW: HTML-Hilfedatei, keine Kontentanzeige

  Alt 4. Nov 2016, 11:30
Aktuell hab ich das OnHelp selbst implementiert, da wir die Hilfeeinträge live aus der Datenbank ziehen und dort hinterlegt haben welches Control/Fenster mit welcher Hilfeseite verlinkt ist.
* Hilfe = eine der HTML-Dateien vom Help&Manual, inkl. eines optionalen Anchor oder eine direkte URL
* Die Tabelle ist auch in der Synchronisation, so daß man die Hilfe problemlos und voallem unabhängig von Programmupdates erweitern kann.

Das Ganze wird standardmäßig an den Standardbrowser geschickt, kann aber auch Programmintern in einem Fenster mit TWebBrowser angezeigt werden. (ein alternatives Programmfenster mit Chromium war auch mal mit drin, aber ist dann doch wieder rausgeflogen, obwohl der TWebBrowser vorallem in Serverumgebungen mit Netzwerkpfaden nicht funktioniert)
Und ein paar Anpassungen am JavaScript/CSS des Help&Manual waran damals auch nötig, weil der TWebBrowser damit nicht zurecht gekommen ist, bzw. diese Funktionen einfach "sperrte".

Und dann läuft die Verbreitung mit über einen AppServer im Intranet, wo ich via TidHTTPServer die Hilfedateien freigebe. Die Dateien könnten aber auch via externem HTTP-Server oder Netzwerkfreigabe (file:) geladen werden. Und theoretisch kann man HTML-Dateien auch direkt aus den Resourcen einer EXE/DLL via RES:-Protokoll vom Windows streamen lassen.
Hallo himitsu,

genau so möchte ich das auch bauen. Dabei gibt es das Problem, dass der ANCHOR nicht gefunden wird. Wie hast Du die Verknüpfung zu Bildern und anderen Webseiten innerhalb der Datenbank gelöst? Gibt es da eventuell ein kleines Beispiel-Project?

Viele Grüße
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:01 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