In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

No veo OnClick en algunos objetos

Foro de Xailer profesional en español
Responder
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

No veo OnClick en algunos objetos

Mensaje por Xevi »

En objetos como TImage, TLabel
hecho en falta el evento OnClick, y veo que no está activado, pero si que
internamente dispone la clase de dicho evento, me explico...
en el inspector de objetos no está incluido, y si lo utilizo desde programa
en FormInitialize
::oLblExe:OnClick := {|| MsgInfo( "Clic en un Label" ) }
::oImage1:OnClick := {|| MsgInfo( "Clic en una Imagen" ) }
No tienen ningún efecto, pero sin embargo no lanza ningún error de método no
existente.
En mi modesta opinión, creo que SI deberían de disponer el evento OnClick,
OnDblClick... y demás clicks TODOS los objetos, el uso que le hagamos, pues
cada uno que lo utilize, o no.
En mi caso, por ejemplo puedo utilizarlo, para que al pinchar en una imagen
(Logo de una empresa), me envie a la web...
Un Saludo,
Xevi.
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9447
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

No veo OnClick en algunos objetos

Mensaje por ignacio »

Xevi,
El evento OnClick es un evento especial que normalmente coincide con la
pulsación del botón izquierdo del ratón pero son dos mensajes completamente
distintos.
Hemos incluido OnClick en todos los controles que el API lo tiene definido y
en alguno más que nos parecía razonable, pero no tiene sentido incluirlo en
todos. Creo que los eventos de lButtonDown y lButtonUp son suficientes.
Precisamente no aparecen en el inspector para no confundir a los usuarios
aunque realmente existan en clases ancestras. Podríamos haberles cambiado el
ambito a protected en clases inferiores pero la verdad es que por precaución
no lo hemos hecho. (por si acaso las moscas ... )
Un saludo,
"Xevi" <xevicomas@terra.es> escribió en el mensaje
news:[email=43174d08@ozsrvnegro.ozlan.local...]43174d08@ozsrvnegro.ozlan.local...[/email]
>
> En objetos como TImage, TLabel
> hecho en falta el evento OnClick, y veo que no está activado, pero si que
> internamente dispone la clase de dicho evento, me explico...
> en el inspector de objetos no está incluido, y si lo utilizo desde
> programa en FormInitialize
> ::oLblExe:OnClick := {|| MsgInfo( "Clic en un Label" ) }
> ::oImage1:OnClick := {|| MsgInfo( "Clic en una Imagen" ) }
>
> No tienen ningún efecto, pero sin embargo no lanza ningún error de método
> no existente.
>
> En mi modesta opinión, creo que SI deberían de disponer el evento OnClick,
> OnDblClick... y demás clicks TODOS los objetos, el uso que le hagamos,
> pues cada uno que lo utilize, o no.
> En mi caso, por ejemplo puedo utilizarlo, para que al pinchar en una
> imagen (Logo de una empresa), me envie a la web...
>
> Un Saludo,
> Xevi.
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

No veo OnClick en algunos objetos

Mensaje por jfgimenez »

Xevi,
> En objetos como TImage, TLabel
> hecho en falta el evento OnClick, y veo que no está activado, pero si que
> internamente dispone la clase de dicho evento, me explico...
> en el inspector de objetos no está incluido, y si lo utilizo desde
> programa en FormInitialize
> ::oLblExe:OnClick := {|| MsgInfo( "Clic en un Label" ) }
> ::oImage1:OnClick := {|| MsgInfo( "Clic en una Imagen" ) }
Están "ocultos" intencionadamente, pero efectívamente existen porque vienen
heredados de clases padres, concretamente de TControl.
> No tienen ningún efecto, pero sin embargo no lanza ningún error de método
> no existente.
Exactamente. No se disparan nunca, y por eso no aparecen en el inspector.
> En mi modesta opinión, creo que SI deberían de disponer el evento OnClick,
> OnDblClick... y demás clicks TODOS los objetos, el uso que le hagamos,
> pues cada uno que lo utilize, o no.
> En mi caso, por ejemplo puedo utilizarlo, para que al pinchar en una
> imagen (Logo de una empresa), me envie a la web...
Puedes utilizar el evento OnLButtonDown. El evento OnClick sólo existe en
algunos controles nativos de windows, y no es exactamente igual que
OnLButtonDown, pero creo que este último te puede servir perfectamente.
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

