Página 1 de 1

No veo OnClick en algunos objetos

Publicado: Jue Sep 01, 2005 8:48 pm
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.

No veo OnClick en algunos objetos

Publicado: Jue Sep 01, 2005 8:53 pm
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.
>
>

No veo OnClick en algunos objetos

Publicado: Jue Sep 01, 2005 8:57 pm
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

No veo OnClick en algunos objetos

Publicado: Jue Sep 01, 2005 9:15 pm
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
>
>

No veo OnClick en algunos objetos

Publicado: Jue Sep 01, 2005 9:23 pm
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
>>
>>
>
>
>
>