Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Ayuda en c++ builder

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Ayuda en c++ builder Responder citando

Wenas a todos, tengo un probelma para enlazar la ayuda en un proyecto, tengo el fichero de ayuda creado, lo he insertado en mi proyecto, pero no se como enlazar cada apartado de mi programa con su pagina de la ayuda correspondiente. Lo unico que se es Application->HelpCommand(HELP_CONTENTS, 0) que te lleva a la pagina indice de la ayuda, pero no se el codigo para que te lleve a la pagina que se llama por ejemplo "Modificar Datos" de la ayuda (*.hlp). Se que hay funciones como HelpContext() o HelpKeyWord(), etc pero no termino de comprender como usarlas.

a ver si alguien me exa un cable

asiasssssss
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Archivos de Ayuda Responder citando

Hola. Para que durante la ejecución del programa se muestre la ayuda correspondiente al componente que está enfocado (tiene el control) o a un tema específico, se debe crear un archivo .map en el proyecto del archivo de ayuda en el Microsoft Help Work Shop. Puedes hacerlo en block de notas, por ejemplo. En este archivo .map se definen valores numéricos para cada uno de los nombres de las páginas que conforman el archivo de ayuda, por ejemplo, si el archivo de ayuda se compone de las páginas IDH_PRESENTACION, IDH_ARCHIVO y IDH_HERRAMIENTAS, el archivo .map podría quedar de la siguiente manera:

#define IDH_PRESENTACION 1
#define IDH_ARCHIVO 2
#define IDH_HERRAMIENTAS 3

Cada una de estos ítems corresponden a los nombres de las páginas de la ayuda que se colocan en los archivos .rtf anteponiéndoles la marca #. Este archivo .map lo añades en el proyecto en el Microsoft Help Work Shop utilizando el botón Map… . Una vez hecho esto compilas el proyecto.

Para enlazar la ayuda desde el builder puedes hacerlo de varias formas:
La primera es incluyendo el archivo .map de la siguiente forma:

#include “Mi_Archivo.map”

y para ver la ayuda correspondiente a cada tópico llamas la siguiente función:
Application->HelpContext( IDH_PRESENTACION );
o también
Application->HelpContext(IDH_HERRAMIENTAS );

Incluso con los valores numéricos también funciona
Application->HelpContext( 1 );

La segunda forma es modificar las propiedades en el inspector de objetos de cada componente, por ejemplo, para un TEdit debes poner:

Edit1->HelpContext = 1 ;
Edit1->HelpType = htContext ;

De esta forma cuando este objeto tenga el control y se presione F1, la ayuda mostrará la página de la presentación (porque #define IDH_PRESENTACION 1). Esto lo tienes que repetir para cada uno de los componentes de la forma.

Otra forma de desplegar una página específica del archivo de ayuda es llamar el siguiente método:

Application->HelpKeyword("Menú Archivo");

De esta forma se despliega la ayuda correspondiente al Menú Archivo.

Espero que esta información te pueda servir y te funcione.
Puedes encontrar ayuda en http://www.codepedia.com/1/CppBuilderHelp

Saludos.
_________________
Jaime Alberto López R.
www.geocities.com/jaimealopezr
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor
Mensaje    Asunto: Responder citando

ok, me ha servido de mucho

gracias
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: No hay manera Responder citando

Hola Josh:
He intentado seguir las instrucciones que explicas, y no hay forma. Me salta el error: No context-sensitive help installed.
El código de llamada (por clic en un botón y no por F1) es:
Código:
void __fastcall TForm1::ayuda1Click(TObject *)
{
Application->HelpSystem->ShowContextHelp(100,Application->HelpFile);

Application->HelpFile = "cortina.hlp";
Application->HelpCommand(HELP_CONTEXT, 100);

Application->HelpContext(DatosCortina);
}


Las uso por separado, la primera, la 2-3 y la cuarta linea

En el principio del programa están
Código:
#include <WinHelpViewer>
#include "cortina.map"

la primera linea se recomendaba junto con #pragma link WinHelpViewer en el enlace que recomendabas http://www.codepedia.com/1/CppBuilderHelp
allí explican del error en builder 2006. Pero la segunda linea salta el error [BCC32 Error] corti.cpp(17): E2047 Bad pragma directive syntax.

Yo estoy usando en codegear C++ builder 2007, que por cierto se traga todo lo del 2006 sin rechistar (por el momento) Y ya llevo 5 dias dándole vueltas al tema y no hay forma.

Solo me queda enlazar la ayuda a la aplicación (muy pequeña y dedicada a algo muy concreto) para entregarla.
¿Alguien me explica que debo hacer?

En WinHelp la ayuda funciona correcta.
Mi aplicación solo tiene un Form y le he incluido todo lo que decías en tu post pero pulsando F1 tampoco funciona, mejor dicho, no hace nada.

Saludos, bosoft
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Hola aun que puede variar un poco la información de como generar la ayuda yo lo he realizado de la siguiente Manera sin ningún problema pues el programa funciona correctamente y muestra la ayuda dependiendo de su contexto.

Los pasos son
1- Generar un archivo de ayuda al estilo de Windows XP esto es crear el programa de ayuda con el siguiente Software que permite crear archivos de ayuda estilo Windows XP y Windows Vista enlace, o si prefieres la descarga usa el siguiente enlace (nota: el programa es funcionable por 14 dias pero creo que son suficientes para crear tu proyecto) a parte es un software ideado para Delphi y C++ Builder

2.- despues de haber generado el archivo .chm con sus correspondientes apartados, espesifícas la dirección donde se encuentra tu proyecto.

3.- En el proyecto al cual le vas a establecer la ayuda, realizas lo siguiente: a).- Abres el Menu Proyect y te vas a Options. b).- dentro de la parte de Application y en Application Settings "buscas" el archivo de ayuda que esta dentro del mismo directorio del ejecutable (paso 2) y lo estableces en: Help File:

4.- Dentro de tu código realizas las siguientes modificaciones en cada uno de los archivos donde deseas ver la ayuda, buscas en la parte del inspector de objetos la propiedad HelpContext del Formulario o Componente y asiganle el numero que identifica la parte de la ayuda (HelpContext = 1) echa con el programa del paso 1 el manual tambien lo puedes ver en esta dirección.

y el en los archivos .CPP estableces este codigo

Código:
   #include "HTMLHelpViewer.hpp"
   //------------------------------------
   #pragma package(smart_init)
   #pragma link "HTMLHelpViewer"
   #pragma resource "*.dfm"
//------------------------------------


Compila nuevamente tu proyecto y prueba usando la tecla [F1]

Saludos
_________________
Cool


Ultima edición por Cesar C. Salazar Gonzalez el Dom 27 Ene, 2008 12:40 am, editado 1 vez
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Gracias Cesar por tu respuesta, pero acabas de darme la solución a mi problema y me he dado cuenta leyendo las news de borland.
Código:
 #include "HTMLHelpViewer.hpp"
   #pragma package(smart_init)
   #pragma link "HTMLHelpViewer"
   #pragma resource "*.dfm"

la linea del link lleva entre comillas HTMLHelpViewer y en las news también las ponían. Sin embargo en la pagina que enlazó Josh no estaban las comillas.
Ahora si funciona.

Yo he compilado la ayuda con el Help Compile Workshop no con HTML, puesto que entiendo mejor el primero

Gracias por la ayuda

Saludos, Bosoft.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.