Neste post iremos aprender como utilizar as famosas janelas MDI que tanto fizeram sucesso no Delphi… agora não são muito usadas, mas para a criação de sistemas comerciais não existe nada melhor.
Crie um projeto no Flex Builder e adicione a biblioteca Flexlib, encontrada no endereço:
http://code.google.com/p/flexlib/downloads/list
Baixe o Zip da última versão disponível.
Descompacte o Zip e copie o arquivo bin/flexlib.swc para o seu projeto. Depois adicione a biblioteca flexlib.swc no seu projeto, indo em propriedades do objeto e acessando “Flex Build Path”. Vá na aba Library Path e acione o botão “Add SWC”. Encontre flexlib.swc e adicione ao seu projeto.
Após incluir a flexLib, acesse o modo design da sua aplicação e veja na aba “Componentes”, na pasta “Custom”, diversos componentes que foram inseridos devido a FlexLib. Encontre o componente MDICanvas e arraste-o para a sua aplicacao.
Defina um ID para o MDICanvas, como por exemplo “MDI”. Neste canvas poderemos inserir janelas MDI a vontade.
O próximo passo é criar uma janela MDI, indo em Adicionar, MXML Component. No assistente que surge, crie um componente que herde de MDIWindow. conforme a figura abaixo:
Voltando a aplicação principal, crie um botão que possa simular o click em um menu. Esse botão executa o seguinte código:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:ns1="flexlib.mdi.containers.*">
<ns1:MDICanvas x="12" y="10" width="295" height="351" id="MDI">
</ns1:MDICanvas>
<mx:Button x="10" y="369" label="Button">
<mx:click>
<![CDATA[
MDI.windowManager.add(new Tela01());
]]>
</mx:click>
</mx:Button>
</mx:Application>
Ou seja, quando clicamos no botão, adicionamos uma nova tela MDI. Com o canvas ocupando toda a tela da aplicação, podemos simular melhor o MDI.
Obrigado Daniel, seu post me foi muito útil.
Olá Daniel,
poderias postar um tutorial de como abrir essas telas MDI a partir de um “menu”?
Tiago.
Olá, vou fazer sim !!!!
ola Daniel.
Este componente trabalha com modulos? seria bem melhor para as aplicaçoes web…
Por que nao:)
Ola Daniel esses componentes funcional no flash builder 4 como faço para colocar janelas MDI
no flash builder 4 ?
grato…
Oi. Olha eu tenho quase certeza que o MDI não vai funcionar no Flex 4. A não ser que já criaram uma vers~ao para Flex 4. Vou dar uma olhada oK?
este teu exemplo me abriu a mente, mais fiquei perdido porque estou abrindo um menu
cadastro
clientes
e quero chama uma nova janela e nao to sabendo
quando clico em cliente quero abrir um novo formulario para cadastro de cliente. como procedo.
nao tem button
ribamar@guarautos.com.br
oi! olha eu nao entendi direito o seu problema, vc pode mandar um email para daniel.schmitz@hotmail.com explicando com mais calma ?? abração!!
Achei interesante, da uma olhada ao framework que eu fiz baseado no flex mdi, tem algumas coisas interesantes. Tenho que fazer o port a flex 4 ainda.
Daniel,
olha o desafio que eu estou tentando vencer, e não estou conseguindo: estou tentando usar Flex4 + Swiz + Modules + MDI.
Flex4 + MDI ou Flex4 + Modules eu já consegui, mas todo o conjunto não.
Tens alguma dica?
Obrigado!
Cerli
RoKas Tecnologia
Olá,
olha só vou ficar te devendo o SWIZ, que ainda tenho que estudar…. Primeiro eu recomendo assistir o curso do vedovelli. (http://www.vedovelli.com.br/?p=1621). Então você terá´mais base para essa arquitetura. Eu vou estar lá e depois do livro Flex+Java, o próximo será sobre o SWIZ.
Olá amigo!
Parabéns pelo tutorial, me ajudou muito, entretanto, gostaria se possivel de uma ajuda sua pois não sei como fazer “programar” para chamar “Janelas Filhas” a partir de um menu na “Janela Pai” e também, como fazer para que a “Janela Filha” seja aberta em modo “modal” e somente depois de fechada gostaria que o restante do código da chamada inicial fosse então executado pois a janela é modal.
Meu muito obrigado.
Grande abraço.
Ola, para janelas modais use o PopupManager. Se tiver duvidas me fale ok
Meu muito obrigado amigo. Ajudou muito…
Entretanto a questão: “…somente depois de fechada gostaria que o restante do código da chamada inicial fosse então executado pois a janela é modal…” ainda não consegui resolver.
muito bom continue nos ajudando rs parabens isso foi muito util para mim abraço
Parabéns, eu tinha baixado este componente (o código fonte) e passei 2 dias apanhando para entender como criar a MDI Personalizada. Obrigado