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.

tMaskEdit y tupDown

Foro de Xailer profesional en español
Responder
joseluis
Mensajes: 642
Registrado: Jue Sep 08, 2005 12:54 pm

tMaskEdit y tupDown

Mensaje por joseluis »

Hola,
Algo no debo hacer bien. No consigo que un tMaskEdit con un tUpDown me
respete el picture. Os acompaño un proyecto.
En el ejemplo pongo un tMaskEdit de la siguente manera:
::oCampo:Value := 0
::oCampo:cPicture := "999.99"
Y en el tUpDown
::oUD:nMax := 100
El caso es que cuando pongo una 'a mano' cantidad me respeta el picture
(salen los decimales). Sin embargo, al pulsar flecha-arriba/abajo o con
el ratón pulsar sobre el updawn, me pone otro valor (?) y sin decimales.
Saludos y gracias por la ayuda.
José Luis Capel
--
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9447
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

tMaskEdit y tupDown

Mensaje por ignacio »

José Luis,
El control UpDown maneja directamente el control nativo de Windows, y por lo
tanto impide la gestión del dato por la propia clase.
La forma para resolverlo es simplemente poner lSyncBuddy a .F. y en el
evento OnChange escribir algo asi:
METHOD UpDown1Change( oSender, nPos, nDelta ) CLASS TForm1
oSender:oBuddy:Value := nPos + nDelta
RETURN Nil
Un saludo,
"José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
news:43820451$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Hola,
>
> Algo no debo hacer bien. No consigo que un tMaskEdit con un tUpDown me
> respete el picture. Os acompaño un proyecto.
>
> En el ejemplo pongo un tMaskEdit de la siguente manera:
>
> ::oCampo:Value := 0
> ::oCampo:cPicture := "999.99"
>
> Y en el tUpDown
>
> ::oUD:nMax := 100
>
> El caso es que cuando pongo una 'a mano' cantidad me respeta el picture
> (salen los decimales). Sin embargo, al pulsar flecha-arriba/abajo o con
> el ratón pulsar sobre el updawn, me pone otro valor (?) y sin decimales.
>
> Saludos y gracias por la ayuda.
> José Luis Capel
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
joseluis
Mensajes: 642
Registrado: Jue Sep 08, 2005 12:54 pm

tMaskEdit y tupDown

Mensaje por joseluis »

Ignacio,
>
> El control UpDown maneja directamente el control nativo de Windows, y por lo
> tanto impide la gestión del dato por la propia clase.
>
> La forma para resolverlo es simplemente poner lSyncBuddy a .F. y en el
> evento OnChange escribir algo asi:
>
> METHOD UpDown1Change( oSender, nPos, nDelta ) CLASS TForm1
>
> oSender:oBuddy:Value := nPos + nDelta
>
> RETURN Nil
>
Muchas gracias!!
Así­ lo haré.
Saludos,
José Luis Capel
joseluis
Mensajes: 642
Registrado: Jue Sep 08, 2005 12:54 pm

tMaskEdit y tupDown

Mensaje por joseluis »

Ignacio,
>
> METHOD UpDown1Change( oSender, nPos, nDelta ) CLASS TForm1
>
> oSender:oBuddy:Value := nPos + nDelta
>
> RETURN Nil
>
¿Donde puedo definir nDelta para que sea nDelta := 0.50?
Saludos y gracias,
José Luis Capel
joseluis
Mensajes: 642
Registrado: Jue Sep 08, 2005 12:54 pm

tMaskEdit y tupDown

Mensaje por joseluis »

Ignacio,
>
> oSender:nMin := 1
> oSender:nMax := 20
>
> METHOD UpDown1Change( oSender, nPos, nDelta ) CLASS TForm1
>
> oSender:oBuddy:Value := Round( ( nPos + nDelta ) / 2, 1)
>
> RETURN Nil
>
> Lo he hecho de carrerilla y sin probarlo. Espero que esté bien.
>
Justamente estaba probando eso... y no.
Mucho me temo que internamente el control updown nativo debe trabajar
con un INT o un LONG con lo que, por mucho que uno quiera, no hay
decimales...
Saludos y gracias!
José Luis Capel
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9447
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

tMaskEdit y tupDown

Mensaje por ignacio »

José Luis,
No se puede, sólo funciona con números enteros, pero es muy facil simular
que si lo hace. Salto de 0.5, valores posibles entre 0 y 10:
oSender:nMin := 1
oSender:nMax := 20
METHOD UpDown1Change( oSender, nPos, nDelta ) CLASS TForm1
oSender:oBuddy:Value := Round( ( nPos + nDelta ) / 2, 1)
RETURN Nil
Lo he hecho de carrerilla y sin probarlo. Espero que esté bien.
Un saludo,
"José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
news:[email=4383524c@ozsrvnegro.ozlan.local...]4383524c@ozsrvnegro.ozlan.local...[/email]
> Ignacio,
>
>
>>
>> METHOD UpDown1Change( oSender, nPos, nDelta ) CLASS TForm1
>>
>> oSender:oBuddy:Value := nPos + nDelta
>>
>> RETURN Nil
>>
>
> ¿Donde puedo definir nDelta para que sea nDelta := 0.50?
>
> Saludos y gracias,
> José Luis Capel
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9447
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

tMaskEdit y tupDown

Mensaje por ignacio »

José Luis,
Te mando un proyecto de ejemplo funcionando.
Un saludo,
"José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
news:438354f7$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Ignacio,
>
>>
>> oSender:nMin := 1
>> oSender:nMax := 20
>>
>> METHOD UpDown1Change( oSender, nPos, nDelta ) CLASS TForm1
>>
>> oSender:oBuddy:Value := Round( ( nPos + nDelta ) / 2, 1)
>>
>> RETURN Nil
>>
>> Lo he hecho de carrerilla y sin probarlo. Espero que esté bien.
>>
>
> Justamente estaba probando eso... y no.
>
> Mucho me temo que internamente el control updown nativo debe trabajar
> con un INT o un LONG con lo que, por mucho que uno quiera, no hay
> decimales...
>
> Saludos y gracias!
> José Luis Capel


Attached files pruebas.zip (1.9 KB)Â
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
joseluis
Mensajes: 642
Registrado: Jue Sep 08, 2005 12:54 pm

tMaskEdit y tupDown

Mensaje por joseluis »

Ostras!!
>
> Te mando un proyecto de ejemplo funcionando.
>
Funciona!!
Gracias!
José Luis Capel
Responder