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.

Cómo poner un menú en un footer

Foro público de Xailer en español
Responder
Fredy
Mensajes: 199
Registrado: Mié Mar 29, 2006 1:28 am

Cómo poner un menú en un footer

Mensaje por Fredy »

Hola a todos
Estoy intentando que al pulsar el botón izquierdo del ratón en el footer
de una columna del browse me aparezca un menú popup en el lugar donde tengo
el ratón, pero no hay manera, si utilizo los parámetros nposx nposy me lo
manda a la esquina del browse
¿alguna idea?
1 Saludico,
Fredy
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Cómo poner un menú en un footer

Mensaje por jlalin »

Fredy,
mira el método heredado ScreenToClient( @nPosX, @nPosY ).
Saludos,
José Lalí­n
Fredy
Mensajes: 199
Registrado: Mié Mar 29, 2006 1:28 am

Cómo poner un menú en un footer

Mensaje por Fredy »

Hola!
Si, ese ya lo he mirado, pero es que hay manera de sacar un handle válido
para el footer
1 Saludico,
Fredy
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Cómo poner un menú en un footer

Mensaje por jlalin »

Fredy,
> Si, ese ya lo he mirado, pero es que hay manera de sacar un handle válido
> para el footer
El oFooter no es más que un objeto THeader así­ que si necesitas obtener su
manejador: oFooter:Handle
Saludos,
José Lalí­n
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Cómo poner un menú en un footer

Mensaje por jlalin »

Fredy,
otra cosa: TControl->TStdControl->THeader, así­ que con
oFooter:ClientToScreen() no necesitas pasarle el handle puesto que ya lo
obtiene el propio objeto.
Saludos,
José Lalí­n
Fredy
Mensajes: 199
Registrado: Mié Mar 29, 2006 1:28 am

Cómo poner un menú en un footer

Mensaje por Fredy »

Donde pulso es un HeaderITem.
Desde el evento OnFooterClick que es el que estoy tratando, puedo llegar
a ClientToScreen mediante oSender:oFooter:oParent:ClientToScreen(), que sí­
que me funciona, pero me da unas coordenadas que no corresponden.
El OnFooterClick me da como oSender un objeto TDBBrwColumn y oSender:oFooter
me da un objeto THeaderITem que hereda de TComponent por lo que para tener
un objeto THeader no me queda más remedio que oSender:oFooter:oParent y las
posiciones que me da creo que son las del THeader con lo cual el menú establece
las coordenadas con el footer de la primera columna.
1 Saludico,
Fredy
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Cómo poner un menú en un footer

Mensaje por jlalin »

Fredy,
> El OnFooterClick me da como oSender un objeto TDBBrwColumn y
> oSender:oFooter me da un objeto THeaderITem que hereda de TComponent por lo
> que para tener un objeto THeader no me queda más remedio que
> oSender:oFooter:oParent y las posiciones que me da creo que son las del
> THeader con lo cual el menú establece las coordenadas con el footer de la
> primera columna.
Al saber el número de columna en el que haces click, puedes sumar los
anchos de los otros footer para calcular correctamente la posición
horizontal del click.
Saludos,
José Lalí­n
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9252
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Cómo poner un menú en un footer

Mensaje por ignacio »

Fredy escribió el jue, 19 mayo 2011 21:27Hola a todos
Estoy intentando que al pulsar el botón izquierdo del ratón en el footer
de una columna del browse me aparezca un menú popup en el lugar donde tengo
el ratón, pero no hay manera, si utilizo los parámetros nposx nposy me lo
manda a la esquina del browse
¿alguna idea?
1 Saludico,
Fredy
Te incluyo con este mensaje un sencillo ejemplo.
Un saludo


Attached files fredy-1-0-0-0.zip (2.1 KB)Â
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Fredy
Mensajes: 199
Registrado: Mié Mar 29, 2006 1:28 am

Cómo poner un menú en un footer

Mensaje por Fredy »

Hola,
Sí­, eso es lo que buscaba.
¿Se puede hacer con el botón izquierdo?
1 Saludico,
Fredy
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9252
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Cómo poner un menú en un footer

Mensaje por ignacio »

Fredy escribió el vie, 20 mayo 2011 11:23Hola,
Sí­, eso es lo que buscaba.
¿Se puede hacer con el botón izquierdo?
1 Saludico,
Fredy
Fredy,
Hemos añadido el soporte del método ShowPopupMenu() en la clase TBrwColumn, por lo que será tan sencillo como:
METHOD ArrayBrowse1Column1FooterClick( oSender, nFlags, nPosX, nPosY ) CLASS TForm1

RETURN oSender:ShowPopupMenu( ::oPopupMenu1, nPosX, nPosY )
Actualmente también lo puedes hacer de la siguiente forma:
oSender:oParent:oFooter:ClientToScreen( @nPosX, @nPosY )
oSender:oParent:ScreenToClient( @nPosX, @nPosY )
oSender:oParent:ShowPopupMenu( ::oPopupMenu1, nPosX, nPosY )
Pero existe un problema adicional (ya resuelto) por el cual nFlags se corresponde con nPosX y nPosY es nPosX. Ten en cuenta que si lo haces ahora de forma manual como te comentó fallará con la nueva actualización.
Un saludo
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Responder