| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Manuel H.C. Lt JG


Registrado: 20 Ago 2002Mensajes: 61Ubicación: Madrid (España)
|
Publicado: Sab 26 Oct, 2002 8:40 pm Asunto: Evento Icono Ayuda |
|
|
| Hola,he activado en un Form el BorderIcons a biHelp,y me sale en Caption un Icono de Ayuda ?,pero no soy capaz de captar el evento de ese icono,me podriais hechar una mano de como captarlo,un saludote y gracias. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Dom 03 Nov, 2002 8:20 pm Asunto: |
|
|
El "invento" funciona automáticamente, solo tendrías que crear un fichero de ayuda y asignárselo a tu programa desde por ejemplo las propiedades del proyecto:
MENU: Project -> Options...
PESTAÑA: Application
Una vez ahí rellena el edit que dice 'Help file'
Luego solo tendrías que rellenar la propiedad 'HelpContext' de cada control haciendo que coincida con los números que le des al crear tu fichero de ayuda. Y listo una vez haces esto la cosa ya funcionara tanto para la tecla F1 como para ese botón de ayuda que dices.
Aunque de todos modos si lo que quieres es interceptar ese mensaje, aquí tienes un ejemplo, lo pones todo para probar debajo de la parte privada de la clase del Form en la cabecera:
| Código: | ...
...
private: // User declarations
void __fastcall WmHelp(TWMHelp &msg)
{
if ( HELPINFO_WINDOW == msg.HelpInfo->iContextType )
{
// Puntero al control señalado o activo
TControl *control = dynamic_cast<TControl*>(
FindControl(msg.HelpInfo->hItemHandle) );
ShowMessage( "Aqui mostrariamos algo para este control: "
+ control->Name );
}
else
TForm::Dispatch(&msg);
}
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER( WM_HELP, TWMHelp, WmHelp )
END_MESSAGE_MAP(TForm)
...
... |
Y para probarlo añade algunos controles a tu Form y vete pulsando ese botón de ayuda y luego sobre cada control. |
|
| Volver arriba |
|
 |
Manuel H.C. Lt JG


Registrado: 20 Ago 2002Mensajes: 61Ubicación: Madrid (España)
|
Publicado: Mie 06 Nov, 2002 10:30 am Asunto: |
|
|
| Gracias _Leo por contestar a mi pregunta,pero he estado probando con el codigo q me as puesto y por lo q veo al oprimir el boton ? lo q hace es q le pasa el control al primer button q oprimas,y mi pregunta es no podria arrancar un Form dinamico directamente oprimiendo dicho boton ? .Un saludo y gracias de todas maneras seguire investigando a ver como lo planteo. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mie 06 Nov, 2002 5:23 pm Asunto: |
|
|
Bueno, ese es el comportamiento normal de ese botón, la primera pulsación activa la ayuda y después debemos pulsar el control sobre el que queremos ayuda.
Y si te he entendido bien esta vez, ¿lo que necesitas es que haga lo que tú quieras desde que se pulse la primera vez? si es así prueba lo siguiente:
| Código: | ...
...
private: // User declarations
void __fastcall WmSysCommand(TWMSysCommand &msg)
{
if ( msg.CmdType == SC_CONTEXTHELP )
ShowMessage( "Aquí llamamos a otro form o lo que queramos" );
else
TForm::Dispatch(&msg);
}
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER( WM_SYSCOMMAND, TWMSysCommand, WmSysCommand )
END_MESSAGE_MAP(TForm)
...
... |
En caso de que de nuevo no te haya entendido bien pues nada avísame... |
|
| Volver arriba |
|
 |
Manuel H.C. Lt JG


Registrado: 20 Ago 2002Mensajes: 61Ubicación: Madrid (España)
|
Publicado: Jue 07 Nov, 2002 12:25 am Asunto: |
|
|
| OK. _Leo,me as entendido a la perfeccion esto es lo q queria y va al % muchas gracias,un saludo Manuel H.C. |
|
| Volver arriba |
|
 |
|