Amigo, experimente utilizar ShowModal, pois somente com o Show, vc poderá abrir vários forms, agora me diga, porque abrir vários forms, se o usuário apenas vai se concentrar em um.
Eu até entendo que vc queria, por exemplo, em uma venda poder cadastrar o cliente, sem ter que abandonar o form de vendas, ou no cadastrado de clientes cadastrar uma nova cidade.. Para isto utilize o popupmenu, ou um botão. Ex: procedure TMainForm.ClientesmnuClick(Sender:Tobject); // Aqui chama o form de clientes do menu principal begin FormClientes := TFormClientes.Create(self); try FormCleintes.ShowModal; finally FormClientes.Release; end; FormClientes := nil; end; no Form Clientes, na seça implementation eu declaro o seguinte implementation; uses DataCad, Cidades; Tenho um popupmenu com a opcção de ir para ocadastro de cidades, ai é só usuário clicar com o botão direito do mouse e selecionar cidades, ficando assim: procedure TFormClientes.Cidades1Click(Sender: TObject); //Aqui eu chamo o cadastro de cidades sem sair do cliente. begin FormCidade := TFormCidade.Create(Self); try FormCidade.ShowModal; finally FormCidade.Release; end; FormCidade := nil; end; Creio que assim vc economizaria mais memória., observe que a cada saida do form eu o retiro da memória e o destruo, pois se deixarmos a cargo do usuário ele abre todos os forms.. Espero ter ajudado Fausto ----- Original Message ----- From: "PMCC" <[EMAIL PROTECTED]> To: <delphi-br@yahoogrupos.com.br> Sent: Tuesday, January 18, 2005 1:48 AM Subject: [delphi-br] Sistema Roubando Memória Pessoal, to precisando muito de ajuda, meu sistema está consumindo muita memória, Utilizo o seguinte pra abrir os forms à partir do formprincipal: procedure Tfmprincipal.SubGrupo1Click(Sender: TObject); begin if not Assigned (fmsubgrupo) then begin fmsubgrupo:=tfmsubgrupo.create(self); fmsubgrupo.show; exit end else fmsubgrupo.windowstate:=wsnormal; fmsubgrupo.BringToFront; fmsubgrupo.Show; end; Pra fechar utilizo o seguinte codigo no onclose dele: procedure Tfmgrupo.FormClose(Sender: TObject; var Action: TCloseAction); begin if codgrupo.text<>'' then data1.grupo:=strtoint(codgrupo.text); action:=cafree; fmgrupo:=nil; end; Existe uma forma melhor e q nao prejudique o desempenho??? Qualquer auxilio será bem vindo. Abraços, Robson Farias [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos -- No virus found in this incoming message. Checked by AVG Anti-Virus. Version: 7.0.300 / Virus Database: 265.6.13 - Release Date: 16/01/2005 -- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.300 / Virus Database: 265.6.13 - Release Date: 16/01/2005 -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html