Sim, me manda uma mensagem privada que eu te passo meu Skype.

2011/2/4 Diego Hordi <diego.ho...@gmail.com>

> Assim como tudo na vida, existem vantagens e desvantagens em utilizar
> um modelo visual 100% dinâmico. A principal que eu vejo é o fato de o
> cliente poder customizar sua aplicação. Se este fator não estiver
> sendo considerado, normalmente se obterá mais vantagens diagramando
> cada form.
>
> Que legal esta tua customização! Você trabalha na Totvs? Tem skype?
>
> Um abraço!
> Diego Hordi
>
> On 4 fev, 12:07, Helio Antonio Francisco Silva
> <helio.afsi...@gmail.com> wrote:
> > Entao eu desenvolvi pra voce ter ideia toda a parte de pedido de venda, e
> > imbuti varias funcionalidades, os clientes quando veem babam...
> > so um detalhe eu nao fiz pra carregar tudo pelo dicionario de dados, eu
> fiz
> > para ficar uma tela mais amigavel , ate por que, voce nao tem como
> acertar o
> > layout 100% para carregar usando o dicionario. fica aquelas 2 colunas, eu
> > fiz tudo diagramado.
> >
> > Sim, se o cara colocar 1 campo ele nao parece no sistema.mas como isso e
> > dificil mudar nao tem problemas.
> > Outra coisa fundamental e que nem todos os campo vao para a parte Web,
> > somente o que interessa deixando mais limpo e rapido as consultas.
> >
> > tive muitos, mas muitos feedbacks positivos por parte dos clientes.
> >
> > mas ai voce escolhe, quer ter tudo dinamico e pagar o preço pela demora
> por
> > que demora um pouco mais pra ler tudo, e fica com aquele layout ou voce
> > diagrama tudo como voce quer e tem um sistema mais enxuto digamos assim.
> >
> > 2011/2/4 Diego Hordi <diego.ho...@gmail.com>
>  >
> >
> >
> >
> >
> >
> >
> > > Hum! Então, eu desenvolvi um esquema de carregamento das telas bem
> > > parecido com o Protheus (que pelo jeito, já vi que você manja!):
> > > primeiro carrega o dicionário de dados, monta o grid, os menus, as
> > > telas e o restante dos componentes, tudo em tempo de execução, e on
> > > demand.
> >
> > > O curioso sobre este problema é que eu nunca o tinha visto, quando
> > > usava módulos, por exemplo, dentro de um TabNavigator. Daí recebi um
> > > novo desenho de interface para implementar aqui, que a solução ideal
> > > seria trabalhar diretamente com um ModuleLoader na aplicação
> > > principal. Agora com tudo funcionando, já tirei o ViewStack e melhorei
> > > algumas coisas. Vivendo e aprendendo!
> >
> > > On 4 fev, 10:42, Helio Antonio Francisco Silva
> > > <helio.afsi...@gmail.com> wrote:
> > > > Massa, eu sempre uso os modulos na aplicação principal tambem.
> > > > O truque que eu uso e fazer com que o usuario ache que to carrengando
> um
> > > > modulo dentro do outro, quando apenas eu crio um array de modules e
> > > bloqueio
> > > > o moduloque foi carregando anteriormente ate que o modulo atual seja
> > > > descarregado.
> >
> > > > quem ve parece que e um modulo dentro do outro.
> >
> > > > 2011/2/4 Diego Hordi <diego.ho...@gmail.com>
> >
> > > > > Hélio,
> >
> > > > > Estava desde ontem "comendo" a documentação, até que alguns minutos
> > > > > depois que fiz o post aqui, cheguei no seguinte parágrafo:
> >
> > > > > "Because a module is loaded into a child domain, it owns class
> > > > > definitions that are not in the main application's domain. For
> > > > > example, the first module to load the PopUpManager class becomes
> the
> > > > > owner of the PopUpManager class for the entire application because
> it
> > > > > registers the manager with the SingletonManager. If another module
> > > > > later tries to use the PopUpManager, Adobe ® Flash® Player throws
> an
> > > > > exception."
> >
> > > > > Daí, foi só adicionar a linha moduleLoader.applicationDomain =
> > > > > ApplicationDomain.currentDomain, que tudo fluiu exatamente como
> > > > > deveria.
> >
> > > > > Quanto à sua pergunta, estou destruindo tudo o que não será mais
> > > > > utilizado quando o método é descarregado, justamente para deixar o
> GC
> > > > > trabalhar corretamente.
> >
> > > > > De toda forma, obrigado!
> >
> > > > > Um abraço!
> > > > > Diego Hordi
> >
> > > > > On 4 fev, 10:16, Helio Antonio Francisco Silva
> > > > > <helio.afsi...@gmail.com> wrote:
> > > > > > cara eu uso modulos PRA TUDO e nunca tive esse tipo de problema
> ate
> > > por
> > > > > que
> > > > > > na teoria, quando voce carrega um modulo ele meio que vem zerado
> ou
> > > seja
> > > > > ele
> > > > > > e recriado.
> >
> > > > > > pergunta e.
> >
> > > > > > Ta usando referencia fraca nos listners, destruindo as variaveis
> > > antes de
> > > > > > descarregar o modulo pra nao ficar nada ?
> > > > > > lembra que os modulos sempre fica uns lixos na memoria.
> >
> > > > > > 2011/2/4 Diego Hordi <diego.ho...@gmail.com>
> >
> > > > > > > Pessoal,
> >
> > > > > > > Situação:
> > > > > > > Estou desenvolvendo um projeto, cuja tela principal deverá
> conter
> > > um
> > > > > > > ModuleLoader que carregará vários módulos ao longo da
> existência da
> > > > > > > aplicação, existindo a possibilidade de um módulo ser
> recarregado
> > > > > > > também várias vezes, caso o usuário queira, por exemplo, entrar
> no
> > > > > > > módulo de fornecedores, sair, ir para o módulo de clientes,
> sair e
> > > > > > > voltar para o módulo de fornecedores.
> >
> > > > > > > Problema:
> > > > > > > Os módulos funcionam perfeitamente na primeira vez em que são
> > > > > > > carregados, porém, na segunda vez que são carregados, alguns
> > > > > > > componentes, como o DataGrid, por exemplo, ao disparar o evento
> > > > > > > ListEvent, não passam a linha atual para a propriedade
> > > > > > > itemRenderer.data do evento. Já coloquei e tirei o SDK da RSL,
> já
> > > > > > > troquei a versão do SDK, troquei o ModuleLoader da tela
> principal
> > > por
> > > > > > > um ViewStack, mas nada de funcionar corretamente. Atualmente
> estou
> > > > > > > utilizando o SDK 3.4 (merged into code). Abaixo um trecho do
> meu
> > > > > > > componente NavigationContext, que dentre outras coisas,
> gerencia o
> > > > > > > carregamento dos módulos:
> >
> > > > > > > [code]
> > > > > > > package br.com.hordi.rechapps.view.utils{
> >
> > > > > > >        import
> br.com.hordi.rechapps.view.forms.LoadingProgressForm;
> >
> > > > > > >        import mx.core.Application;
> > > > > > >        import mx.events.ModuleEvent;
> > > > > > >        import mx.modules.ModuleLoader;
> > > > > > >        import mx.resources.ResourceManager;
> > > > > > >        import flash.events.EventDispatcher;
> >
> > > > > > >        [Resource("exceptions")]
> > > > > > >        public class NavigationContext extends EventDispatcher{
> >
> > > > > > >                private static var instance:NavigationContext;
> > > > > > >                [Bindable] private var
> moduleLoader:ModuleLoader;
> > > > > > >                [Bindable] private var
> > > > > > > loadingProgressForm:LoadingProgressForm;
> >
> > > > > > >                public function NavigationContext(
> > > > > > > enforcer:SingletonEnforcer ){
> > > > > > >                        if( !enforcer ){
> > > > > > >                                throw new
> > > > > > > Error( ResourceManager.getInstance().getString( "exceptions",
> > > > > > > "SingletonInstanceException" ) );
> > > > > > >                        } else {
> > > > > > >                                loadingProgressForm =
> > > > > > > LoadingProgressForm.getInstance();
> > > > > > >                        }
> > > > > > >                }
> >
> > > > > > >                public static function
> > > getInstance():NavigationContext{
> > > > > > >                        if( instance == null ){
> > > > > > >                                instance = new
> NavigationContext(
> > > new
> > > > > > > SingletonEnforcer() );
> > > > > > >                        }
> > > > > > >                        return instance;
> > > > > > >                }
> >
> > > > > > >                public function browse( url:String ):void{
> > > > > > >                        moduleLoader = new ModuleLoader();
> >
> > >  moduleLoader.addEventListener(ModuleEvent.READY,
> > > > > > > function(event:ModuleEvent):void{
> > > > > > >                                loadingProgressForm.hide();
> > > > > > >                                for( var idx:Number = 0; idx <
> > > > > > > Application.application.modulesContainer.getChildren().length;
> > > idx++ )
> > > > > > > {
> > > > > > >                                        var
> > > unusedModule:ModuleLoader =
> > > > > > > Application.application.modulesContainer.getChildAt( idx ) as
> > > > > > > ModuleLoader;
> >
> > > > > > > Application.application.modulesContainer.removeChild(
> unusedModule
> > > );
> > > > > > >
>  unusedModule.unloadModule();
> > > > > > >                                }
> >
> > > > > > >  Application.application.modulesContainer.addChild(
> moduleLoader );
> >
> > > > > > >  Application.application.modulesContainer.selectedIndex =
> > > > > > >
> (Application.application.modulesContainer.getChildren().length-1);
> > > > > > >                        });
> >
> > > > >  moduleLoader.addEventListener(ModuleEvent.PROGRESS,
> > > > > > > function(event:ModuleEvent):void{
> > > > > > >                                loadingProgressForm.setProgress(
> > > > > > > Math.ceil((event.bytesLoaded /
> > > > > > > event.bytesTotal)*100), 100 );
> > > > > > >                                loadingProgressForm.label =
> > > "Carregando
> > > > > > > módulo - " +
> > > > > > > Math.ceil((event.bytesLoaded / event.bytesTotal)*100) + "%";
> > > > > > >                                loadingProgressForm.title =
> > > > > "Carregando...";
> > > > > > >                        });
> > > > > > >                        moduleLoader.loadModule( url );
> > > > > > >                        loadingProgressForm.show();
> > > > > > >                }
> >
> > > > > > >        }
> >
> > > > > > > }
> >
> > > > > > > class SingletonEnforcer{}
> > > > > > > [/code]
> >
> > > > > > > OBS: Deixei os listeners do moduleLoader inline mesmo, porque
> ainda
> > > > > > > estou tentando outras soluções para o problema.
> >
> > > > > > > Se alguém puder ajudar, agradeço bastante!
> >
> > > > > > > Um abraço!
> > > > > > > Diego Hordi
> >
> > > > > > > --
> > > > > > > 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 emhttp://
> > > groups.google.com/group/flexdev
> >
> > > > > > --
> > > > > > *Hélio Antonio Fransico Silva*
> > > > > > Desenvolvedor web
> > > > > > Certificado Flash developer
> > > > > > Certificado Flash Design
> > > > > > Certificado web developer
> > > > > > Consultor Microsiga / Totvs
> > > > > > Desenvolvedor ADVPL / ASP
> > > > > > Analista de sistemas e ERP Sênior.
> >
> > > > > --
> > > > >  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 emhttp://
> groups.google.com/group/flexdev
> >
> > > > --
> >
> > ...
> >
> > 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
>



-- 
*Hélio Antonio Fransico Silva*
Desenvolvedor web
Certificado Flash developer
Certificado Flash Design
Certificado web developer
Consultor Microsiga / Totvs
Desenvolvedor ADVPL / ASP
Analista de sistemas e ERP Sênior.

-- 
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