Página 1 de 1
Nombre de control
Publicado: Lun Sep 19, 2005 12:04 pm
por paco-ssi
¿Sabeis comopuedo obtener que control ha llamado a un metodo?
Quiero hacer una ayuda que se comporte distinta si la llama odbedit1 ,
odbedit2, .....
Gracias
Paco V
Nombre de control
Publicado: Lun Sep 19, 2005 12:12 pm
por jfgimenez
Paco,
> ¿Sabeis comopuedo obtener que control ha llamado a un metodo?
>
> Quiero hacer una ayuda que se comporte distinta si la llama odbedit1 ,
> odbedit2, .....
METHOD DbEdit1KeyDown( oSender, nKey, nFlags )
IF nKey == VK_F1
IF oSender == ::oDbEdit1
//...
ELSEIF oSender == ::oDbEdit2
//...
ENDIF
RETURN 0
ENDIF
RETURN Nil
--
Un saludo,
José F. Giménez
Nombre de control
Publicado: Lun Sep 19, 2005 12:22 pm
por paco-ssi
Muchas Gracias.
Un saludo.
Paco V
"Jose F. Gimenez" <
jfgimenez@wanadoo.es> escribió en el mensaje
news:432e8e92$[email=
1@ozsrvnegro.ozlan.local...]
1@ozsrvnegro.ozlan.local...[/email]
> Paco,
>
>> ¿Sabeis comopuedo obtener que control ha llamado a un metodo?
>>
>> Quiero hacer una ayuda que se comporte distinta si la llama odbedit1 ,
>> odbedit2, .....
>
> METHOD DbEdit1KeyDown( oSender, nKey, nFlags )
>
> IF nKey == VK_F1
> IF oSender == ::oDbEdit1
> //...
> ELSEIF oSender == ::oDbEdit2
> //...
> ENDIF
> RETURN 0
> ENDIF
>
> RETURN Nil
>
>
> --
> Un saludo,
>
> José F. Giménez
>
Nombre de control
Publicado: Vie Sep 23, 2005 5:40 pm
por Xevi
Jose
Hago esto en un TMaskEdit...
METHOD xEditsKeyDown( oSender, nKey, nFlags ) CLASS TFrmAltaOR
If nKey = VK_ESCAPE
::FormInitialize( oSender )
Return 0
ElseIf nKey = VK_RETURN //.and. oSender == ::oEditVehicle
MsgInfo( oSender )
EndIf
RETURN Nil
MsgInfo( oSender )
A mi me devuelve { TMASKEDIT }, que es el nombre de la Clase, pero no puedo determinar QUE TMaskEdit és el que lanza el evento.
¿Es un Bug???
Gracias.
Un Saludo,
Xevi.
"Jose F. Gimenez" <
jfgimenez@wanadoo.es> escribió en el mensaje news:432e8e92$[email=
1@ozsrvnegro.ozlan.local...]
1@ozsrvnegro.ozlan.local...[/email]
>
> Paco,
>
>> ¿Sabeis comopuedo obtener que control ha llamado a un metodo?
>>
>> Quiero hacer una ayuda que se comporte distinta si la llama odbedit1 ,
>> odbedit2, .....
>
> METHOD DbEdit1KeyDown( oSender, nKey, nFlags )
>
> IF nKey == VK_F1
> IF oSender == ::oDbEdit1
> //...
> ELSEIF oSender == ::oDbEdit2
> //...
> ENDIF
> RETURN 0
> ENDIF
>
> RETURN Nil
>
>
> --
> Un saludo,
>
> José F. Giménez
>
>
>
--
Nombre de control
Publicado: Sab Sep 24, 2005 10:23 am
por jfgimenez
Xevi,
MsgInfo( oSender )
A mi me devuelve { TMASKEDIT }, que es el nombre de la Clase, pero no puedo determinar QUE TMaskEdit és el que lanza el evento.
¿Es un Bug???
No, no es un bug. Es simplemente que te está devolviendo el nombre del tipo de dato; en este caso es un objeto de tipo TMaskEdit.
No se puede mostrar con un MsgInfo() directamente el objeto, pero sí alguna propiedad (cText, Handle, etc.); y me temo que cVarName NO es una propiedad de los controles. Aunque esté en el IDE y aparezca en el inspector de propiedades, después no está presente en el GUI.
Lo que sí se puede hacer es comparar directamente dos objetos. P.ej. puedes comparar oSender y ::oEditVehicle para determinar si ha sido ese control el que ha disparado el evento:
IF oSender == ::oEditVehicle
...
--
Un saludo,
José F. Giménez
--