Programación General > Visual Basic 6.0 e inferiores

 Manejo De Ficheros De Ayuda

(1/2) > >>

avaguin:
Hola a todos, queria hacer una consulta. Estoy haciendo una pequeña aplicación y tengo el problema de manejar los ficheros de ayuda. He creado un fichero de ayuda en formato "chm". El problema viene cuando pongo un botón que pone AYUDA y me gustaría que al presionar dicho botón visual basic me mostrase el fichero de la ayuda. Alguien podría decirme como se hace? Cual es la sentencia que hay que poner. Yo he probado esto y me dice que no encuentra ningún fichero:

------------------------------------------
    'Para abrir los ficheros de ayuda pulsando el botón de ayuda.
    dlgCommon.HelpFile = "D:\Programacion\chef\Ayuda\Chef Ejecutivo.chm"
    dlgCommon.HelpCommand = cdlHelpContents
    dlgCommon.ShowHelp
---------------------------------------
A ver si alguien me puede ayudar. Gracias.

RadicalEd:
Es mejor hacerlo con api's.
Este es de la página de elGuille

--- Código: Text ---Const HelpFinder = &HB         'Declaración del API para 32 bits.Private Declare Function WinHelp Lib "user32" Alias "WinHelpA" _    (ByVal hWnd As Long, ByVal lpHelpFile As String, _    ByVal wCommand As Long, ByVal dwData As Long) As Long 'Este será el código a emplear:Call WinHelp(Me.hWnd, "ArchivoAyuda.hlp", HelpFinder, 0&) Si lo que pretendes es mostrar el contenido del archivo de ayuda, sin que se muestre los libritos, usa esta llamada: 'Const cdlHelpContents = &H3     'Muestra el tema de contenido del archivo de Ayuda actual. Call WinHelp(Me.hWnd, "ArchivoAyuda.hlp", cdlHelpContents, 0&) 

avaguin:
Gracias RAdicalEd por responder. La verdad es que tu ayuda me ha servido en parte. Después de probarlo funciona, pero tiene un "peor" y es que funciona con ficheros "hlp" y yo el que tengo es un fichero de ayuda tipo "chm". A ver si puedes darme una ayuda de manejar estos tipos de ficheros. Gracias.

cpmario:
Coloca esto en un módulo BAS


--- Código: Text ---Option Explicit'En Microsoft TechNet puedes encontrar este artículo:'HOWTO: Use HTML Help API in a Visual Basic 5.0 Application'PSS ID Number: Q183434''Aunque la definición de la Enumeración y la primera declaración'es de las news''Htmlhelp consts  Enum HH_COMMAND                                 ' WinHelp's HELP_WM_HELP.        HH_DISPLAY_TOPIC = &H0    HH_HELP_FINDER = &H0        ' WinHelp equivalent    HH_DISPLAY_TOC = &H1        ' not currently implemented    HH_DISPLAY_INDEX = &H2      ' not currently implemented    HH_DISPLAY_SEARCH = &H3     ' not currently implemented    HH_SET_WIN_TYPE = &H4    HH_GET_WIN_TYPE = &H5    HH_GET_WIN_HANDLE = &H6    HH_GET_INFO_TYPES = &H7     ' not currently implemented    HH_SET_INFO_TYPES = &H8     ' not currently implemented    HH_SYNC = &H9    HH_ADD_NAV_UI = &HA         ' not currently implemented    HH_ADD_BUTTON = &HB         ' not currently implemented    HH_GETBROWSER_APP = &HC     ' not currently implemented    HH_KEYWORD_LOOKUP = &HD    HH_DISPLAY_TEXT_POPUP = &HE ' display string resource id                                ' or text in a popup window    HH_HELP_CONTEXT = &HF       ' display mapped numeric value                                ' in dwData    HH_TP_HELP_CONTEXTMENU      ' Text pop-up help, similar to                                ' WinHelp's HELP_CONTEXTMENU.    HH_TP_HELP_WM_HELP = &H11   ' text pop-up help, similar to                                ' WinHelp's HELP_WM_HELP.    HH_CLOSE_ALL = &H12         ' close all windows opened directly                                ' or indirectly by the caller    HH_ALINK_LOOKUP = &H13      ' ALink version of HH_KEYWORD_LOOKUPEnd Enum 'HtmlHelp api callDeclare Function HtmlHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" _    (ByVal hwndCaller As Long, ByVal pszFile As String, _    ByVal uCommand As HH_COMMAND, ByVal dwData As Long) As Long  
El siguiente código va en una forma

--- Código: Text --- Private Sub Command1_Click()    'De esta forma se muestra en el tópico por defecto    HtmlHelp Me.hWnd, App.Path & "\Ayuda.chm" & ">Main", HH_DISPLAY_TOC, 0End Sub Private Sub Form_Load()    App.HelpFile = App.Path & "\Ayuda.chm"End Sub  
Si necesitas algo con más caractéristicas, busca en la red el código fuente de 'ElitePad' de Andrea Batina.

 :)

avaguin:
cpmario, simplemente muchas gracias. el ejemplo funciona de maravilla. Solo pedirte un consejo más. Si quiero que cuando estoy en un formulario en concreto (por ejemplo un formulario de productos) en donde tengo un botón de ayuda y al hacer click en el quiero que me vaya a la ayuda de ese apartado en el fichero ayuda (el fichero ayuda lo tengo codificado por Productos 12, recetas 21, y así sucesivamente. No se si me explico pero si para cada tema de la ayuda pongo un código (creo que se llama Help_contex number) para que al pulsar en el botón adecuado vaya al tema en concreto. A ver si no es mucho pedir y puedes echarme una mano. Un millón de gracias de todas formas.
El programa de hacer ayudas que utilizo es en Help&manual.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa