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 

El ComboBox no responde al click del mouse

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: El ComboBox no responde al click del mouse Responder citando

Hola a todos,

Estoy haciendo una aplicación en la cual necesito hacer algo cuando se hace click sobre un ComboBox.
El problema es que aunque ya definí el evento OnClick del combobox, el evento no se dispara cuando hago click sobre él.

¿Alguien sabe a que se puede deber este problema?

Saludos.

P.D. Estoy usando Builder 6
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Que tal siervo

Pues resulta que en el caso del ComboBox como en algunos otros componentes, este evento se dispara cuanda seleccionas un elemento de la lista. Si tu combo no tiene elementos, no se diparará.

Esto es lo que dice la ayuda:

Cita:
TControl::OnClick

Occurs when the user clicks the control.

__property Classes::TNotifyEvent OnClick = {read=FOnClick, write=FOnClick, stored=
IsOnClickStored};

Description

Use the OnClick event handler to respond when the user clicks the control. If the control has an associated action, and that action has an OnExecute method, the action’s OnExecute method responds to click events unless it is superseded by an OnClick event handler.

Usually OnClick occurs when the user presses and releases the left mouse button with the mouse pointer over the control. This event can also occur when

The user selects an item in a grid, outline, list, or combo box by pressing an arrow key.

The user presses Spacebar while a button or check box has focus.
The user presses Enter when the active form has a default button (specified by the Default property).
The user presses Esc when the active form has a cancel button (specified by the Cancel property).
The user presses the accelerator key for a button or check box. For example, if the value of the Caption property of a check box is '&Bold', the B is underlined at runtime and the OnClick event of the check box is triggered when the user presses Alt+B.

The Checked property of a radio button is set to true.
The value of the Checked property of a check box is changed.
The Click method of a menu item is called.

For a form, an OnClick event occurs when the user clicks a blank area of the form or on a disabled component.


Saludos!
_________________
Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Gracias Buildero,

Ya chequé lo que me dijiste y tienes razón, el evento OnClick del ComBox solo se dispara cuando haces click sobre un elemento de la lista. Sin embargo, yo necesito que se dispare siempre que se haga un click sobre el ComboBox, aunque la lista esté vacia.
Revisando las propiedades del ComboBox encontré que ControlStyle controla como responde el ComboBox al mouse. Dicha propiedad no puede ser modificada mas que en el constructor de la clase, por lo que creé una nueva clase MiComboBox que hereda de TComboBox y en el constructor activo el atributo csClickEvents. Esto funciona a medias, porque ahora sí ya se genera el evento OnClick pero solo cuando se hace click sobre el marco o sobre la flecha del ComboBox, pero no cuando se hace click sobre el área de escritura (la parte blanca).

Si alguien sabe como hacerle para hacer que se genere el evento OnClick cuando se hace click sobre cualquier parte del ComboBox se lo agradecería mucho.

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

Código:


// evento OnSelect:

void __fastcall TForm1::ComboBox1Select(TObject *Sender)
{
// .... code
}
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

void __fastcall TfrmMenu::cboGrupoEnter(TObject *Sender)
{

}
_________________
Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc

http://www.touchsoftwares.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
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.