[RESUELTO] Abrir archivo de ayuda CHM en una parte concreta y no al inicio
#1
Escrito 12 noviembre 2009 - 12:56
Quiero hacer un fichero de ayuda para un programa hecho con delphi 7 en Win XP.
Anteriormente usé archivos *.hlp ; pero ahora quiero hacerlos del tipo *.chm, pues creo que son más atractivos visualmente y quiero que se puedan usar en Vista y Win 7 (donde directamente no se aceptan ficheros *.hlp).
Puedo hacer los archivos *.chm sin problemas y uso el programa HelpMaker 7.3 .
La pregunta que quiero hacer es: ¿Hay alguna forma de enlazar a una parte concreta de la ayuda al llamarla?. Me explico, si hay una parte del programa que realiza el proceso ABC, que la ayuda lleve directamente a la explicación de ese proceso y que el usuario no se vea en el menú principal y deba hacer varios clic de ratón hasta llegar a esa explicación.
Con las ayudas *.hlp podía hacer eso, pero no sé como hacerlo llamando a las ayudas *.chm.
A propósito, quizás no sea la forma correcta, pero para abrir las ayudas en *.chm uso este proceso:
ShellExecute(Handle,nil,PChar( 'c:\Archivo_Ayuda.chm' ),'','',SW_SHOWNORMAL);
Muchas gracias de antemano.
Ramón.
#2
Escrito 12 noviembre 2009 - 01:44
http://www.swissdelp...code.php?id=402
y aquí en la web de martin esto
http://www.martinsto...tml#VclHtmlHelp
espero que te sirva
saludos
#3
Escrito 12 noviembre 2009 - 01:45
Uses HelpIntfs;
procedure TForm1.Button1Click(Sender: TObject); var Ayuda: IHelpSystem; begin Ayuda.ShowHelp('Funcion o proceso', 'Ubicacion del archivo'); end; procedure TForm1.Button1Click(Sender: TObject); var Ayuda: IHelpSystem; begin Ayuda.ShowTopicHelp('Topico', 'ubicacion del archivo'); end;
Saludos.
#4
Escrito 12 noviembre 2009 - 05:07
Gracias por sus orientaciones.
Enecumene, no pude hacer funcionar lo que aportaste. Posiblemente funcione, pero no supe hacerlo.
Poliburro, la información del primer enlace no la entendí. Pero sí logré hacer funcionar la del segundo enlace.
Por si otra persona tiene esta misma duda, le comento como pude hacerlo.
En ese enlace:
http://www.martinstoeckli.ch/delphi/delphi.html#VclHtmlHelp
se puede descargar una Unit que viene comprimida ( unit StoHtmlHelp ).
Se añade al proyecto que estemos haciendo: Project/Add to Project.
Luego, en el código hacemos la llamada al archivo:
procedure TForm1.Button1Click(Sender: TObject); begin Application.HelpFile := 'C:\Archivo_Ayuda.chm'; Application.HelpContext( 54 ); end;
Primero se indica la ruta completa al archivo de ayuda.
Luego, se llama al Help Context Number (número de contexto de la ayuda), que en este ejemplo es el 54. Ese número indica a qué parte de la ayuda se va a acceder.
Y creo que nada más...
Muchas gracias por la ayuda, Enecumene y Poliburro.
Ramón.
#5
Escrito 13 noviembre 2009 - 08:33
Hola de nuevo.
Gracias por sus orientaciones.
Enecumene, no pude hacer funcionar lo que aportaste. Posiblemente funcione, pero no supe hacerlo.
Poliburro, la información del primer enlace no la entendí. Pero sí logré hacer funcionar la del segundo enlace.
Por si otra persona tiene esta misma duda, le comento como pude hacerlo.
En ese enlace:
http://www.martinstoeckli.ch/delphi/delphi.html#VclHtmlHelp
se puede descargar una Unit que viene comprimida ( unit StoHtmlHelp ).
Se añade al proyecto que estemos haciendo: Project/Add to Project.
Luego, en el código hacemos la llamada al archivo:
delphi
procedure TForm1.Button1Click(Sender: TObject); begin Application.HelpFile := 'C:\Archivo_Ayuda.chm'; Application.HelpContext( 54 ); end;
Primero se indica la ruta completa al archivo de ayuda.
Luego, se llama al Help Context Number (número de contexto de la ayuda), que en este ejemplo es el 54. Ese número indica a qué parte de la ayuda se va a acceder.
Y creo que nada más...
Muchas gracias por la ayuda, Enecumene y Poliburro.
Ramón.
Gracias a ti amigo por compartir la solución
#6
Escrito 03 julio 2010 - 11:04
#7
Escrito 03 julio 2010 - 11:10
#8
Escrito 03 julio 2010 - 11:42
no jala en d5
que error te marca?
#9
Escrito 03 julio 2010 - 04:30
- Descargas este archivo http://download.jgso...UseHTMLHelp.zip (Proporcionado desde la página de HelpScribble)
- Lo que haces es descomprimir y añadir a tu proyecto el archivo HTMLHelpViewer.pas
- Listo... ahora puedes usar la típica sentencia Application.HelpFile para llamar tu archivo
Saludos!
#10
Escrito 05 julio 2010 - 08:35
no jala en d5
que error te marca?
QUE EL ARCHIVO ESTA DAÑADO CUANDO LE PICO EN EL BOTON KE ES LLAMADO AL HELPFILE YA LE PUSE EL .PAS Y TAMPCO JALA EN D5 NO SE ALGO MEJOR ME FALTA UN DETALLITO este es mi codigo:
procedure TForm3.Button5Click(Sender: Tobject) ;
begin
Application.HelpFile:='Project1.chm';
application.HelpCommand(HELP_CONTENTS,0);
end;
en el uses puse el htmlhlp o algo asi.pas lo agregue a mi projecto ese codigo no es tocado a lo mejor le falta que en ese codigo le ponga .onhelp podria ser? si es asi como se hace? gracies
#11
Escrito 05 julio 2010 - 08:49
Gracias por tu aportación. Estuve en la página inicial del enlace que proporcionas a HTMLHelpViewer.pas , pero me pareció un programa comercial.* Descargas este archivo http://download.jgso...UseHTMLHelp.zip (Proporcionado desde la página de HelpScribble)
* Lo que haces es descomprimir y añadir a tu proyecto el archivo HTMLHelpViewer.pas
* Listo... ahora puedes usar la típica sentencia Application.HelpFile para llamar tu archivo
¿El autor permite su uso de forma gratuita o hay que registrarse (pagarle) para usarlo?.
Aclaro que no lo he probado aún.
Saludos.
Ramon
#12
Escrito 05 julio 2010 - 11:12
#13
Escrito 05 julio 2010 - 12:49
Hola Felipe.
Gracias por tu aportación. Estuve en la página inicial del enlace que proporcionas a HTMLHelpViewer.pas , pero me pareció un programa comercial.
* Descargas este archivo http://download.jgso...UseHTMLHelp.zip (Proporcionado desde la página de HelpScribble)
* Lo que haces es descomprimir y añadir a tu proyecto el archivo HTMLHelpViewer.pas
* Listo... ahora puedes usar la típica sentencia Application.HelpFile para llamar tu archivo
¿El autor permite su uso de forma gratuita o hay que registrarse (pagarle) para usarlo?.
Aclaro que no lo he probado aún.
Saludos.
Ramon
Hola, el programa como tal se puede usar gratuitamente y por tiempo indefinido con un mensaje de marca registrada, la versión de pago elimina esto y posiblemente añada otras funciones. El archivo .pas se puede descargar de forma gratuita, dentro esta el típico léeme con las indicaciones licencia y demás.
lo unico es que lo agregas el .pas en tu project pero no se de ahi como funcione a lo mejor me comi un paso o algo parecido
Su uso es muy simple, tal como lo mencionas, no tienes que llamar nada más, ya solo lo usas por ejemplo así:
procedure TForm1.Button1Click(Sender: Tobject) ; begin Application.HelpFile := 'Ayuda.chm'; Application.HelpContext(10); end;
Saludos!
#14
Escrito 06 julio 2010 - 11:45
#15
Escrito 06 julio 2010 - 12:10
En el ejemplo que ya se ha puesto en este hilo:
procedure TForm1.Button1Click(Sender: Tobject) ; begin Application.HelpFile := 'Ayuda.chm'; Application.HelpContext(10); end;
El índice de la ayuda al que se accede supongo que debe ser el 10.
Cada botón que se usa para acceder a la ayuda, en cada parte diferente del programa debe indicar a qué parte de la ayuda se va a acceder.
De esa forma, al abrir la ayuda, se abre directamente en la sección que interesa.
Saludos.
Ramón.
#16
Escrito 07 julio 2010 - 08:41
#17
Escrito 07 julio 2010 - 08:47
#18
Escrito 07 julio 2010 - 09:50
no soporta el helpcontext en delphi 5
Podrías listar las opciones que te aparecen al escribir Application.Help... para saber cuál de ellas te puede servir.
Saludos!
#19
Escrito 07 julio 2010 - 10:00
application.helpcontext
application.helpjump
#20
Escrito 07 julio 2010 - 10:16
application.helpcommand
application.helpcontext
application.helpjump
¿Está o no está?
Si eso te aparece en Delphi 5 esta bien, quizá el error es al asignar mal el índice de la ayuda, revisa eso.
Saludos!