Com o seria isso ?
  ----- Original Message ----- 
  From: Campus 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, March 03, 2005 9:41 AM
  Subject: Re: [delphi-br] [CONTRIBUIÇÃO] Automatizar processos OnClose do Form


  tu não pensou num componente para isso, ou criar um form descendente de
  TForm, com um método destoy disparado no evento onclose ?

  ----- Original Message ----- 
  From: "Marcelo Silva" <[EMAIL PROTECTED]>
  To: <delphi-br@yahoogrupos.com.br>
  Sent: Thursday, March 03, 2005 8:57 AM
  Subject: [delphi-br] [CONTRIBUIÇÃO] Automatizar processos OnClose do Form



  Pessoal... meu lema é escrever pouco e deixar o computador trabalhar por mim
  :-) (já que ele foi feito pra isso)

  Então segue uma dica para aqueles que tem este mesmo conceito de deixar  seu
  projeto mais "enxuto"

  Levantei a Thread :-) com relação a Automatizar a abertura e fechamento de
  Forms.
  Imagino que o Delphi até já tenha esta função embutida... pois é a rotina
  mais usada em qualquer aplicação... mas ainda não encontrei.

  Coloque esta função naquela Unit de funções plubicas que vc deve ter...
  (pois não seria vantajoso colocar para um unico form)

  Bem aí vai minha dica:

  procedure MostraLiberaForm(pForm: TForm; cForm: TFormClass);
  begin
    pForm := cForm.Create(nil); // Aqui vc pode usar Self, Application, ou nil
    try
      pForm.ShowModal; // Nao funciona para form Show, pois o mesmo não para
  aqui e será liberado
    finally
      pForm.Free; // Só libera quando o ShowModal é fechado.
    end;
  end;

  Para utiliza-la:

  MostraLiberaForm(SeuForm, TSeuForm);



  Esta função deve ser usada naqueles forms que não tem nenhuma rotina antes
  da sua abertura (por ser ShowModal)... ou a tal rotina deve estar no
  OnCreate do Form em questão.


  * Rotina sujeita a mudanças sem prévio aviso :-)


  Marcelo Silva
  Cel. 11 9693-4251
  ICQ - 49224093
  MSN [EMAIL PROTECTED]


    ----- Original Message ----- 
    From: Marcelo Silva
    To: delphi-br@yahoogrupos.com.br
    Sent: Wednesday, March 02, 2005 6:24 PM
    Subject: Re: [delphi-br] Automatizar processos OnClose do Form


    Free -- serve para o Objeto que não tenha um dono... por exemplo

    var
      MinhaLista: TStringList;
    begin
      MinhaLista := TStringList.Create;
      MinhaLista.Blablabla...

      MinhaLista.Free;
    end;

    MinhaLista é dona dela mesma... assim não depende de outra instancia e
  pode ser liberada da memoria sem erros.

    Outro exemplo

    SeuForm := TSeuForm.Create(nil);
    Try
      SeuForm.ShowModal;
    finally
      SeuForm.Free;
    end;

    SeuForm é dono dele mesmo... o que seria diferente de:

    Application.CreateForm(TSeuForm, SeuForm);

    Desta forma Application é dona do SeuForm e teria que ser destruido assim

    SeuForm.Release; // Aguarda todos os processos(componentes e variaveis)
  pendendentes dentro dele.
    SeuForm := Nil; // Limpa a variável SeuForm para poder ser Recriada

    Se usar Free neste caso poderá causar violation por outros componentes
  estarem dependentes do SeuForm

    Observe que se voce nao utilizar Release e Nil neste caso, sera criado um
  outro form com o nome SeuForm_1 e assim por diante.

    Se for usar aplicações MDI use Free ... do contrário use Release e Nil


    Pelo menos é o que eu entendi no Help do Delphi como segue abaixo: E estou
  pronto para novas ideias :-)

    Description

    Use Free to destroy an object. Free automatically calls the destructor if
  the object reference is not nil. Any object instantiated at runtime that
  does not have an owner should be destroyed by a call to Free so that it can
  be properly disposed of and its memory released. Unlike Destroy, Free is
  successful even if the object is nil; so if the object was never
  initialized, Free won't result in an error.

    When you call Free for a component, it calls Free for all components that
  it owns-that is, all components in its component list. Since a form owns all
  the controls and other components that are created on it in design mode,
  those components are automatically freed when the form is freed. By default,
  all forms are owned by the Application object; when the application
  terminates, it frees the Application object, which frees all forms. For
  objects that are not components, or for components created with a nil owner,
  be sure to call Free after you are finished with them; otherwise the
  allocated memory will not be usable until after the application terminates.

    Warning: Never explicitly free a component within one of its own event
  handlers or the event handler of a component it owns or contains. For
  example, don't free a button, or the form that owns the button, in its
  OnClick event handler.

    To free a form, call its Release method, which destroys the form and
  releases the memory allocated for it after all its event handlers and those
  of the components it contains are through executing.



      ----- Original Message ----- 
      From: Fabio Giro
      To: delphi-br@yahoogrupos.com.br
      Sent: Wednesday, March 02, 2005 9:53 AM
      Subject: Re: [delphi-br] Automatizar processos OnClose do Form



      Marcelo, muito boa a sua explicação. Poderia me informar como funciona o
      Free.

      Obrigado antecipadamente.

      ----- Original Message -----
      From: "Marcelo Silva" <[EMAIL PROTECTED]>
      To: <delphi-br@yahoogrupos.com.br>
      Sent: Wednesday, March 02, 2005 9:38 AM
      Subject: Re: [delphi-br] Automatizar processos OnClose do Form



      Se você não utilizar Release o formulario será imediatamente
  destruido... o
      que poderá causar um Access Violation por alguns componentes ainda
  estarem
      na memória ou aquele endereço irá demorar para estar disponível a outro
      solicitante.

      É como você mandar um arquivo para a lixeira... ele pode estar na
  lixeira
      mas o espaço por ele utilizado ainda não está livre. Mas sim, só depois
  de
      ele ser excluído da lixeira.

      Se voce usar Release ele aguarda que todos os processos relativos aquele
      Form seja finalizado depois executando Nil você arranca de vez o
  formulario
      da memória e libera o endereço da mesma.

      * Lembre-se de que apesar de os componentes estarem dentro do
  formulário...
      cada um utiliza um endereço na memória quando abertos, por isso a
      necessidade da espera até que eles sejam descaregados.

      Marcelo Silva
      Cel. 11 9693-4251
      ICQ - 49224093
      MSN [EMAIL PROTECTED]
        ----- Original Message -----
        From: Wildner B. Ferreira
        To: delphi-br@yahoogrupos.com.br
        Sent: Wednesday, March 02, 2005 9:26 AM
        Subject: RES: [delphi-br] Automatizar processos OnClose do Form


        Para liberar o form da memoria a realmente a necessidade de estar
      utilizando
        o form.release ????



          _____

        De: Marcelo Silva [mailto:[EMAIL PROTECTED]
        Enviada em: quarta-feira, 2 de março de 2005 09:18
        Para: delphi-br@yahoogrupos.com.br
        Assunto: [delphi-br] Automatizar processos OnClose do Form



        Pessoal em todos os Forms temos que colocar Release e nil para liberar
  os
        formularios da memória...
        A pergunta é...
        Teria como automatizar para que a aplicação liberasse o formulario da
        memória de forma automática ?
        Ou seja, detectar que form está sendo fechado e dar um

        Form?.Release;
        Form? := nil;

        Será que tem ?

        Eu já consigo saber qual formulário está sendo executado, mas não
  consigo
        detectar quando foi pedido para fechar... se eu souber quando ocorre
  este
        evento... aí fica belesma...

        Marcelo Silva
        Cel. 11 9693-4251
        ICQ - 49224093
        MSN [EMAIL PROTECTED]
          ----------

        No virus found in this outgoing message.
        Checked by AVG Anti-Virus.
        Version: 7.0.300 / Virus Database: 266.5.4 - Release Date: 01/03/2005


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







        Yahoo! Grupos, um serviço oferecido por:







  <http://br.i1.yimg.com/br.yimg.com/i/br/ads4/2309_lrec_yshopping2.gif>






  <http://br.rd.yahoo.com/SIG=12ajj3q7i/M=264105.3931087.6562589.1588051/D=brc


  lubs/S=2137111264:HM/EXP=1109852332/A=2361264/R=6/SIG=10v4acpp0/*http:/br.sh
        opping.yahoo.com/>







          _____

        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]
        <mailto:[EMAIL PROTECTED]>

        *      O uso que você faz do Yahoo! Grupos está sujeito aos Termos
        <http://br.yahoo.com/info/utos.html>  do Serviço do Yahoo!.



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



              Yahoo! Grupos, um serviço oferecido por:
                    PUBLICIDADE




      ------------------------------------------------------------------------
  ----
      --
        Links do Yahoo! Grupos

          a.. Para visitar o site do seu grupo na web, acesse:
          http://br.groups.yahoo.com/group/delphi-br/

          b.. Para sair deste grupo, envie um e-mail para:
          [EMAIL PROTECTED]

          c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
      Serviço do Yahoo!.




      ------------------------------------------------------------------------
  ----
      --


        No virus found in this incoming message.
        Checked by AVG Anti-Virus.
        Version: 7.0.300 / Virus Database: 266.5.4 - Release Date: 01/03/2005

        ----------

      No virus found in this outgoing message.
      Checked by AVG Anti-Virus.
      Version: 7.0.300 / Virus Database: 266.5.4 - Release Date: 01/03/2005


      [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.308 / Virus Database: 266.5.7 - Release Date: 01/03/2005





      -- 
      No virus found in this outgoing message.
      Checked by AVG Anti-Virus.
      Version: 7.0.308 / Virus Database: 266.5.7 - Release Date: 01/03/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]



            Yahoo! Grupos, um serviço oferecido por:
                  PUBLICIDADE




    --------------------------------------------------------------------------
  ----
      Links do Yahoo! Grupos

        a.. Para visitar o site do seu grupo na web, acesse:
        http://br.groups.yahoo.com/group/delphi-br/

        b.. Para sair deste grupo, envie um e-mail para:
        [EMAIL PROTECTED]

        c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
  Serviço do Yahoo!.




    --------------------------------------------------------------------------
  ----


      No virus found in this incoming message.
      Checked by AVG Anti-Virus.
      Version: 7.0.300 / Virus Database: 266.5.4 - Release Date: 01/03/2005

      ----------

    No virus found in this outgoing message.
    Checked by AVG Anti-Virus.
    Version: 7.0.300 / Virus Database: 266.5.4 - Release Date: 01/03/2005


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



          Yahoo! Grupos, um serviço oferecido por:

                      São Paulo Rio de Janeiro Curitiba Porto Alegre Belo
  Horizonte Brasília




  ----------------------------------------------------------------------------
  --
    Links do Yahoo! Grupos

      a.. Para visitar o site do seu grupo na web, acesse:
      http://br.groups.yahoo.com/group/delphi-br/

      b.. Para sair deste grupo, envie um e-mail para:
      [EMAIL PROTECTED]

      c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
  Serviço do Yahoo!.




  ----------------------------------------------------------------------------
  --


    No virus found in this incoming message.
    Checked by AVG Anti-Virus.
    Version: 7.0.300 / Virus Database: 266.5.4 - Release Date: 01/03/2005

    ----------

  No virus found in this outgoing message.
  Checked by AVG Anti-Virus.
  Version: 7.0.300 / Virus Database: 266.5.4 - Release Date: 01/03/2005


  [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













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



        Yahoo! Grupos, um serviço oferecido por: 
             
                    São Paulo Rio de Janeiro Curitiba Porto Alegre Belo 
Horizonte Brasília  
             
       


------------------------------------------------------------------------------
  Links do Yahoo! Grupos

    a.. Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/
      
    b.. Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]
      
    c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço 
do Yahoo!. 




------------------------------------------------------------------------------


  No virus found in this incoming message.
  Checked by AVG Anti-Virus.
  Version: 7.0.300 / Virus Database: 266.5.4 - Release Date: 01/03/2005

  ----------

No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.300 / Virus Database: 266.5.4 - Release Date: 01/03/2005


[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

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

 



Responder a