¿Cómo invocar este tipo de Help desde mi aplicación?
Previous topic  First topic  Next topic


Para invocar archivos CHM desde un programa [x]Harbour MiniGui es necesario utilizar una función similar a DisplayHelpTopic( xTopic , nMet ) de MiniGui Extended.

En las versiones vigentes de Object Oriented Harbour Gui (OOHG) y Oficial MiniGui no existe dicha función.

Entonces usaremos una función extraída del muy interesante ejemplo que subió a los files Carlos Britos ( bcd12a@yahoo.com.ar ) llamado Chm_Hlp.zip

Dicho demo tiene la habilidad de llamar a los dos formatos de help mas populares: hlp y chm. El primero es el mas viejo y esta en franco desuso.

He aquí una funcion recortada que nos servirá para las tres versiones de minigui actuales, el ejemplo que acompaña a QPM hace uso de esta función:


*==============================================================*
Procedure US_DisplayHelpTopic( cActiveHelpFile , xTopic , nMet )
*--------------------------------------------------------------*
*- Adapted from Carlos Britos ( bcd12a@yahoo.com.ar )         -*
*-              sample help Chm_Hlp.zip                       -*
*==============================================================*
   LOCAL cParam := ""
   If empty(cActiveHelpFile)
       Return
   endif
   _HMG_nTopic := xTopic
   _HMG_nMet   := nMet
   if valtype(nMet) == 'U'
       nMet := 0
   endif
   If ValType( xTopic ) == 'N'
       cParam := "-mapid " + LTrim( Str( xTopic )) +  " " + cActiveHelpFile
   ElseIf ValType( xTopic ) == 'C'
       cParam :=  '"' + cActiveHelpFile + "::/" + AllTrim( xTopic ) + '.htm"'
   ElseIf ValType( xTopic ) == 'U'
       cParam := '"' + cActiveHelpFile + '"'
   EndIf
   _Execute( 0 , "Open", "HH.exe", cParam , , 5 )
Return


Algunos ejemplos simples de invocación:

/* Para mostrar el help desde el primer tópico */


SET HELPFILE TO 'Simple Help Generator.chm'
do case
   case US_MiniGuiType() == "M1"     
/* Oficial MiniGUI 1x */
      US_DisplayHelpTopic( _HMG_ActiveHelpFile , 1 )
   case US_MiniGuiType() == "M3"     
/* Oficial MiniGUI 3x */
      US_DisplayHelpTopic( _HMG_SYSDATA [ 217 ] , 1 )
   case US_MiniGuiType() == "E1"     
/* Extended MiniGUI 1x */
      DISPLAY HELP MAIN
   case US_MiniGuiType() == "O3"     
/* Object Oriented Harbour GUI 3x */
      US_DisplayHelpTopic( 'Simple Help Generator.chm' , 1 )
endcase


/*Para mostrar el help desde un tópico en orden numérico (tópico 3) */

SET HELPFILE TO 'Simple Help Generator.chm'
do case
   case US_MiniGuiType() == "M1"     
/* Oficial MiniGUI 1x */
      US_DisplayHelpTopic( _HMG_ActiveHelpFile , 3 )
   case US_MiniGuiType() == "M3"     
/* Oficial MiniGUI 3x */
      US_DisplayHelpTopic( _HMG_SYSDATA [ 217 ] , 3 )
   case US_MiniGuiType() == "E1"     
/* Extended MiniGUI 1x */
      US_DisplayHelpTopic( _HMG_ActiveHelpFile , 3 )
   case US_MiniGuiType() == "O3"     
/* Object Oriented Harbour GUI 3x */
      US_DisplayHelpTopic( 'Simple Help Generator.chm' , 3 )
endcase


/*Para mostrar el help desde un tópico mediante su nick name (nick: HelpAboutFunction) */

SET HELPFILE TO 'Simple Help Generator.chm'
do case
   case US_MiniGuiType() == "M1"     
/* Oficial MiniGUI 1x */
      US_DisplayHelpTopic( _HMG_ActiveHelpFile , "HelpAboutFunction" )
   case US_MiniGuiType() == "M3"     
/* Oficial MiniGUI 3x */
      US_DisplayHelpTopic( _HMG_SYSDATA [ 217 ] , "HelpAboutFunction" )
   case US_MiniGuiType() == "E1"     
/* Extended MiniGUI 1x */
      US_DisplayHelpTopic( _HMG_ActiveHelpFile , "HelpAboutFunction" )
   case US_MiniGuiType() == "O3"     
/* Object Oriented Harbour GUI 3x */
      US_DisplayHelpTopic( 'Simple Help Generator.chm' , "HelpAboutFunction" )
endcase


Estos ejemplos requieren la funcion US_MiniGuiType():

Function US_MiniGuiType()
   //msginfo( miniguiversion() )
   do case
      case at( "Extended" , MiniGuiVersion() ) > 0
         Return "E1"
      case at( "ooHG" , MiniGuiVersion() ) == 1
         Return "O3"
      case at( "Harbour MiniGUI 1" , MiniGuiVersion() ) == 1
         Return "M1"
      case at( "Harbour MiniGUI 3" , MiniGuiVersion() ) == 1
         Return "M3"
      otherwise
         msginfo( "Error detecting MiniGui type: " + MiniGuiVersion() )
   endcase
Return "?"


QPM (QAC Based Project Manager) Version 05.05.0016

Compilación Incremental con las tres versiones de librerías mas populares de la familia MiniGui: HMG, HMG Extended y OOHG.

Lista de usuarios    Donar vía PayPal    Sitio del proyecto


Powered by QPM  

Previous topic  First topic  Next topic