Reginaldo,  como comentado pelo autor FABIO ,
vc deve utiliza a propriedade VALUE  e não TEXT.
dá uma lida na parte comentada da classe.


abraço
brunobg
-- 
****************************************************
www.brbsoftware.com.br
[email protected]  (MSN & Skype)
blogflex.brunobg.com
@brunogrohs
(21) 9913-2397




Em 20 de julho de 2011 09:32, Reginaldo Ap. Rigo <[email protected]
> escreveu:

>
>   Enfim posso até estar usando de maneira errada e por isso a
>
> questão.
>
> Estou usando assim:
>
>
>  <components:NumericInput
>
> id="idVLAQS" width="209"
>
> text="{idVLAQS.formatNumber( tools.entidadeManipulada.vlaqs )}"
>
> change="{tools.entidadeManipulada.vlaqs = idVLAQS.toNumber( idVLAQS.text)}"
> textAlign="right"/>
>
>
> tools.entidadeManipulada.vlaqs é minha tabela na memória e idVLAQS, claro,
> o meu NumericInput
>
> Preciso formatar o texto para que apareca formatada corretamente na tela e
>
> preciso formatar toNumber para que o banco não reclame afinal vlaqs é um
> campo numérico.
>
> Mesmo que eu tire a primeira chamada de formatação.
>
>
> O que ocorre desse jeito é que não consigo digitar 0.
>
> Se digitar 470 por exemplo: ele "come' o zero. Se digito de novo. Ai
> aparece e se digito de novo
>
> ai some inclusive o que ele já tinha assumido.
>
>
> Segue abaixo o fonte do NumericInput tal como estou utilizando.
>
>
> Agradeço
>
>
> Reginaldo
>
>
>
>
> package br.com.unisis.unispat.components
>
> {
>
> import flash.events.Event;
>
> import flash.events.FocusEvent;
>
> import mx.controls.TextInput;
>
> import mx.formatters.NumberFormatter;
>
> // import mx.controls.Alert;
>
> /**
>
> * Autor: Fabio da Silva
>
> *
>
> * Classe para digitação de valores, moeda ou não.
>
> * Característica:
>
> * - É utilizado o locale da aplicação para formatação
>
> * - A alteração dos atributos: precision, useNegativeSign e
> useThousandsSeparator
>
> * e a troca de locale da aplicação em runtime provoca a reformatação do
> valor atual.
>
> * - Se useNegativeSign = true e for digitado "-" em qq parte da string,
> então o valor irá¡ ficar negativo.
>
> * - A alteração da propriedade text via código não provoca a sua
> formatação
>
> * - IMPORTANTE: Por conveniência foi criada a propriedade value para ser
> utilizada no lugar de text.
>
> * Setar text no MXML formata o valor passado, mas o mesmo não acontece qd
> setado via código,
>
> * por isso, usar value.
>
> */
>
> [Event(name="valueChange", type="flash.events.Event")]
>
> [Event(name="propertiesNumberFormatChange", type="flash.events.Event")]
>
> public class NumericInput extends TextInput {
>
> /**
>
> * NumberFormatter que serão utilizados para formatar os valores deste
> objeto.
>
> * Foi deixado public somente para que outros objetos possam formatar da
> mesma maneira que este objeto.
>
> */
>
> [Bindable(event="propertiesNumberFormatChange")]
>
> public var nf:NumberFormatter;
>
> private var _precision:uint = 2;
>
> private var _useNegativeSign:Boolean;
>
> private var _useThousandsSeparator:Boolean = true;
>
> private var _value:Object;
>
> private var precisionChanged:Boolean;
>
> private var onlyDigits:RegExp = new RegExp("[^\\d]", "g");
>
> private var useNegativeSignChanged:Boolean;
>
> private var useThousandsSeparatorChanged:Boolean;
>
> public static const PROPERTIES_NUMBER_FORMAT_CHANGE:String =
> "propertiesNumberFormatChange";
>
> public static const VALUE_CHANGE:String = "valueChange";
>
> public function NumericInput() {
>
> super();
>
> this.nf = new NumberFormatter();
>
> this.nf.precision = this._precision;
>
> this.nf.useNegativeSign = this._useNegativeSign;
>
> this.nf.useThousandsSeparator = this._useThousandsSeparator;
>
> this.addEventListener(Event.CHANGE, this.formatHandler, false, 0, true);
>
> this.addEventListener(FocusEvent.FOCUS_IN, this.setCursor, false, 0, true);
>
> this.resourceManager.addEventListener(Event.CHANGE, this.formatHandler,
> false, 0, true);
>
> this.maxChars = 20;
>
> this.restrict = "0-9";
>
> this.setStyle("textAlign", "right");
>
> this.value = 0;
>
> }
>
> override protected function updateDisplayList(unscaledWidth:Number,
> unscaledHeight:Number):void {
>
> super.updateDisplayList(unscaledWidth, unscaledHeight);
>
> var formatChange:Boolean = (this.precisionChanged ||
> this.useNegativeSignChanged || this.useThousandsSeparatorChanged);
>
> if (this.precisionChanged) {
>
> this.precisionChanged = false;
>
> this.nf.precision = this.precision;
>
> }
>
> if (this.useNegativeSignChanged) {
>
> this.useNegativeSignChanged = false;
>
> this.nf.useNegativeSign = this.useNegativeSign;
>
> this.restrict = (this.useNegativeSign) ? "0-9\\-" : "0-9";
>
> }
>
> if (this.useThousandsSeparatorChanged) {
>
> this.useThousandsSeparatorChanged = false;
>
> this.nf.useThousandsSeparator = this.useThousandsSeparator
>
> }
>
> if (formatChange) {
>
> this.value = this.text;
>
> this.dispatchEvent(new
> Event(NumericInput.PROPERTIES_NUMBER_FORMAT_CHANGE));
>
> }
>
> }
>
> ///////////////////////////////////////////////// Propriedades
> ////////////////////////////////////////////////
>
> public function get precision():uint {
>
> return this._precision;
>
> }
>
> /** Seta o número de casas decimais. Default = 2 */
>
> [Inspectable(defaultValue=2)]
>
> public function set precision(value:uint):void {
>
> if (this.precision != value) {
>
> this._precision = value;
>
> this.precisionChanged = true;
>
> this.invalidateDisplayList();
>
> }
>
> }
>
> public function get useNegativeSign():Boolean {
>
> return this._useNegativeSign;
>
> }
>
> /** Se permite o uso de sinal negativo. Default = false */
>
> [Inspectable(defaultValue=false)]
>
> public function set useNegativeSign(value:Boolean):void {
>
> if (this.useNegativeSign != value) {
>
> this._useNegativeSign = value;
>
> this.useNegativeSignChanged = true;
>
> this.invalidateDisplayList();
>
> }
>
> }
>
> public function get useThousandsSeparator():Boolean {
>
> return this._useThousandsSeparator;
>
> }
>
> /** Se deve usar separador de milhar. Default = true. */
>
> [Inspectable(defaultValue=true)]
>
> public function set useThousandsSeparator(value:Boolean):void {
>
> if (this.useThousandsSeparator != value) {
>
> this._useThousandsSeparator = value;
>
> this.useThousandsSeparatorChanged = true;
>
> this.invalidateDisplayList();
>
> }
>
> }
>
> public function get value():Object {
>
> return this._value;
>
> }
>
> [Bindable(event="valueChange")]
>
> public function set value(value:Object):void {
>
> nf.precision = this.precision;
>
> this._value = this.toNumber(value);
>
> this.text = this.nf.format(this._value);
>
> this.dispatchEvent(new Event(NumericInput.VALUE_CHANGE));
>
> }
>
> public function formatNumber(value:Object):String {
>
> nf.precision = this.precision;
>
> this._value = this.toNumber(value);
>
> this.text = this.nf.format(this._value);
>
>    return this.text;
>
> }
>
> /*
>
> public function formataNumero(value:Object):String {
>
> nf.precision = this.precision;
>
> Alert.show("Entrada :: " + value.toString());
>
> this._value = this.toNumber(value);
>
> this.text = this.nf.format(this._value);
>
> Alert.show("Saida :: " + this.text);
>
> return this.text;
>
> }
>
> */
>
> /////////////////////////////////////////////////// Métodos
> ///////////////////////////////////////////////////
>
> private function formatHandler(event:Event):void {
>
> this.value = this.text;
>
> this.setCursor(null);
>
> }
>
> /** Retorna uma String com sómente os digitos de value. */
>
> public function returnDigits(value:Object):String {
>
> return value.toString().replace(this.onlyDigits, "");
>
> }
>
> private function setCursor(event:FocusEvent):void {
>
> this.setSelection(this.length, this.length);
>
> }
>
> /**
>
> * Converte value.toString() para Number, se value não for Number,
> desconsiderando
>
> * os caracteres q não são dígitos e respeitando as configurações.
>
> * Se value == null então retorna 0.
>
> */
>
> public function toNumber(value:Object):Number {
>
> if (value is Number) return new Number(value);
>
> var retorno:Number = 0;
>
> if (value != null) {
>
> retorno = Number(this.returnDigits(value));
>
> // Se estiver marcado q pode ser usado sinal negativo e se encontra-lo,
> então multiplica por -1
>
> if (this.useNegativeSign && value.toString().indexOf("-") > -1) retorno *=
> -1;
>
> }
>
> return (retorno / Math.pow(10, this._precision));
>
> }
>
> }
>
> }
>
>
>
>
>
>
>
>
>
>
>
>
>
> Em 20 de julho de 2011 09:19, bruno bg <[email protected]> escreveu:
>
>  Reginaldo , tb utilizo esse componente.
>> compartilha qual o bug,  que o FABIO vendo, pode até consertar .
>> ou até mesmo vc pode contribuir para o componente para a comunidade.
>>
>> o FABIO é tranquilo !!!
>>
>>
>> brunobg
>> --
>> ****************************************************
>> www.brbsoftware.com.br
>> [email protected]  (MSN & Skype)
>> blogflex.brunobg.com
>> @brunogrohs
>> (21) 9913-2397
>>
>>
>>
>> Em 20 de julho de 2011 09:16, Reginaldo Ap. Rigo <
>> [email protected]> escreveu:
>>
>> Putz... É esse mesmo que estou usando..
>>>
>>> Corrigi o bug das casas decimais. Mas ainda tem um outro.
>>>
>>>
>>>
>>>
>>>
>>> Reginaldo
>>>
>>>
>>> Em 20 de julho de 2011 09:07, Juliano Feltraco 
>>> <[email protected]>escreveu:
>>>
>>> Uso esse...
>>>> com algumas alteracoes
>>>>
>>>>
>>>> http://fabiophx.blogspot.com/2009/04/numericinput.html
>>>>
>>>> Em 20 de julho de 2011 09:06, Samuel Facchinello 
>>>> <[email protected]>escreveu:
>>>>
>>>> http://fabiophx.blogspot.com/2009/04/numericinput.html
>>>>>
>>>>>
>>>>>
>>>>> Att,
>>>>> Samuel Facchinello
>>>>> http://desenvolvendoemflex.blogspot.com
>>>>> Joinville - SC
>>>>>
>>>>>
>>>>>
>>>>> Em 20 de julho de 2011 09:01, Reginaldo Ap. Rigo <
>>>>> [email protected]> escreveu:
>>>>>
>>>>> Pessoal,
>>>>>>
>>>>>> Bom dia!
>>>>>>
>>>>>> Alguem de voces sabe onde posso encontrar um componente para entrada
>>>>>> de numero no Flex bom?
>>>>>>
>>>>>> Tenho um aqui mas esta com um bug chato e nem tenho tempo de ver o que
>>>>>> é no momento.
>>>>>>
>>>>>> Valeu.
>>>>>>
>>>>>> Agradeço e bom trabalho.
>>>>>>
>>>>>>
>>>>>>
>>>>>>  Reginaldo
>>>>>>
>>>>>> --
>>>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>>>> Para enviar uma mensagem, envie um e-mail para
>>>>>> [email protected]
>>>>>> Para sair da lista, envie um email em branco para
>>>>>> [email protected]
>>>>>> Mais opções estão disponíveis em
>>>>>> http://groups.google.com/group/flexdev
>>>>>
>>>>>
>>>>>   --
>>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>>> Para enviar uma mensagem, envie um e-mail para
>>>>> [email protected]
>>>>> Para sair da lista, envie um email em branco para
>>>>> [email protected]
>>>>> Mais opções estão disponíveis em
>>>>> http://groups.google.com/group/flexdev
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Att.
>>>>                 >> Juliano Feltraco <<
>>>>                 9131-6290 - 3526-9786
>>>>
>>>>              "A vida é feita de desafios..."
>>>>
>>>> --
>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>> Para enviar uma mensagem, envie um e-mail para [email protected]
>>>> Para sair da lista, envie um email em branco para
>>>> [email protected]
>>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>>
>>>
>>>   --
>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>> Para enviar uma mensagem, envie um e-mail para [email protected]
>>> Para sair da lista, envie um email em branco para
>>> [email protected]
>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>
>>
>>
>>
>> --
>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> Para enviar uma mensagem, envie um e-mail para [email protected]
>> Para sair da lista, envie um email em branco para
>> [email protected]
>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>
>
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para [email protected]
> Para sair da lista, envie um email em branco para
> [email protected]
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para 
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a