Delphi-PRAXiS

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/)
-   -   Delphi Hilfe-Datei (*.hlp) aus D2007 aufrufen (https://www.delphipraxis.net/141396-hilfe-datei-%2A-hlp-aus-d2007-aufrufen.html)

MatthiasR 8. Okt 2009 10:16


Hilfe-Datei (*.hlp) aus D2007 aufrufen
 
Wir planen gerade den Umstieg von D7 auf D2007 und es sieht momentan alles recht gut aus. Nur ein Problem haben wir aktuell noch: der Aufruf unserer Hilfe-Datei (*.hlp) aus dem Programm heraus. Bisher haben wir das unter D7 so gemacht:
Delphi-Quellcode:
Application.HelpFile := 'hilfe.hlp';
Application.HelpCommand(HELP_FINDER, 0);
Aber unter D2007 funktioniert das irgendwie nicht mehr. Weiß jemand warum und wie ich *.hlp-Dateien unter D2007 aufrufen kann?

Bernhard Geyer 8. Okt 2009 10:18

Re: Hilfe-Datei (*.hlp) aus D2007 aufrufen
 
Wieso noch HLP-Dateien? Ab Windows Vista (also schon seit 3 Jahren) wird dieses Format "Out of the Box" nicht mehr von Windows unterstützt!
Also falls du Vista/Win2008/Win7 hast wird das so nicht mehr gehen (ohne das der user gesondert von MS einen Download anstoßen muss und installieren).

chaosben 8. Okt 2009 10:21

Re: Hilfe-Datei (*.hlp) aus D2007 aufrufen
 
Wenn du ein Keyword hast, könntest du den Umweg über ShellExecute und winhlp32.exe -k Keyword gehen. Ist nicht schön, aber geht.

MatthiasR 8. Okt 2009 10:53

Re: Hilfe-Datei (*.hlp) aus D2007 aufrufen
 
Habe folgenden Beitrag gefunden, der mir weitergeholfen hat:
Man muss sich eine Kopie der Delphi-Unit "WinHelpViewer" erstellen, dem Projekt hinzufügen und die Methode "TWinHelpViewer.UnderstandsTopic" folgendermaßen abändern:
Delphi-Quellcode:
function TWinHelpViewer.UnderstandsTopic(const Topic: String): Boolean;
begin
  { after setting the defaults, if there's a Tester, ask it. }
  if Assigned(WinHelpTester) then
    Result := WinHelpTester.CanShowTopic(Topic, HelpFile(''))
  else
    //****** Modified*************
    {$IFDEF MSWINDOWS}
    Result := True;
    {$ENDIF}
    {$IFDEF LINUX}
    Result := False;
    {$ENDIF}
    //****** Modified*************
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 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