Olá Pessoal, No meu sistema, todas as telas são chamadas via Show e não ShowModal, já que os usuários querem abrir várias telas do sistema ao mesmo tempo, assim como fazem sistemas como SAP e Datasul EMS. A questão é a forma de carregamento dos pacotes, já que são muitos usuarios e preciso ter a facilidade de atualizar o sistema sem os usuarios sairem do mesmo.
Até aí tudo bem, isso já está tranquilo. O grande problema é com relação aos formularios não modais, onde segui o seguinte método: Tenho uma variavel global (HPackageGlobal) onde uso para carregar o pacote, na entrada do formulario, passo esse valor para uma variavel local(HPackageLocal) que é usada no finalization do pacote para fazer o seu descarregamento. Não está dando erro nenhum, o problema é que monitorando a variavel HPackageGlobal em cada chamada, ele sempre retorna o mesmo numero e quando executa a rotina finalization, não está descarregando o pacote da memória, já que sua memória usada (via task manager) sempre aumenta. Será que não existe forma de chamar os formularios via Show usando pacotes e depois descarrega-los ? Rotina para carregar o pacote: function CarregarPackage(Package: String; Formulario: String ):Boolean; var frmForm: TForm; FormClass: TFormClass; begin Result := False; HPackageGlobal := LoadPackage(Package); if HPackageGlobal <> 0 then begin Result := True; FormClass := TFormClass(FindClass(Formulario)); frmForm := FormClass.Create(nil); frmForm.Show; end else begin ShowMessage('Não foi possível carregar o módulo'); end; end; No pacote carregado, eu uso o codigo abaixo para gerenciar o unload do pacote: procedure TfrmPontoControle.FormShow(Sender: TObject); begin HPackageLocal := HPackageGlobal; end; procedure TfrmPontoControle.FormDestroy(Sender: TObject); begin FreeAndNil(frmPontoControle); end; initialization RegisterClass(TfrmPontoControle); finalization UnRegisterClass(TfrmPontoControle); UnloadPackage(HPackageLocal); Obrigado pela ajuda de todos Dener -- <<<<< 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