Sem querer ser espírito de porco, mas o DateChooser já não dá conta do
recado? Eu falo isso pq vc não está a entrar dados de hora e minuto...

2009/9/2 thiagoalgo <thiagoa...@gmail.com>

>
> Opa Felipe, a sua idéia é legal. Mas nesse campo aí o usuário não
> precisa digitar as barras e o campo está sempre aparecendo formatado
> para ele. Quanto a usar um DateValidator eu não tinha pensado ainda,
> mas deve economizar algumas linhas de código realmente.
>
> On 2 set, 16:36, Felipe Bianconi <felipebianc...@gmail.com> wrote:
> > Uma dica, aqui nós formatamos o texto digitado, ao entrar no DateField,
> > retiramos as barras(/) e deixamos só os números, e ao sair, formatamos
> ele
> > com o DateFormatter e validamos com o DateValidator, setando o maxChars
> do
> > _textInput do DateField para 8 quando entra e 10 ao sair. Isso economiza
> o
> > trabalho do usuário digitar as barras. Mas que eu dei uma olhada rápida
> no
> > código, parece ser muito funcional.
> >
> > Obrigado,
> > Felipe Bianconi
> >
> > 2009/9/2 thiagoalgo <thiagoa...@gmail.com>
> >
> >
> >
> > > Pessoal,
> >
> > > Primeiramente desculpem a pretenção no título do email, mas incluí a
> > > palavra enviando pois se não a maioria das pessoas iria achar que
> > > estou solicitando um componente de máscara.
> >
> > > Fiz um componente de data que está funcionando muito bem, porém está
> > > bem "engessado" aceitando apenas o formato dd/mm/yyyy. Por isso estou
> > > disponibilizando para uso e se alguma alma caridosa se inspirar e
> > > quiser melhorá-lo e talvez até dinamizar o formato da máscara o código
> > > está aí.
> >
> > > Uma coisa que acho que ficou nesse componente é que você pode
> > > trabalhar diretamente com dados do tipo Date e não com a propriedade
> > > text do componente.
> >
> > > Segue abaixo o código, se alguém quiser o arquivo posso enviar também.
> > > Lembro que foi feito a "marretada" então tem coisas que com certeza
> > > podem ser melhoradas.
> >
> > > package {
> > >        import flash.events.Event;
> > >        import flash.events.KeyboardEvent;
> > >        import flash.ui.Keyboard;
> >
> > >        import mx.controls.TextInput;
> > >        import mx.formatters.DateFormatter;
> >
> > >        public class ERKDateInput extends TextInput {
> >
> > >                private var _text:String = "";
> > >                private var _textFormated:String = "";
> >
> > >                [Inspectable(defaultValue="false",
> enumeration="true,false",
> > > category="ERK")]
> > >                private var _keepInitial:Boolean = false; // Verifica se
> o
> > > valor
> > > inicial deve ser setado quando chamado o metodo reset
> >
> > >                private var _initialValue:Date = null; // Armazena o
> > > primeiro valor
> > > setado no componente para setar novamente quando o metodo reset for
> > > invocado e quando _keepInitial for verdadeiro
> >
> > >                [Inspectable(defaultValue="false",
> enumeration="true,false",
> > > category="ERK")]
> > >                private var _controlavel:Boolean = true;
> >
> > >                public function ERKDateInput() {
> > >                        super();
> > >                }
> >
> > >                override protected function childrenCreated():void {
> > >                        super.childrenCreated();
> > >                        this.width = 80;
> > >                        this.addEventListener(KeyboardEvent.KEY_DOWN,
> > > _onKeyDown);
> > >                        this.formatar();
> > >                }
> >
> > >                private function _onKeyDown(event:KeyboardEvent):void {
> > >                        var ini:int = selectionBeginIndex; // inicio da
> > > selecao
> > >                        var fim:int = selectionEndIndex; // fim da
> selecao
> >
> > >                        if (event.keyCode == Keyboard.BACKSPACE) {
> > >                                var limiteAuxIni:int = 0;
> > >                                var inicioAuxFim:int = 0;
> >
> > >                                if (fim - ini > 0) {
> > >                                        if (ini >= 6) {
> > >                                                limiteAuxIni = ini - 2;
> > >                                        } else if (ini >= 3) {
> > >                                                limiteAuxIni = ini - 1;
> > >                                        } else {
> > >                                                limiteAuxIni = ini - 0;
> > >                                        }
> >
> > >                                        if (fim >= 6) {
> > >                                                inicioAuxFim = fim - 2;
> > >                                        } else if (fim >= 3) {
> > >                                                inicioAuxFim = fim - 1;
> > >                                        } else {
> > >                                                inicioAuxFim = fim - 0;
> > >                                        }
> >
> > >                                } else {
> > >                                        if (ini >= 6) {
> > >                                                limiteAuxIni = ini - 1 -
> 2;
> > >                                        } else if (ini >= 3) {
> > >                                                limiteAuxIni = ini - 1 -
> 1;
> > >                                        } else {
> > >                                                limiteAuxIni = ini - 1 -
> 0;
> > >                                        }
> >
> > >                                        if (fim >= 6) {
> > >                                                inicioAuxFim = fim - 2;
> > >                                        } else if (fim >= 3) {
> > >                                                inicioAuxFim = fim - 1;
> > >                                        } else {
> > >                                                inicioAuxFim = fim - 0;
> > >                                        }
> > >                                }
> >
> > >                                var auxIni:String =
> this._text.substring(0,
> > > limiteAuxIni);
> > >                                var auxFim:String =
> > > this._text.substring(inicioAuxFim,
> > > this._text.length);
> >
> > >                                this._text = auxIni.concat(auxFim);
> >
> > >                                // Definindo a posicao do cursor
> > >                                if (ini == 6) {
> > >                                        this.selectionBeginIndex = 4;
> > >                                        this.selectionEndIndex = 4;
> >
> > >                                } else if (ini == 3) {
> > >                                        this.selectionBeginIndex = 1;
> > >                                        this.selectionEndIndex = 1;
> >
> > >                                }
> >
> > >                        } else if (event.keyCode == Keyboard.DELETE) {
> > >                                var limiteAuxIni:int = 0;
> > >                                var inicioAuxFim:int = 0;
> >
> > >                                if (fim - ini > 0) {
> > >                                        if (ini >= 6) {
> > >                                                limiteAuxIni = ini - 2;
> > >                                        } else if (ini >= 3) {
> > >                                                limiteAuxIni = ini - 1;
> > >                                        } else {
> > >                                                limiteAuxIni = ini - 0;
> > >                                        }
> >
> > >                                        if (fim >= 6) {
> > >                                                inicioAuxFim = fim - 2;
> > >                                        } else if (fim >= 3) {
> > >                                                inicioAuxFim = fim - 1;
> > >                                        } else {
> > >                                                inicioAuxFim = fim - 0;
> > >                                        }
> >
> > >                                } else {
> > >                                        if (ini >= 6) {
> > >                                                limiteAuxIni = ini - 2;
> > >                                        } else if (ini >= 3) {
> > >                                                limiteAuxIni = ini - 1;
> > >                                        } else {
> > >                                                limiteAuxIni = ini - 0;
> > >                                        }
> >
> > >                                        if (fim >= 6) {
> > >                                                inicioAuxFim = fim + 1 -
> 2;
> > >                                        } else if (fim >= 3) {
> > >                                                inicioAuxFim = fim + 1 -
> 1;
> > >                                        } else {
> > >                                                inicioAuxFim = fim + 1 -
> 0;
> > >                                        }
> > >                                }
> >
> > >                                var auxIni:String =
> this._text.substring(0,
> > > limiteAuxIni);
> > >                                var auxFim:String =
> > > this._text.substring(inicioAuxFim,
> > > this._text.length);
> > >                                this._text = auxIni.concat(auxFim);
> >
> > >                        } else if (event.keyCode >= Keyboard.NUMPAD_0 &&
> > > event.keyCode <=
> > > Keyboard.NUMPAD_9) {
> > >                                var digitado:String = null;
> > >                                if (ini >= 6) {
> > >                                        ini -= 2;
> > >                                } else if (ini >= 3) {
> > >                                        ini--;
> > >                                }
> >
> > >                                if (fim >= 6) {
> > >                                        fim -= 2;
> > >                                } else if (fim >= 3) {
> > >                                        fim--;
> > >                                }
> >
> > >                                if (event.keyCode == Keyboard.NUMPAD_0)
> {
> > > digitado = "0"; }
> > >                                else if (event.keyCode ==
> Keyboard.NUMPAD_1)
> > > { digitado = "1"; }
> > >                                else if (event.keyCode ==
> Keyboard.NUMPAD_2)
> > > { digitado = "2"; }
> > >                                else if (event.keyCode ==
> Keyboard.NUMPAD_3)
> > > { digitado = "3"; }
> > >                                else if (event.keyCode ==
> Keyboard.NUMPAD_4)
> > > { digitado = "4"; }
> > >                                else if (event.keyCode ==
> Keyboard.NUMPAD_5)
> > > { digitado = "5"; }
> > >                                else if (event.keyCode ==
> Keyboard.NUMPAD_6)
> > > { digitado = "6"; }
> > >                                else if (event.keyCode ==
> Keyboard.NUMPAD_7)
> > > { digitado = "7"; }
> > >                                else if (event.keyCode ==
> Keyboard.NUMPAD_8)
> > > { digitado = "8"; }
> > >                                else if (event.keyCode ==
> >
> > ...
> >
> > mais »
> >
>

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

Responder a