Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Chm help in PerMonitorDPI V2 (https://www.delphipraxis.net/205535-chm-help-permonitordpi-v2.html)

user69 21. Sep 2020 08:56

Chm help in PerMonitorDPI V2
 
Hallo Gemeinde,

Kann mir jemand einen Tipp geben, wie die chm Hilfe in Programmen die PerMonitorDPI V2 zum “akzeptablen” skalieren gebracht werden kann?

Wenn ich derzeit die chm hilfe per HtmlHelpViewer einbinde und aufrufe startet die immer mit System DPI und auf dem Hauptmonitor. Beim verschieben auf den Zweitmonitor wird dann die Hilfe auch nicht skaliert und bleibt in der Größe wie bei SystemDPI.
Wenn ich mir die HH.exe anschaue ist die wohl auch nur SystemDPI aware.
Mir würde es ja schon ausreichen, wenn die Hilfe wenigstens skaliert (und unscharf) wird, aber so elendig klein (oder groß) ist echt schlecht. Ich denk bei Programmen die nur System DPI aware sind, regiert die Hilfe auch soweit ok, aber dahin will ich mit meinem Programm nicht zurück.

Hoffe ihr habt da Ideen ....

KodeZwerg 21. Sep 2020 12:27

AW: Chm help in PerMonitorDPI V2
 
Bei Torry gibt es von "EC Software" eine kostenfreie Anleitung nur finde ich die gerade nicht.
Die Datei die man lädt nennt sich "gettinghtmlhelpreadyfor4kmonitors.zip" und enthält ein pdf und ein beispiel chm file.

Steku 21. Sep 2020 12:36

AW: Chm help in PerMonitorDPI V2
 
Zitat:

Zitat von KodeZwerg (Beitrag 1473968)
Bei Torry gibt es von "EC Software" eine kostenfreie Anleitung nur finde ich die gerade nicht.
Die Datei die man lädt nennt sich "gettinghtmlhelpreadyfor4kmonitors.zip" und enthält ein pdf und ein beispiel chm file.

Bitteschön: https://www.helpandmanual.com/downloads_delphi.html

Gruß
Steku

haentschman 21. Sep 2020 12:51

AW: Chm help in PerMonitorDPI V2
 
Zitat:

Hoffe ihr habt da Ideen ....
Ja...in dieser Zeit, wo du dich gequält hast die Optik hinzubiegen, hättest schon ein PDF/Word Dokument erstellt und mit ShellExecute geöffnet. :zwinker:
:gruebel: Ist heute CHM noch zeitgemäß? Wo sinngemäß alles online passiert?

user69 21. Sep 2020 18:54

AW: Chm help in PerMonitorDPI V2
 
Zitat:

"EC Software" eine kostenfreie Anleitung
Das löst das Problem leider nicht. Meine Hilfe und deren Test Hilfe funktionieren genauso.
Grundlegend ist die Hilfe zwar skalierbar (dabei jedoch auch nur das rechte Fenster), aber das ist ja kaum einem User zuzumuten. Sowas wird doch ganz klar von der Software erwartet.

Ne Idee wäre die Hilfe in SystemDPIAware aufzurufen (die Unschärfe akzeptiert), aber ich denk das geht mit dem HtmlHelpViewer wohl nicht. Da müsst ich wohl über ne Zwischenapp in SystemDPIAware per ShellExecute gehen - das ist dann wohl auch nicht die Lösung. Oder kann jemand sagen, ob das HelpWindow in SystemDPI bekomme. Es ist ja ein Thread und den müsste man ja auch in SystemDPI bekommen.

Sonst muss ich mich wohl wirklich von der CHM Help verabschieden. Aber bei PDF ist es schlecht an die richtige stelle zu springen. Und Online Hilfe ginge auch, versagt aber wenn aber kein Internetzugriff da ist.

Irgendwie hat alles Nachteile. Was wäre denn euer Weg dies zu lösen?

himitsu 21. Sep 2020 20:03

AW: Chm help in PerMonitorDPI V2
 
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.

user69 23. Sep 2020 12:01

AW: Chm help in PerMonitorDPI V2
 
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?

KodeZwerg 23. Sep 2020 12:15

AW: Chm help in PerMonitorDPI V2
 
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.

Delphi.Narium 23. Sep 2020 13:04

AW: Chm help in PerMonitorDPI V2
 
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.

himitsu 23. Sep 2020 13:41

AW: Chm help in PerMonitorDPI V2
 
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:08 Uhr.
Seite 1 von 2  1 2      

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