No veo OnClick en algunos objetos

Mensaje por Xevi »

jejeje... si eso ya lo tenía así, pero claro de esa manera tengo que
utilizar dos métodos y una variable, para controlar que se ha pulsado y
soltado en el mismo objeto deseado...
Nada, que si es así, así lo haré...
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:43174f23$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>
> Xevi,
>
>> En objetos como TImage, TLabel
>> hecho en falta el evento OnClick, y veo que no está activado, pero si que
>> internamente dispone la clase de dicho evento, me explico...
>> en el inspector de objetos no está incluido, y si lo utilizo desde
>> programa en FormInitialize
>> ::oLblExe:OnClick := {|| MsgInfo( "Clic en un Label" ) }
>> ::oImage1:OnClick := {|| MsgInfo( "Clic en una Imagen" ) }
>
>
> Están "ocultos" intencionadamente, pero efectívamente existen porque
> vienen heredados de clases padres, concretamente de TControl.
>
>
>> No tienen ningún efecto, pero sin embargo no lanza ningún error de método
>> no existente.
>
> Exactamente. No se disparan nunca, y por eso no aparecen en el inspector.
>
>
>> En mi modesta opinión, creo que SI deberían de disponer el evento
>> OnClick, OnDblClick... y demás clicks TODOS los objetos, el uso que le
>> hagamos, pues cada uno que lo utilize, o no.
>> En mi caso, por ejemplo puedo utilizarlo, para que al pinchar en una
>> imagen (Logo de una empresa), me envie a la web...
>
> Puedes utilizar el evento OnLButtonDown. El evento OnClick sólo existe en
> algunos controles nativos de windows, y no es exactamente igual que
> OnLButtonDown, pero creo que este último te puede servir perfectamente.
>
> --
> Un saludo,
>
> José F. Giménez
>
>
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

No veo OnClick en algunos objetos

Mensaje por Xevi »

METHOD FormInitialize( oSender ) CLASS Form1
::oImage1:OnLButtonDown := {|| ::lClicImage1 := .T. }
::oImage1:OnLButtonUp := {|| If( ::lClicImage1, MsgInfo( "Clic en una
Imagen" ), ) }
::OnLButtonUp := {|| ::lClicImage1 := .F. }
....
Así funciona perfecto.
Por si a alguien le pueda interesar...
Un Saludo,
Xevi.
"Xevi" <xevicomas@terra.es> escribió en el mensaje
news:43175359$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>
>
> jejeje... si eso ya lo tenía así, pero claro de esa manera tengo que
> utilizar dos métodos y una variable, para controlar que se ha pulsado y
> soltado en el mismo objeto deseado...
>
> Nada, que si es así, así lo haré...
>
> Un Saludo,
> Xevi.
>
>
> "Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
> news:43174f23$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>
>> Xevi,
>>
>>> En objetos como TImage, TLabel
>>> hecho en falta el evento OnClick, y veo que no está activado, pero si
>>> que internamente dispone la clase de dicho evento, me explico...
>>> en el inspector de objetos no está incluido, y si lo utilizo desde
>>> programa en FormInitialize
>>> ::oLblExe:OnClick := {|| MsgInfo( "Clic en un Label" ) }
>>> ::oImage1:OnClick := {|| MsgInfo( "Clic en una Imagen" ) }
>>
>>
>> Están "ocultos" intencionadamente, pero efectívamente existen porque
>> vienen heredados de clases padres, concretamente de TControl.
>>
>>
>>> No tienen ningún efecto, pero sin embargo no lanza ningún error de
>>> método no existente.
>>
>> Exactamente. No se disparan nunca, y por eso no aparecen en el inspector.
>>
>>
>>> En mi modesta opinión, creo que SI deberían de disponer el evento
>>> OnClick, OnDblClick... y demás clicks TODOS los objetos, el uso que le
>>> hagamos, pues cada uno que lo utilize, o no.
>>> En mi caso, por ejemplo puedo utilizarlo, para que al pinchar en una
>>> imagen (Logo de una empresa), me envie a la web...
>>
>> Puedes utilizar el evento OnLButtonDown. El evento OnClick sólo existe en
>> algunos controles nativos de windows, y no es exactamente igual que
>> OnLButtonDown, pero creo que este último te puede servir perfectamente.
>>
>> --
>> Un saludo,
>>
>> José F. Giménez
>>
>>
>
>
>
>
Responder