• Lunes 18 de Noviembre de 2024, 07:49

Autor Tema:  Manejo De Ficheros De Ayuda  (Leído 2042 veces)

avaguin

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Manejo De Ficheros De Ayuda
« en: Sábado 27 de Agosto de 2005, 11:11 »
0
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

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Manejo De Ficheros De Ayuda
« Respuesta #1 en: Sábado 27 de Agosto de 2005, 19:09 »
0
Es mejor hacerlo con api's.
Este es de la página de elGuille

Código: Text
  1. Const HelpFinder = &HB        
  2. 'Declaración del API para 32 bits.
  3. Private Declare Function WinHelp Lib "user32" Alias "WinHelpA" _
  4.     (ByVal hWnd As Long, ByVal lpHelpFile As String, _
  5.     ByVal wCommand As Long, ByVal dwData As Long) As Long
  6.  
  7. 'Este será el código a emplear:
  8. Call WinHelp(Me.hWnd, "ArchivoAyuda.hlp", HelpFinder, 0&)
  9.  
  10. Si lo que pretendes es mostrar el contenido del archivo de ayuda, sin que se muestre los libritos, usa esta llamada:
  11.  
  12. '
  13. Const cdlHelpContents = &H3     'Muestra el tema de contenido del archivo de Ayuda actual.
  14.  
  15. Call WinHelp(Me.hWnd, "ArchivoAyuda.hlp", cdlHelpContents, 0&)
  16.  
El pasado son solo recuerdos, el futuro son solo sueños

avaguin

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Re: Manejo De Ficheros De Ayuda
« Respuesta #2 en: Lunes 29 de Agosto de 2005, 10:12 »
0
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

  • Miembro HIPER activo
  • ****
  • Mensajes: 629
    • Ver Perfil
    • http://www.cpimario.com
Re: Manejo De Ficheros De Ayuda
« Respuesta #3 en: Lunes 29 de Agosto de 2005, 18:42 »
0
Coloca esto en un módulo BAS

Código: Text
  1. Option Explicit
  2. 'En Microsoft TechNet puedes encontrar este artículo:
  3. 'HOWTO: Use HTML Help API in a Visual Basic 5.0 Application
  4. 'PSS ID Number: Q183434
  5. '
  6. 'Aunque la definición de la Enumeración y la primera declaración
  7. 'es de las news
  8. '
  9. 'Htmlhelp consts
  10.  
  11.  Enum HH_COMMAND
  12.                                  ' WinHelp's HELP_WM_HELP.
  13.    
  14.     HH_DISPLAY_TOPIC = &H0
  15.     HH_HELP_FINDER = &H0        ' WinHelp equivalent
  16.     HH_DISPLAY_TOC = &H1        ' not currently implemented
  17.     HH_DISPLAY_INDEX = &H2      ' not currently implemented
  18.     HH_DISPLAY_SEARCH = &H3     ' not currently implemented
  19.     HH_SET_WIN_TYPE = &H4
  20.     HH_GET_WIN_TYPE = &H5
  21.     HH_GET_WIN_HANDLE = &H6
  22.     HH_GET_INFO_TYPES = &H7     ' not currently implemented
  23.     HH_SET_INFO_TYPES = &H8     ' not currently implemented
  24.     HH_SYNC = &H9
  25.     HH_ADD_NAV_UI = &HA         ' not currently implemented
  26.     HH_ADD_BUTTON = &HB         ' not currently implemented
  27.     HH_GETBROWSER_APP = &HC     ' not currently implemented
  28.     HH_KEYWORD_LOOKUP = &HD
  29.     HH_DISPLAY_TEXT_POPUP = &HE ' display string resource id
  30.                                 ' or text in a popup window
  31.     HH_HELP_CONTEXT = &HF       ' display mapped numeric value
  32.                                 ' in dwData
  33.     HH_TP_HELP_CONTEXTMENU      ' Text pop-up help, similar to
  34.                                 ' WinHelp's HELP_CONTEXTMENU.
  35.     HH_TP_HELP_WM_HELP = &H11   ' text pop-up help, similar to
  36.                                 ' WinHelp's HELP_WM_HELP.
  37.     HH_CLOSE_ALL = &H12         ' close all windows opened directly
  38.                                 ' or indirectly by the caller
  39.     HH_ALINK_LOOKUP = &H13      ' ALink version of HH_KEYWORD_LOOKUP
  40. End Enum
  41.  
  42. 'HtmlHelp api call
  43. Declare Function HtmlHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" _
  44.     (ByVal hwndCaller As Long, ByVal pszFile As String, _
  45.     ByVal uCommand As HH_COMMAND, ByVal dwData As Long) As Long
  46.  
  47.  

El siguiente código va en una forma
Código: Text
  1.  
  2. Private Sub Command1_Click()
  3.     'De esta forma se muestra en el tópico por defecto
  4.     HtmlHelp Me.hWnd, App.Path & "\Ayuda.chm" & ">Main", HH_DISPLAY_TOC, 0
  5. End Sub
  6.  
  7. Private Sub Form_Load()
  8.     App.HelpFile = App.Path & "\Ayuda.chm"
  9. End Sub
  10.  
  11.  

Si necesitas algo con más caractéristicas, busca en la red el código fuente de 'ElitePad' de Andrea Batina.

 :)

avaguin

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Re: Manejo De Ficheros De Ayuda
« Respuesta #4 en: Lunes 29 de Agosto de 2005, 20:47 »
0
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.

cpmario

  • Miembro HIPER activo
  • ****
  • Mensajes: 629
    • Ver Perfil
    • http://www.cpimario.com
Re: Manejo De Ficheros De Ayuda
« Respuesta #5 en: Lunes 29 de Agosto de 2005, 21:51 »
0
Citar
Si necesitas algo con más características, busca en la red el código fuente de 'ElitePad' de Andrea Batina.

http://www.planet-source-code.com/vb/scrip...=13291&lngWId=1
 :)