FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
||||
|
||||
Evento OnClick
Saludos
Tengo algo curioso En el evento onclick de un RadioGroup tengo asignado uno codigo(cualquiera), supongo que esto debe ejecutarse al hacer Click en este componente. Pero resulta que al cambiar un Item por codigo tambien llama a este evento. Pueden darme alguna explicacion? Nt: Me ha pasado con otros componentes pero al tener evento Onchance no le di importancia
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#2
|
||||
|
||||
Hola,
Una explicación puede verse en el constructor de "TCustomRadioGroup", que es el tipo del que hereda directamente "TRadioGroup": Observa cómo se "castea" la variable "FItems", de tipo "TStrings" para "promoverla" al tipo "TStringsList" y aprovechar así el evento "OnChange" de este último. De ese modo, cuando cambias por código el "ItemIndex" de un "TRadioGroup" se dispara dicho evento "OnChange". Continuando un poco este es el método que se asigna al evento "OnChange": Nótese la llamada a "UpdateButtons", cuya implementación se ve a continuación: De todos modos no soy yo el más indicado para tratar estas cosas. Simplemente quería aportar algo y aquí estoy a riesgo de que me contradigan los que sepan/puedan hacerlo. Creo haber respondido porqué ocurre lo que ocurre cuando cambias mediante código el "ItemIndex" de un "TRadioGroup", pero, no sabría explicar porqué esto ocurre así en algunos controles y no en otros. Es verdad que ninguno de los tipos de que hereda "TRadioGroup" cuenta con un evento "OnChange". No ocurre así, por ejemplo, con "TComboBox", el cual hereda de "TCustomComboBox" y este de "TCustomCombo" y este de "TCustomListControl", que es quien implementa el evento "OnChange". En todo caso hay modos de evitar que cuando cambies programáticamente el "ItemIndex" de un "TRadioGroup" y aun de otros controles, se dispare el evento "OnClick", si es esto lo que necesitas. Hace poco salió el tema aquí mismo. |
#3
|
||||
|
||||
Saludos
Gracias dec por la explicacion. Vi el hilo que pusiste, aunque no me gusta esa manera, tendra que ser asi. Trate de capturar y crear eventos del componente y mensajes de Windows para el proposito, si exito. Hasta Luego
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#4
|
||||
|
||||
Hola,
Cita:
|
#5
|
||||
|
||||
Saludos
Jeje, vi tan simple la solucion qeu hasta me cayo mal y yo matandome la cabeza. Gracias a dios y a usted, todo solucionado
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
|
|
|