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
Seite 1 von 2  1 2      
user69

Registriert seit: 11. Dez 2004
107 Beiträge
 
#1

Chm help in PerMonitorDPI V2

  Alt 21. Sep 2020, 09:56
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 ....
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

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

AW: Chm help in PerMonitorDPI V2

  Alt 21. Sep 2020, 13:27
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.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Steku

Registriert seit: 12. Mai 2008
185 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

AW: Chm help in PerMonitorDPI V2

  Alt 21. Sep 2020, 13:36
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
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#4

AW: Chm help in PerMonitorDPI V2

  Alt 21. Sep 2020, 13:51
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.
Ist heute CHM noch zeitgemäß? Wo sinngemäß alles online passiert?
  Mit Zitat antworten Zitat
user69

Registriert seit: 11. Dez 2004
107 Beiträge
 
#5

AW: Chm help in PerMonitorDPI V2

  Alt 21. Sep 2020, 19:54
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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Chm help in PerMonitorDPI V2

  Alt 21. Sep 2020, 21: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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

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

Registriert seit: 11. Dez 2004
107 Beiträge
 
#7

AW: Chm help in PerMonitorDPI V2

  Alt 23. Sep 2020, 13: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
 
#8

AW: Chm help in PerMonitorDPI V2

  Alt 23. Sep 2020, 13: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 13:18 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#9

AW: Chm help in PerMonitorDPI V2

  Alt 23. Sep 2020, 14: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.084 Beiträge
 
Delphi 12 Athens
 
#10

AW: Chm help in PerMonitorDPI V2

  Alt 23. Sep 2020, 14: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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (23. Sep 2020 um 14:44 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:25 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