<?xml version="1.0" encoding="utf-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Free vs. FreeAndNil vs. Release</title>
	<atom:link href="http://www.ericksasse.com.br/free-vs-freeandnil-vs-release/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ericksasse.com.br/free-vs-freeandnil-vs-release/</link>
	<description>Desenvolvimento de software, tecnologia e afins.</description>
	<lastBuildDate>Tue, 07 Feb 2012 19:36:31 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Erick Sasse</title>
		<link>http://www.ericksasse.com.br/free-vs-freeandnil-vs-release/comment-page-1/#comment-292748</link>
		<dc:creator>Erick Sasse</dc:creator>
		<pubDate>Sun, 29 Aug 2010 17:11:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=337#comment-292748</guid>
		<description>Dificil entender sem ver código. Se quiser me mandar um pequeno projeto que reproduz esse cenário por e-mail, posso dar uma olhada.</description>
		<content:encoded><![CDATA[<p>Dificil entender sem ver código. Se quiser me mandar um pequeno projeto que reproduz esse cenário por e-mail, posso dar uma olhada.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jose soares</title>
		<link>http://www.ericksasse.com.br/free-vs-freeandnil-vs-release/comment-page-1/#comment-291088</link>
		<dc:creator>jose soares</dc:creator>
		<pubDate>Sun, 22 Aug 2010 05:05:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=337#comment-291088</guid>
		<description>Olah erick,
tenho um caso que estah me tirando o sono. um sistema onde os forms de manutencoes sao dinamicos, isso eh, o mesmo form para dah manutencao em diversas tabelas. e nesses forms tem campos que chamam uma tela de consulta. na tela de consulta tem um botao (incluir) para no caso que a consulta nao for satisfeita o usuario dali mesmo ja poder buscar a tela de cadastro e incluir o que for necessario. podendo abrir varias telas sucessivamente.
Com apenas uma tela aberta apos a consulta (botao incluir), apos o retorno para o form origem nao dah erro. mas quando o usuario abre varias telas atravez das consultas ai no retorno do form origem dah erro.
Minha pergunta: Que vc me indicaria para melhor gerenciar esse problema???</description>
		<content:encoded><![CDATA[<p>Olah erick,<br />
tenho um caso que estah me tirando o sono. um sistema onde os forms de manutencoes sao dinamicos, isso eh, o mesmo form para dah manutencao em diversas tabelas. e nesses forms tem campos que chamam uma tela de consulta. na tela de consulta tem um botao (incluir) para no caso que a consulta nao for satisfeita o usuario dali mesmo ja poder buscar a tela de cadastro e incluir o que for necessario. podendo abrir varias telas sucessivamente.<br />
Com apenas uma tela aberta apos a consulta (botao incluir), apos o retorno para o form origem nao dah erro. mas quando o usuario abre varias telas atravez das consultas ai no retorno do form origem dah erro.<br />
Minha pergunta: Que vc me indicaria para melhor gerenciar esse problema???</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rodrigo</title>
		<link>http://www.ericksasse.com.br/free-vs-freeandnil-vs-release/comment-page-1/#comment-260061</link>
		<dc:creator>Rodrigo</dc:creator>
		<pubDate>Thu, 11 Dec 2008 16:45:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=337#comment-260061</guid>
		<description>Olá Erik.

Gostaria de lhe perguntar se você sabe qual a maneira mais correta de liberar memória de objetos alocados usando o Delphi for .net? Pergunto isto porque tenho algumas DLLs feitas em delphi .net, que são chamadas apartir de aplicações win32 feitas em delphi, e estou tendo dificuldades para liberar memória de objetos que usam certificado digital e arquivos XML. Como no Delphi .net não tem a função FreeAndNil eu estou usando o Free e logo em seguida passando nil para o objeto, mas não esta resolvendo, pois depois que termina a execução da dll a memória continua alocada em memória! Se puder ajudar ficarei grato.</description>
		<content:encoded><![CDATA[<p>Olá Erik.</p>
<p>Gostaria de lhe perguntar se você sabe qual a maneira mais correta de liberar memória de objetos alocados usando o Delphi for .net? Pergunto isto porque tenho algumas DLLs feitas em delphi .net, que são chamadas apartir de aplicações win32 feitas em delphi, e estou tendo dificuldades para liberar memória de objetos que usam certificado digital e arquivos XML. Como no Delphi .net não tem a função FreeAndNil eu estou usando o Free e logo em seguida passando nil para o objeto, mas não esta resolvendo, pois depois que termina a execução da dll a memória continua alocada em memória! Se puder ajudar ficarei grato.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Breda</title>
		<link>http://www.ericksasse.com.br/free-vs-freeandnil-vs-release/comment-page-1/#comment-162390</link>
		<dc:creator>Daniel Breda</dc:creator>
		<pubDate>Wed, 04 Jul 2007 13:15:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=337#comment-162390</guid>
		<description>Eu sempre uso FreeAndNil(); pois se eu precisar checar se a variável está instânciada sempre vou ter o resultado correto assim padronizando de forma clara e sem POG meu codigo, claro que cada caso é um caso, no meu esta foi a melhor forma que encontrei.</description>
		<content:encoded><![CDATA[<p>Eu sempre uso FreeAndNil(); pois se eu precisar checar se a variável está instânciada sempre vou ter o resultado correto assim padronizando de forma clara e sem POG meu codigo, claro que cada caso é um caso, no meu esta foi a melhor forma que encontrei.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Erick Sasse</title>
		<link>http://www.ericksasse.com.br/free-vs-freeandnil-vs-release/comment-page-1/#comment-156195</link>
		<dc:creator>Erick Sasse</dc:creator>
		<pubDate>Tue, 05 Jun 2007 22:23:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=337#comment-156195</guid>
		<description>Aldo, a melhor forma de tirar essa dúvida é olhar o código da VCL. Quando um TDataSet é destruído, ele chama o Close automaticamente, então não é necessário que você chame. Pode destruir diretamente.</description>
		<content:encoded><![CDATA[<p>Aldo, a melhor forma de tirar essa dúvida é olhar o código da VCL. Quando um TDataSet é destruído, ele chama o Close automaticamente, então não é necessário que você chame. Pode destruir diretamente.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aldo Leonardo</title>
		<link>http://www.ericksasse.com.br/free-vs-freeandnil-vs-release/comment-page-1/#comment-156109</link>
		<dc:creator>Aldo Leonardo</dc:creator>
		<pubDate>Tue, 05 Jun 2007 20:11:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=337#comment-156109</guid>
		<description>Olá Erick,
Estou com uma duvida cruel,
Uso bastante query dinamica e gostaria de saber se quando eu dou um freeandnil(query) o banco ao qual essa query estava conectada continua registrando a sua conexão ou quando destruo essa query a conexão é automaticamente fechada?????????

Então,,

Eu posso fazer simplesmente freeandnil(query)

Ou devo sempre fazer:
query.close;
freeandnil(query);
????????????????????????</description>
		<content:encoded><![CDATA[<p>Olá Erick,<br />
Estou com uma duvida cruel,<br />
Uso bastante query dinamica e gostaria de saber se quando eu dou um freeandnil(query) o banco ao qual essa query estava conectada continua registrando a sua conexão ou quando destruo essa query a conexão é automaticamente fechada?????????</p>
<p>Então,,</p>
<p>Eu posso fazer simplesmente freeandnil(query)</p>
<p>Ou devo sempre fazer:<br />
query.close;<br />
freeandnil(query);<br />
????????????????????????</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Erick Sasse</title>
		<link>http://www.ericksasse.com.br/free-vs-freeandnil-vs-release/comment-page-1/#comment-18129</link>
		<dc:creator>Erick Sasse</dc:creator>
		<pubDate>Thu, 23 Mar 2006 12:15:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=337#comment-18129</guid>
		<description>Você está certíssimo, eu já não passo mais o owner quando destruo manualmente o componente. Só me toquei disso algum tempo depois de escrever este artigo, e acabei me esquecendo de atualizar aqui.

Inclusive publiquei um post aqui sobre isso, veja:
http://www.ericksasse.com.br/?p=385

Estou corrigindo o artigo, obrigado pelo toque.</description>
		<content:encoded><![CDATA[<p>Você está certíssimo, eu já não passo mais o owner quando destruo manualmente o componente. Só me toquei disso algum tempo depois de escrever este artigo, e acabei me esquecendo de atualizar aqui.</p>
<p>Inclusive publiquei um post aqui sobre isso, veja:<br />
<a href="http://www.ericksasse.com.br/?p=385" rel="nofollow">http://www.ericksasse.com.br/?p=385</a></p>
<p>Estou corrigindo o artigo, obrigado pelo toque.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Douglas</title>
		<link>http://www.ericksasse.com.br/free-vs-freeandnil-vs-release/comment-page-1/#comment-18128</link>
		<dc:creator>Douglas</dc:creator>
		<pubDate>Thu, 23 Mar 2006 10:54:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=337#comment-18128</guid>
		<description>Muito interessante, porém gostaria de fazer uma resalva. No exemplo abaixo não vejo motivo para passar o Owner, pois você vai ser o responsável por destruir o objeto e não o Owner. Dê uma olhada no construtor de TComponent e veja o que acontece se passamos o Owner  nil e entenderá o desperdício. Use assim:

  with TForm2.Create(nil) do
  try
    ShowModal;
  finally
    Free;
  end;

Eu costumo sempre passar o Owner como nil se eu for destruir o objeto manualmente, evitando um possível AV se por exemplo eu der um Free em finalization de uma unit. Se você instancia um objeto com Owner Application em Initialization por exemplo, e libera com free em finalization, tera um AV, pois o Application terá liberado a instância do objeto antes de seu free.
Abraço.</description>
		<content:encoded><![CDATA[<p>Muito interessante, porém gostaria de fazer uma resalva. No exemplo abaixo não vejo motivo para passar o Owner, pois você vai ser o responsável por destruir o objeto e não o Owner. Dê uma olhada no construtor de TComponent e veja o que acontece se passamos o Owner  nil e entenderá o desperdício. Use assim:</p>
<p>  with TForm2.Create(nil) do<br />
  try<br />
    ShowModal;<br />
  finally<br />
    Free;<br />
  end;</p>
<p>Eu costumo sempre passar o Owner como nil se eu for destruir o objeto manualmente, evitando um possível AV se por exemplo eu der um Free em finalization de uma unit. Se você instancia um objeto com Owner Application em Initialization por exemplo, e libera com free em finalization, tera um AV, pois o Application terá liberado a instância do objeto antes de seu free.<br />
Abraço.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

