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