Página 1 de 1

tMaskEdit y tupDown

Publicado: Lun Nov 21, 2005 6:27 pm
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
--

tMaskEdit y tupDown

Publicado: Mar Nov 22, 2005 9:38 am
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
>
>

tMaskEdit y tupDown

Publicado: Mar Nov 22, 2005 11:56 am
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

tMaskEdit y tupDown

Publicado: Mar Nov 22, 2005 6:12 pm
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

tMaskEdit y tupDown

Publicado: Mar Nov 22, 2005 6:23 pm
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

tMaskEdit y tupDown

Publicado: Mar Nov 22, 2005 6:24 pm
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

tMaskEdit y tupDown

Publicado: Mar Nov 22, 2005 6:49 pm
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)Â

tMaskEdit y tupDown

Publicado: Mar Nov 22, 2005 6:55 pm
por joseluis
Ostras!!
>
> Te mando un proyecto de ejemplo funcionando.
>
Funciona!!
Gracias!
José Luis Capel