Página 1 de 1

Error de concepto

Publicado: Mar Abr 03, 2007 7:50 pm
por jose.luis
Hola,
Debo de tener algún error de concepto con el método ShowPopupMenu.
Si mirais el ejemplo que os acompaño, mi intención es mostrar el menú popup
en la misma posición relativa del botón que lo llama.
Yo creo el método al ShowPopupMenu se le pasa las posiciones absolutas x,y y
así creo que lo hago.... pero al hacer click en el segundo botón sale muy
desplazado a la derecha el menú.
Si alguien me puede echar una manita... pues eso, que quedo agradecido.
Saludos,
José Luis Capel
PD: aún estoy usando la 1.3 beta


Attached files aaaa.zip (20.7 KB)Â

Error de concepto

Publicado: Mar Abr 03, 2007 7:53 pm
por jose.luis
Ups...
Parece que no queda claro lo que digo...
> Yo creo el método al ShowPopupMenu se le pasa las posiciones absolutas x,y
> y así creo que lo hago.... pero al hacer click en el segundo botón sale
> muy desplazado a la derecha el menú.
Yo creo que al método ShowPopupMenu se le pasa las posiciones absolutas x,y
y
así pienso que lo hago.... pero al hacer click en el segundo botón sale muy
desplazado, el menú, a la derecha.
Saludos,
José Luis Capel

Error de concepto

Publicado: Mar Abr 03, 2007 8:49 pm
por ignacio
José Luis,
Las coordenadas son coordenadas de la propia ventana. En definitiva los
posibles valores devueltos por un evento OnContextMenu.
Un saludo,
"José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
news:46129450$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Ups...
>
> Parece que no queda claro lo que digo...
>
>> Yo creo el método al ShowPopupMenu se le pasa las posiciones absolutas
>> x,y y así creo que lo hago.... pero al hacer click en el segundo botón
>> sale muy desplazado a la derecha el menú.
>
> Yo creo que al método ShowPopupMenu se le pasa las posiciones absolutas
> x,y y
> así pienso que lo hago.... pero al hacer click en el segundo botón sale
> muy
> desplazado, el menú, a la derecha.
>
> Saludos,
> José Luis Capel
>

Error de concepto

Publicado: Mié Abr 04, 2007 9:48 am
por jose.luis
Hola Ignacio,
Gracias por tu respuesta.
Entonces por lo que he podido entender para mostrar un menú popup debo
indicar en ShowPopUpMenu coordenadas de ventana. Si hago:
METHOD BtnBmp1Click( oSender ) CLASS TForm1
local oMenu
LOCAL aPoints
MENU oMenu POPUP
MENUITEM "Primera opcion"
MENUITEM "Segunda opción"
ENDMENU
aPoints := { oSender:nTop, oSender:nLeft }
aPoints := ClientToScreen(oSender:handle, @apoints )
::ShowPopupMenu(oMenu, aPoints[1], aPoints[2] )
RETURN Nil
Parece ser que tampoco doy con la tecla adecuada.
En el ejemplo que he dejado en mi primer mensaje mi intención es mostrar un
menú popup justo debajo de cada control btnbmp. El evento onclick de cada
botón apuntan al mismo método. De esta manera tendría un solo método que
posicione el menú debajo de su control 'llamante'.
Quedo agradecido por cualquier luz sobre este tema.
Saludos y gracias,
José Luis Capel
PD: adjunto nuevo ejemplo
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:[email=4612a1ce@ozsrv2.ozlan.local...]4612a1ce@ozsrv2.ozlan.local...[/email]
> José Luis,
>
> Las coordenadas son coordenadas de la propia ventana. En definitiva los
> posibles valores devueltos por un evento OnContextMenu.
>
> Un saludo,
>
> "José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
> news:46129450$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Ups...
>>
>> Parece que no queda claro lo que digo...
>>
>>> Yo creo el método al ShowPopupMenu se le pasa las posiciones absolutas
>>> x,y y así creo que lo hago.... pero al hacer click en el segundo botón
>>> sale muy desplazado a la derecha el menú.
>>
>> Yo creo que al método ShowPopupMenu se le pasa las posiciones absolutas
>> x,y y
>> así pienso que lo hago.... pero al hacer click en el segundo botón sale
>> muy
>> desplazado, el menú, a la derecha.
>>
>> Saludos,
>> José Luis Capel
>>
>
>


Attached files aaaa.zip (20.8 KB)Â

Error de concepto

Publicado: Mié Abr 04, 2007 12:49 pm
por ignacio
José Luis,
Como te he comentado ShowPopupMenu exige coordenadas de ventana (en tu caso
del formulario), no de pantalla.
Un saludo,
"José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
news:[email=46135807@ozsrv2.ozlan.local...]46135807@ozsrv2.ozlan.local...[/email]
> Hola Ignacio,
>
> Gracias por tu respuesta.
>
> Entonces por lo que he podido entender para mostrar un menú popup debo
> indicar en ShowPopUpMenu coordenadas de ventana. Si hago:
>
> METHOD BtnBmp1Click( oSender ) CLASS TForm1
>
> local oMenu
> LOCAL aPoints
>
> MENU oMenu POPUP
> MENUITEM "Primera opcion"
> MENUITEM "Segunda opción"
> ENDMENU
>
> aPoints := { oSender:nTop, oSender:nLeft }
> aPoints := ClientToScreen(oSender:handle, @apoints )
> ::ShowPopupMenu(oMenu, aPoints[1], aPoints[2] )
>
> RETURN Nil
>
> Parece ser que tampoco doy con la tecla adecuada.
>
> En el ejemplo que he dejado en mi primer mensaje mi intención es mostrar
> un menú popup justo debajo de cada control btnbmp. El evento onclick de
> cada botón apuntan al mismo método. De esta manera tendría un solo método
> que posicione el menú debajo de su control 'llamante'.
>
>
> Quedo agradecido por cualquier luz sobre este tema.
>
> Saludos y gracias,
> José Luis Capel
> PD: adjunto nuevo ejemplo
>
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> news:[email=4612a1ce@ozsrv2.ozlan.local...]4612a1ce@ozsrv2.ozlan.local...[/email]
>> José Luis,
>>
>> Las coordenadas son coordenadas de la propia ventana. En definitiva los
>> posibles valores devueltos por un evento OnContextMenu.
>>
>> Un saludo,
>>
>> "José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
>> news:46129450$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>>> Ups...
>>>
>>> Parece que no queda claro lo que digo...
>>>
>>>> Yo creo el método al ShowPopupMenu se le pasa las posiciones absolutas
>>>> x,y y así creo que lo hago.... pero al hacer click en el segundo botón
>>>> sale muy desplazado a la derecha el menú.
>>>
>>> Yo creo que al método ShowPopupMenu se le pasa las posiciones absolutas
>>> x,y y
>>> así pienso que lo hago.... pero al hacer click en el segundo botón sale
>>> muy
>>> desplazado, el menú, a la derecha.
>>>
>>> Saludos,
>>> José Luis Capel
>>>
>>
>>
>
>
>

Error de concepto

Publicado: Mié Abr 04, 2007 1:55 pm
por notelo
José Luis,
> aPoints := { oSender:nTop, oSender:nLeft }
Recuerda que Xailer sigue la misma convención para las coordenadas que
Windows, por tanto debes usar:
aPoints := { oSender:nLeft, oSender:nTop }
Saludos,
José Lalí­n