 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
morelo Cdt

Registrado: 07 Jul 2006Mensajes: 3
|
Publicado: Vie 04 Ago, 2006 7:41 pm Asunto: Ayuda en c++ builder |
|
|
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 |
|
 |
Josh Cdt


Registrado: 02 Jul 2006Mensajes: 6Ubicación: Armenia,Colombia
|
Publicado: Sab 05 Ago, 2006 3:22 am Asunto: Archivos de Ayuda |
|
|
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 |
|
 |
morelo Cdt

Registrado: 07 Jul 2006Mensajes: 3
|
Publicado: Dom 06 Ago, 2006 5:26 pm Asunto: |
|
|
ok, me ha servido de mucho
gracias |
|
| Volver arriba |
|
 |
bosoft Master

Registrado: 23 Oct 2005Mensajes: 342
|
Publicado: Sab 26 Ene, 2008 2:02 pm Asunto: No hay manera |
|
|
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 |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Sab 26 Ene, 2008 10:08 pm Asunto: |
|
|
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 _________________

Ultima edición por Cesar C. Salazar Gonzalez el Dom 27 Ene, 2008 12:40 am, editado 1 vez |
|
| Volver arriba |
|
 |
bosoft Master

Registrado: 23 Oct 2005Mensajes: 342
|
Publicado: Sab 26 Ene, 2008 11:13 pm Asunto: |
|
|
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 |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|