AGB  ·  Datenschutz  ·  Impressum  







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

Chm help in PerMonitorDPI V2

Ein Thema von user69 · begonnen am 21. Sep 2020 · letzter Beitrag vom 23. Sep 2020
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

AW: Chm help in PerMonitorDPI V2

  Alt 21. Sep 2020, 20:03
PDF unterstützt per se auch Sprungmarken.

Wir haben unsere Hilfe als "richtiges" HTML, welches "standardmäßig" über einen TIdHTTPServer lokal ausgegeben wird.
(Help&Manual bietet auch eine eigene HTTP-ServerApp an, aber die ist sicherheitsteschnisch eine Katastrophe und das ist noch untertrieben)
Alternativ direkt von der WebSeite oder aus einem Verzeichnis.
Entweder in einem eigenen TWebBrowser oder im Standardbrowser (meistens Letzteres).

Verzeichnisse aus Netzwerkfreigaben (SMB) hatten aber das Problem, dass sie im Internet Explorer als "eingeschränkte Zone" gelten, währerend ein "unkontrolierbarer" Port 80, irgendwo im Intranet, als "vertrauenswürdig" gilt, also laut Standardeinstellungen des IE. Und da es hier nicht "gut" umsetzbar ist auf jedem Client-PC die Sicherheitseinstellungen zu ändern/vorzuschreiben, drum der kleine WebServer, damit nicht Teile vom CSS und JS gesperrt werden und die Hilfe dann nicht mehr richtig läuft/aussieht.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (21. Sep 2020 um 20:10 Uhr)
  Mit Zitat antworten Zitat
user69

Registriert seit: 10. Dez 2004
120 Beiträge
 
#2

AW: Chm help in PerMonitorDPI V2

  Alt 23. Sep 2020, 12:01
Hm, irgendwie habe ich bisher kein Optimum gefunden:

1. Chm via HtmlHelpViewer hast halt den Nachteil, dass die nicht skaliert. Leider brachten auch meine Versuche diese Hilfe per SetThreadDpiAwarenessContext(DPI_AWARENESS_CONTEXT _SYSTEM_AWARE) umzustellen keine Erfolge.
2. Pure html per Standardbrowser auf nem Server oder Verzeichnis hat den Nachteil dass ich mit jedem Hilfeaufruf eine neues Hilfefenster im Browser öffne.
3. Im PDF (per Verzeichnis) finde ich keinen Weg die Sprungmarken anzuspringen (geht evtl. aber online).

Vielleicht mach ich mir auch zu viel Gedanken um ne Hilfe...

Was sind da von euch die Wege wie ihr die Hilfe einbindet?
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Chm help in PerMonitorDPI V2

  Alt 23. Sep 2020, 12:15
Wenn es zum Corporate Design der App passen soll halt pro Hilfe Thema ein Formular mit genau diesem Inhalt. (schrecklich...)
Treeview mit Hilfethemen geht auch.
Für Kleinigkeiten ein selbst erzeugtes Hint Window.
Als Doku oftmals ein eingebettetes Pdf.
Gruß vom KodeZwerg

Geändert von KodeZwerg (23. Sep 2020 um 12:18 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.591 Beiträge
 
Delphi 7 Professional
 
#4

AW: Chm help in PerMonitorDPI V2

  Alt 23. Sep 2020, 13:04
CHM enthält HTML.

EPub enthält HTML.

Da muss man schonmal nicht viel "ummodeln".

Umgang mit Delphi und EPub, siehe Delphipraxis: Anzeigen eines Ebooks im epub-Format

Mein Weg ist:

Ein Formular, das dem der CHM-Hilfe verblüffend ähnlich sieht.

Ein "eingebauter" Webserver (ähnlich zum Vorschlag von himitsu).

Hilfe ist in 'nem "erweiterten" EPub. Das EPub ist auch per EPubViewer lesbar.

Die "Erweiterung" ist 'ne MemTable, die ich im Programm als DataSet nutzen kann, um so leicht auf F1 und den Wert aus dem HelpContext der Komponenten, Edits, was auch immer, reagieren kann.

Der Rest ist eigentlich nur: Auf den Hilfeaufruf reagieren. Der eingebaute TWebBrowser wird hierbei per Navigate auf eine Url zum eingebauten WebServer geleitet, der entnimmt der Aufrufurl den HelpContext, sucht den passenden Satz im DataSet, findet dort die Angaben zur entsprechenden Datei im EPub, entzippt sie und liefert sie an den TWebBrowser.

Der Baum im "CHM-Hilfe-Clone-Tree" wird beim Programmstart aus dem DataSet generiert, ebenso die Stichwortsuche. Beim Klick auf irgendwas im Baum oder in der Stichwortsuche, wird auch nur der TWebBrowser per Navigate (wie oben) auf den WebServer geleitet.

Klingt alles viel aufwändiger, als es eigentlich wirklich ist.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Chm help in PerMonitorDPI V2

  Alt 23. Sep 2020, 13:41
Man kann sogar HTML-Dateien und Dergleichen direkt aus den Resourcen über das res:-Protokoll an den Browser liefern.

Da könnte man sich dann auch den HTTP-Server sparen. (ich weiß aber nicht, wie hier die Standard-Sicherheitsrichtlinien im IE/Edge aussehn)
res://C:%5CProgramme%5CFirma%5CMyApp.exe/RT_HTML/index.html (eventuell kann RT_HTML auch weggelassen werden)
https://docs.microsoft.com/en-us/pre...67740(v=vs.85)

Wir haben auch in der Datenbank etwas Editierbares (über eine Synchro Aktualisierbares) mit FormularOrKeyword|KomponenteOrEmpty|HTMLFileNameOr FullURL|Anker
bei allen Forumlaten den HelpIndex auf 100 und in der HauptForm ein TApplicationEvents.OnHelp, wo ActiveControl gesucht wird, und über Parents auch die übergeordneten PageControl/Frame/GroupBox, bis hoch zu Form-ClassName ... das Erste, was gefunden wurde, oder die Index-Seite.
Alternativ kann man auch explizit bei einer Komponente das HelpKeyword setzen oder im Code das Keyword aufrufen.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (23. Sep 2020 um 13:44 Uhr)
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
736 Beiträge
 
Delphi 12 Athens
 
#6

AW: Chm help in PerMonitorDPI V2

  Alt 23. Sep 2020, 14:22
Help & Manual empfiehlt eWriter als CHM-Ersatz:
https://www.helpandmanual.com/help/h...o_ewriter.html

Da gibts auch eine Anleitung, wie man dabei direkt einzelne Topics aufruft.
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz