![]() |
ApplicationHelpFile aus Resource oder Stream
Hallo Zusammen,
Ist es möglich eine CHM Hilfedatei, die ich per Application.HelpFile meiner Anwendung zuweise auch aus einem Stream oder ähnlichem zu laden? Das Problem mit der Filesystem Ebene sind bei meiner Netzwerkanwendung immer die Freigabe der CHM Datei, gleichzeitiger Zugriff, automatisches Ersetzen (Update) der CHM Datei. Schöner wäre es, wenn ich diese als Blob oder ähnliches in der Datenbank ablegen könnte und beim Start meiner Anwendung auslesen und verarbeiten könnte. |
AW: ApplicationHelpFile aus Resource oder Stream
Nur eine Idee: könntest Du die chm nicht beim Programmstart aus Deinem Blob lesen, im temp-Verzeichnis ablegen und der Anwendung dynamisch zuweisen? Bei Programmende löschst Du die Datei dann einfach wieder.
|
AW: ApplicationHelpFile aus Resource oder Stream
Hallo,
Ja diese Idee hatte ich auch schon bzw. so in der Art ist es im Moment schon gelöst: Ich lese die CHM Datei aus dem (möglicherweise entferntem) Verzeichnis, speichere sie in Application-Temp und weise die Datei dort zu. Dennoch führt das zu mehreren Problemen: - Manchmal haben User nicht mal darauf Schreibrechte - Auf Terminalserverlösungen mit 50 Usern sind das 50x temporäre Dateien mal 30 MB - Das Updaten der Haupt-CHM führt manchmal wegen Berechtigungen zu Problemen (schreibgeschützt oder von anderen Usern geöffnet) - Wenn das Programm abstürzt wird die temporäre Datei nicht gelöscht - ... |
AW: ApplicationHelpFile aus Resource oder Stream
Auf die CHM verzichten.
Der Inhalt ist ja letztlich (mehr oder weniger) eine "gepackte" Webseite. Den Inhalt der Hilfe von daher "einfach" in 'nem TWebBrowser anzeigen und über 'nen Webserver ausliefern lassen? Nur mal so als Idee, wenn's anders nicht sinnvoll realisierbar ist. Die Komponente TApplicationEvents hat dafür das Ereignis OnHelp.
Delphi-Quellcode:
function TForm1.AppEventsHelp(Command: Word; Data: Integer; var CallHelp: Boolean): Boolean;
In Data steht der Wert aus HelpContext der Komponenten, die beim Hilfeaufruf den Fokus hat. Damit könnte man dann in 'nem TWebBrowser navigieren:
Delphi-Quellcode:
CallHelp := False;
FormFuerDieHilfeanzeige.WebBrowser.Navigate(Format('http://ServerDerHilfeZurVerfügungStellt:%d/ProgrammnameOderSowas?HelpContext=%d',[PortDesServersWennNicht80,Data])); |
AW: ApplicationHelpFile aus Resource oder Stream
Zitat:
Und falls nicht, so funktiniert Windows praktisch nicht mehr. Zitat:
Zitat:
Zitat:
Gelöscht wird nix. Das kann man wenn es unbedingt sein muss in den Uninstaller einbauen. |
AW: ApplicationHelpFile aus Resource oder Stream
Man kann Dateien aus einer Ressource auch "direkt" aufrufen.
![]() Zitat:
Bei Serversystemen hat windows standardmäßig aktiv, daß Temp auch regelmäßig geleert wird und bei HeimPCs könnte man sowas auch aktivieren. Wir geben unsere Hilfe ("pures" HTML über einen TidHTTPServer raus, den man im lokal Programm oder in einer Serveranwendung irgendwo im Intranet/Internet laufen lassen könnte. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:02 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