2016-07-06 4 views
3

J'ai un fichier .hlp qui va avec l'application.
Parce que la fonctionnalité n'a pas changé depuis que j'ai écrit l'application, le hlp (écrit en 2003) est toujours valide.
Cependant, lorsque je compile l'application dans Delphi XE7, je ne peux pas obtenir l'application pour reconnaître le fichier hlp.Comment puis-je utiliser un fichier hlp pour l'aide contextuelle dans mon application?

Dans le fichier .dpr J'ai

begin 
    Application.Initialize; 
    Application.HelpFile := 'Life32.hlp'; 
    Application.Run; 
    //sometimes the application hung here, due to OLE issues 
    //exitprocess prevents that. 
    ExitProcess(0); 
end. 

Quand je

procedure TProgCorner.Button2Click(Sender: TObject); 
begin 
    Application.HelpContext(4); 
end; 

Je reçois

exception Première chance à 75EEB9BC $. Classe d'exception EHelpSystemException avec le message 'Aucune aide contextuelle installée'.

La propriété helpfile de la forme est définie sur exename.hlp.
Un double-clic manuel sur le fichier .hlp dans l'explorateur ouvre très bien le fichier hlp.

Comment puis-je obtenir Delphi pour ouvrir le fichier hlp lorsqu'il est appelé?

Répondre

4

Vous devez inclure l'unité Vcl.WinHelpViewer dans votre projet pour que le système WinHelp soit installé. Veuillez noter que la prise en charge de WinHelp s'est arrêtée à XP et sur les versions ultérieures, le composant WinHelp doit être installé séparément.

+0

'Dans les versions ultérieures, le composant WinHelp doit être installé' Installé dans Windows en tant que téléchargement séparé de MS? ou installé dans l'IDE delphi? Je ne sais pas parce que sur mon système W7, il a juste fonctionné hors de la boîte. BTW WinHelpViewer et le tweak suivant ont corrigé le problème: 'Application.HelpFile: = ExtractFilePath (Application.ExeName) + 'Life32.hlp';' – Johan

+0

Rien à voir avec l'ide. C'est un téléchargement de MS. Vous l'aurez déjà installé sur votre boîte Win7. –

+3

Il existe un script d'installation modifié qui va installer winhelp sur Win10. Voir http://answers.microsoft.com/en-us/windows/forum/apps_windows_10-winapps/winhlp32exe-on-windows-10/91e3366d-cc49-4e6d-b783-9d72b18f2947?auth=1 et faites défiler jusqu'à ce que vous trouviez le nom 'Bahampour' – MartynA