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 

Evento Icono Ayuda

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Evento Icono Ayuda Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
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.