PDA

Ver la Versión Completa : HelpScribble


sizne
29-05-2010, 04:19:51
Hola!
Quisiera que me ayuden por fa...
Hice mi programa en Delphi 7.0. Hice mis ayudas con el programa HelpScribble version 7.7 y puse el siguiente codigo para enlazarlo de delphi a ese archivo.


procedure TFprincipal.InformacionClick(Sender: TObject);
begin
application.HelpFile:='Ayuda.hlp';
application.helpcontext(10);
end;


Después de ejecutar el programa, y hago click para que me aparezca la ayuda, pero me aparece el siguiente mensaje.

No se puede hallar el archivo Ayuda Ayuda.hlp. Compruebe si existe en su disco;
de lo contrario necesitará instalarlo de nuevo.


Pero si lo tengo instalado el programa...

Podrian decirme que es lo que tengo que hacer para llamar al programita? o es que tengo que hacer algo en mi programa en Delphi?

Alguien podria ayudarme?


Saludos!

Lord Delfos
29-05-2010, 05:16:33
Por las dudas pasale la ruta completa al archivo. Si el archivo de ayuda está en la misma carpeta que tu programa:


Application.HelpFile:= ExtractFilePath(Application.ExeName) + '\Ayuda.hlp';


Espero te sirva.

Saludongos.

sizne
29-05-2010, 06:05:30
Hola!
Gracias por responder.
Si esta en la misma Carpeta de mi programa....quizás tengo que activar algo mas???...no me funciona...sigue apareciendo ese msj.

Saludos

Lord Delfos
29-05-2010, 09:26:27
Hmm... La verdad es que no sé qué puede estar pasando. Ese mensaje aparece cuando el archivo no es encontrado. Los errores que yo conozco que puede dar WinHelp son:

- Que el archivo está dañado. Esto podría pasar si HelpScribble no estubiera generando el archivo bien... y en realidad no puede pasar porque el que genera el archivo es el compilador de Microsoft, no el HelpScribble.
- Que el tema no se encontró. Esto sería si el HelpContext que le pasás no existiera.
- Que el archivo no se encuentra. Realmente el archivo no se encuentra y la ruta que uno le está pasando es incorrecta.

Ninguno parece ser tu caso... La verdad es que estoy perdido.

Quizás una prueba sencilla y a prueba de fallos.


var a: string;
begin
Application.HelpFile:= ExtractFilePath(Application.ExeName) + 'Ayuda.hlp';
a:= Application.HelpFile;
Application.HelpContext(10);
InputQuery('x', 'x', a);
end;


Copiás la ruta que aparece en el InputQuery y la pegás en la barra de direcciones del explorador. Al apretar enter sí o sí se va a tener que abrir el archivo. Si no es que le estás errando con la ruta...

sizne
30-05-2010, 05:17:46
Hooola Lord Delfos, gracias por seguir ayudandome...:p
Te comento, hice lo siguiente:
Una vez realizado la ayuda, se va a generar los siguientes archivitos, siendo el nombre del archivito "Ayuda".
Ayuda.cnt
Ayuda.hlp
Ayuda.hsc
Hacer doble click en Ayuda.cnt,luego en la barra de menú click en Test,
y luego click en Contents File...y por ultimo les llevará a una ventanita "Test Contents File.." y hacer click en Browse...ubicar el archivo ayuda.hlp y LISTOooooooooo!!!
Bueno colocar el código en Delphi, el post arriba mencionado.

Lo que no tengo muy claro es, esta linea, por favor puedes explicarme?

Application.HelpContext(10);

El (10) a que se refiere?


Antes que nada muuuchas gracias!!!!

Saludos:)

Lord Delfos
30-05-2010, 19:39:25
¡Ah! ¡El .cnt! Me había olvidado de ése... :)

Hay varias extensiones de archivo asociadas a WinHelp (Wikipedia) (http://en.wikipedia.org/wiki/WinHelp). Las que vos tendrías que suministrar para que la ayuda ande son el .hlp y el .cnt.

El Application.HelpContext(10) se usa para llamar a un tópico específico de la ayuda.

Cuando hacés un archivo de ayuda vos le podés dar a cada "página" que hagas un número de referencia, llamado Help Context. Por ejemplo, el "Acerca de" puede ser el 101, el "Opciones del cuadro de diálogo X" puede ser el 102, y así sucesivamente... Entonces cuando quieras mostrar la ayuda del cuadro de diálogo X podés hacerlo llamando a Application.HelpContext(102).

No sé dónde tendrá la opción el HelpScribble, pero debe andar cerca de propiedades del tópico...

Algunas posibilidades para llamar a la ayuda:


// Llama a la ayuda y muestra la ventana "principal" de la ayuda, sin abrir ningún tópico.
Application.HelpCommand(HELP_FINDER, 0);

// Abre la ayuda en el tópico 10, es lo mismo que hacer Application.HelpContext(10)
Application.HelpCommand(HELP_CONTEXT, 10)

// Abre la ayuda en el tópico por defecto, que vos definiste cuando hiciste el archivo.
Application.HelpCommand(HELP_CONTENTS, 0);


Espero sirva.

Saludetes.

sizne
31-05-2010, 06:11:36
Hola Lord Delfos, si claro que me sirvió de mucho, gracias!!!


Saludos!:)