<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Erick Sasse &#187; Delphi</title>
	<atom:link href="http://www.ericksasse.com.br/tag/delphi/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ericksasse.com.br</link>
	<description>Desenvolvimento de software, tecnologia e afins.</description>
	<lastBuildDate>Thu, 29 Jul 2010 12:21:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Delphi no MacOS: Será que precisamos disso?</title>
		<link>http://www.ericksasse.com.br/delphi-no-macos-sera-que-precisamos-disso/</link>
		<comments>http://www.ericksasse.com.br/delphi-no-macos-sera-que-precisamos-disso/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 01:39:42 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=932</guid>
		<description><![CDATA[Todo mundo que acompanha as notícias sobre Delphi já deve estar sabendo que a próxima versão trará um compilador nativo para MacOS. Não é usando Mono e Delphi Prism, como já é possível hoje, é um novo compilador. A IDE vai continuar no Windows, mas poderá compilar para MacOS. Que a plataforma Mac está crescendo [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ericksasse.com.br/wp-content/uploads/2010/01/2006-06-New-York-073.jpg"><img class="alignright size-full wp-image-936" title="Apple Store na quinta avenida de Nova York." src="http://www.ericksasse.com.br/wp-content/uploads/2010/01/2006-06-New-York-073.jpg" alt="" width="254" height="300" /></a>Todo mundo que acompanha as notícias sobre Delphi já deve estar sabendo que a próxima versão trará um compilador nativo para MacOS. Não é usando Mono e Delphi Prism, como já é possível hoje, é um novo compilador. A IDE vai continuar no Windows, mas poderá compilar para MacOS.</p>
<p>Que a plataforma Mac está crescendo um pouco, ninguém tem dúvida, provavelmente em grande parte devido ao iPhone, que é um aparelho fantástico, eu mesmo tenho um. Mas quantos de vocês já tiveram uma demanda realmente importante para portar seus sistemas para MacOS? Sim eu já tive alguns clientes querendo rodar meus produtos no Mac, mas posso contar nos dedos. Certamente nada que justifique uma versão para essa plataforma.</p>
<p>Estamos falando de sistemas empresariais, que deve ser o que a maioria aqui no Brasil desenvolve usando Delphi. Para nós, se precisarmos suportar qualquer plataforma além do Windows, vejo muito mais sentido usar web, e já estaremos suportando não só Mac, mas também Linux, Chrome OS, telefones, PS3, etc.</p>
<p>Além disso, quem não é desenvolvedor Delphi certamente não vai usar o Delphi para fazer algo no Mac. Eles tem a IDE Xcode da Apple, que é muito poderosa, gratuita e mais &#8220;nativa&#8221; da plataforma. Então os clientes potenciais que restam realmente são apenas os clientes que já usam Delphi no Windows. Portanto dificilmente isso trará uma quantidade significante de novos usuários para o Delphi.</p>
<p>Lógico que é um recurso legal de ter, só não podemos esquecer que custa dinheiro para desenvolver e manter isso, dinheiro esse que poderia estar sendo melhor utilizado no Delphi Win32, que usamos diariamente e que infelizmente ainda tem muitos bugs a serem corrigidos.</p>
<p>A Embarcadero faz pesquisas anuais para saber o que os usuários querem no Delphi, então estou curioso para saber o que vocês acham disso. Vocês acham que esse recurso vai ser útil? Alguém aqui pretende usar? Meus usuários são diferentes e eu não estou percebendo a necessidade? Talvez consigam me fazer mudar de idéia, ou confirmar meu receio de que quase ninguém vai usar isso pelo menos por aqui.</p>
<p><map name='google_ad_map_932_553e3b693ffb9e44'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/932?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_932_553e3b693ffb9e44' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=932&amp;url= http%3A%2F%2Fwww.ericksasse.com.br%2Fdelphi-no-macos-sera-que-precisamos-disso%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/delphi-no-macos-sera-que-precisamos-disso/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Pesquisa Delphi 2010</title>
		<link>http://www.ericksasse.com.br/pesquisa-delphi-2010/</link>
		<comments>http://www.ericksasse.com.br/pesquisa-delphi-2010/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 13:59:10 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Delphi 2010]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=911</guid>
		<description><![CDATA[Todo ano a Embarcadero vem fazendo uma pesquisa entre os desenvolvedores para definir o futuro do Delphi. Ela é longa, mas muito importante, e todos usuários Delphi deveriam dedicar um tempo para responde-la com calma. Eu já respondi. Se você é desenvolvedor Delphi, não deixe de fazer, pois o futuro do produto está muitas vezes [...]]]></description>
			<content:encoded><![CDATA[<p>Todo ano a Embarcadero vem fazendo uma pesquisa entre os desenvolvedores para definir o futuro do Delphi. Ela é longa, mas muito importante, e todos usuários Delphi deveriam dedicar um tempo para responde-la com calma.</p>
<p>Eu já respondi. Se você é desenvolvedor Delphi, não deixe de fazer, pois o futuro do produto está muitas vezes diretamente ligado ao seu futuro e/ou de sua empresa.</p>
<p>Link para a pesquisa:<br />
<a href="http://www.surveymonkey.com/s.aspx?sm=XrKr27_2bmLfybzGzZi_2brsBQ_3d_3d">http://www.surveymonkey.com/s.aspx?sm=XrKr27_2bmLfybzGzZi_2brsBQ_3d_3d</a></p>
<p><map name='google_ad_map_911_553e3b693ffb9e44'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/911?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_911_553e3b693ffb9e44' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=911&amp;url= http%3A%2F%2Fwww.ericksasse.com.br%2Fpesquisa-delphi-2010%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/pesquisa-delphi-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilizando XML Data Binding do Delphi</title>
		<link>http://www.ericksasse.com.br/utilizando-xml-data-binding-do-delphi/</link>
		<comments>http://www.ericksasse.com.br/utilizando-xml-data-binding-do-delphi/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 17:29:05 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=907</guid>
		<description><![CDATA[O recurso XML Data Binding do Delphi permite gerar classes tipadas a partir de arquivos XML, facilitando em muito quando se precisa ler e escrever arquivos XML. Se não me engano, anteriormente esse recurso não estava disponível na versão Professional do Delphi, mas agora está, pelo menos no Delphi 2009. Eu usei recentemente e tinha [...]]]></description>
			<content:encoded><![CDATA[<p>O recurso XML Data Binding do Delphi permite gerar classes tipadas a partir de arquivos XML, facilitando em muito quando se precisa ler e escrever arquivos XML.</p>
<p>Se não me engano, anteriormente esse recurso não estava disponível na versão Professional do Delphi, mas agora está, pelo menos no Delphi 2009.</p>
<p>Eu usei recentemente e tinha colocado na minha lista de assuntos para blogar, mas o Diego Garcia acabou de publicar <a href="http://unitonedev.blogspot.com/2009/08/utilizando-xml-databinding.html">um video detalhado</a> de como utilizar esse recurso.</p>
<p>Vale a pena conhecer, pois mais cedo ou mais tarde todo mundo acaba precisando manipular XML.</p>
<p><map name='google_ad_map_907_553e3b693ffb9e44'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/907?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_907_553e3b693ffb9e44' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=907&amp;url= http%3A%2F%2Fwww.ericksasse.com.br%2Futilizando-xml-data-binding-do-delphi%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/utilizando-xml-data-binding-do-delphi/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Uma semana de Windows 7 RTM</title>
		<link>http://www.ericksasse.com.br/uma-semana-de-windows-7-rtm/</link>
		<comments>http://www.ericksasse.com.br/uma-semana-de-windows-7-rtm/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 11:03:51 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=901</guid>
		<description><![CDATA[Estou rodando Windows 7 RTM (versão final) na minha máquina principal há pouco mais de uma semana. Ela foi liberada no dia 06/08 para assinantes da TechNet e foi dessa forma que baixei. Da primeira vez que testei o Windows 7, foi a versão 64-bits, mas desta vez optei pela versão 32, pois a 64 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.ericksasse.com.br/wp-content/uploads/2009/08/3660039011_073d6a4fb7_o-300x115.png" alt="3660039011_073d6a4fb7_o" title="3660039011_073d6a4fb7_o" width="300" height="115" class="alignright size-medium wp-image-903" />Estou rodando Windows 7 RTM (versão final) na minha máquina principal há pouco mais de uma semana. Ela foi liberada no dia 06/08 para assinantes da TechNet e foi dessa forma que baixei.</p>
<p>Da <a href="/primeiras-impressoes-do-windows-7-delphi-firebird/">primeira vez</a> que testei o Windows 7, foi a versão 64-bits, mas desta vez optei pela versão 32, pois a 64 ainda tem algumas poucas incompatibilidades e nenhum benefício aparente até o momento.</p>
<p>A ótima notícia é que pelo menos na versão 32, o Delphi 2009 funciona perfeitamente, não existindo o problema do debugger que eu já tinha <a href="/problema-com-delphi-no-windows-7/">reportado aqui</a>. Agora só falta pesquisar como tirar proveito dos novos recursos do Windows 7 nos nossos aplicativos. A &#8220;jump list&#8221; da nova barra de tarefas é a primeira candidata.</p>
<p>O Google Chrome também está perfeito e rodando sem nenhum problema.</p>
<p>Esses foram os únicos aplicativos que me deram problema da primeira vez e agora estão 100% na versão RTM 32-bits.</p>
<p>Devo dizer que a instalação do Windows foi perfeita e a performance é realmente superior ao Vista e XP, incrível o que eles conseguiram fazer. </p>
<p>Para não dizer que tudo são flores, o único problema que tive até agora com o Windows 7 é que não consigo mais ligar meu notebook a minha TV LCD. Ainda não consegui resolver, e toda vez que conecto a TV diz que a imagem esta em modo incompatível. É uma TV Samsung Full HD 40 polegadas. Se alguém tiver qualquer dica, é bem vinda. Minha placa de video é uma ATI Mobility Radeon X1600.</p>
<p>Apesar disso o Windows 7 é um upgrade totalmente recomendado, inclusive para os fanáticos pelo XP. Podem ir sem medo. Deixem o XP para trás, por favor! <img src='http://www.ericksasse.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><map name='google_ad_map_901_553e3b693ffb9e44'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/901?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_901_553e3b693ffb9e44' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=901&amp;url= http%3A%2F%2Fwww.ericksasse.com.br%2Fuma-semana-de-windows-7-rtm%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/uma-semana-de-windows-7-rtm/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Video em Português com as Novidades do Delphi 2010</title>
		<link>http://www.ericksasse.com.br/video-em-portugues-com-as-novidades-do-delphi-2010/</link>
		<comments>http://www.ericksasse.com.br/video-em-portugues-com-as-novidades-do-delphi-2010/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 19:08:55 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Delphi 2010]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=898</guid>
		<description><![CDATA[Mais um video produzido pela Embarcadero com as novidades do Delphi 2010, mas desta vez em português.]]></description>
			<content:encoded><![CDATA[<p>Mais um video produzido pela Embarcadero com as novidades do Delphi 2010, mas desta vez em português.</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/U-9ilnyiY9A&#038;hl=pt-br&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/U-9ilnyiY9A&#038;hl=pt-br&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p><map name='google_ad_map_898_553e3b693ffb9e44'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/898?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_898_553e3b693ffb9e44' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=898&amp;url= http%3A%2F%2Fwww.ericksasse.com.br%2Fvideo-em-portugues-com-as-novidades-do-delphi-2010%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/video-em-portugues-com-as-novidades-do-delphi-2010/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Novidades do Delphi 2010</title>
		<link>http://www.ericksasse.com.br/novidades-do-delphi-2010/</link>
		<comments>http://www.ericksasse.com.br/novidades-do-delphi-2010/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 13:45:52 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Delphi 2010]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=894</guid>
		<description><![CDATA[A Embarcadero publicou um primeiro video com algumas das novidades que o RAD Studio 2010 vai trazer. Finalmente teremos um formatador de código, e o atalho para disparar ações na IDE (IDE Insight) também é muito legal. Os data visualizers é outra novidade bem vinda para facilitar o debug. Espero nunca mais ver datas como [...]]]></description>
			<content:encoded><![CDATA[<p>A Embarcadero publicou um primeiro video com algumas das novidades que o <a href="http://www.embarcadero.com/rad-studio-2010/">RAD Studio 2010</a> vai trazer.</p>
<p>Finalmente teremos um formatador de código, e o atalho para disparar ações na IDE (IDE Insight) também é muito legal. Os data visualizers é outra novidade bem vinda para facilitar o debug. Espero nunca mais ver datas como números durante o debug.</p>
<p>Um ponto negativo do video é que usaram um miserável Windows XP para o demo, credo. Perderam uma boa oportunidade de mostrar a IDE rodando no Windows 7.</p>
<p>Alguém precisa dar uma camiseta nova para o David I. <img src='http://www.ericksasse.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><embed src='http://www.embarcadero.com/includes/mediaplayer/player-viral.swf' height='300' width='400' allowscriptaccess='always' allowfullscreen='true' flashvars='state=PLAYING&#038;file=http%3A%2F%2Faltd.embarcadero.com%2Fdownload%2Fvideo%2Fweaver%2Fweaver-sneak-peak.mp4&#038;plugins=viral-1d'/></p>
<p><map name='google_ad_map_894_553e3b693ffb9e44'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/894?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_894_553e3b693ffb9e44' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=894&amp;url= http%3A%2F%2Fwww.ericksasse.com.br%2Fnovidades-do-delphi-2010%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/novidades-do-delphi-2010/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>Updates 3 e 4 para Delphi 2009</title>
		<link>http://www.ericksasse.com.br/updates-3-e-4-para-delphi-2009/</link>
		<comments>http://www.ericksasse.com.br/updates-3-e-4-para-delphi-2009/#comments</comments>
		<pubDate>Thu, 28 May 2009 10:14:35 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Delphi]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=854</guid>
		<description><![CDATA[É isso ai, de uma só vez a CodeGear disponibilizou dois updates para o Delphi 2009. Se você também usa o C++ Builder, serão 3 updates. Post do Nick Hodges aqui. Release notes aqui. Lista do que foi corrigido no Update 3 aqui. Lista do que foi corrigido no Update 4 (database pack) aqui. Para instalar [...]]]></description>
			<content:encoded><![CDATA[<p>É isso ai, de uma só vez a CodeGear disponibilizou dois updates para o Delphi 2009. Se você também usa o C++ Builder, serão 3 updates.</p>
<ul>
<li>Post do Nick Hodges <a href="http://blogs.embarcadero.com/nickhodges/2009/05/27/39241">aqui</a>.</li>
<li>Release notes <a href="http://edn.embarcadero.com/article/39390">aqui</a>.</li>
<li>Lista do que foi corrigido no Update 3 <a href="http://edn.embarcadero.com/article/39387/">aqui</a>.</li>
<li>Lista do que foi corrigido no Update 4 (database pack) <a href="http://edn.embarcadero.com/article/39392/">aqui</a>.</li>
</ul>
<p>Para instalar eu simplesmente lancei o &#8220;Check for Updates&#8221; do meu Delphi e pronto, mas você também pode baixar os updates da <a href="http://www.codegear.com/downloads/regusers/delphi">área de download para usuários registrados</a>. Que foi o que eu fiz para instalar no restante das máquinas aqui.</p>
<p>A instalação foi tranquila, porém no about no meu Delphi, na caixa &#8220;Installed Updates&#8221; não aparece o Update 3, apenas o 4. Isso aconteceu para mais alguém aí? Vou testar em outras máquinas aqui para ver o que acontece.</p>
<p>Não achei nada sobre Windows 7 na lista de correções, então acredito que o <a href="http://www.ericksasse.com.br/problema-com-delphi-no-windows-7/">problema do debugger</a> continue.</p>
<p><map name='google_ad_map_854_553e3b693ffb9e44'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/854?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_854_553e3b693ffb9e44' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=854&amp;url= http%3A%2F%2Fwww.ericksasse.com.br%2Fupdates-3-e-4-para-delphi-2009%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/updates-3-e-4-para-delphi-2009/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Varrendo DataSet com Métodos Anônimos</title>
		<link>http://www.ericksasse.com.br/varrendo-dataset-com-metodos-anonimos/</link>
		<comments>http://www.ericksasse.com.br/varrendo-dataset-com-metodos-anonimos/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 01:05:56 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Delphi]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=834</guid>
		<description><![CDATA[Métodos anônimos é um dos novos recursos trazidos pelo Delphi 2009. De início ele parece meio estranho e podemos levar um tempo para nos acostumar com a sintaxe, mas podem ser bem úteis em alguns casos como o que eu vou mostrar agora. Quantas vezes você já não precisou escrever código para varrer um dataset [...]]]></description>
			<content:encoded><![CDATA[<p>Métodos anônimos é um dos novos recursos trazidos pelo Delphi 2009. De início ele parece meio estranho e podemos levar um tempo para nos acostumar com a sintaxe, mas podem ser bem úteis em alguns casos como o que eu vou mostrar agora.</p>
<p>Quantas vezes você já não precisou escrever código para varrer um dataset do início ao fim?</p>

<div class="wp_syntax"><div class="code"><pre class="delphi" style="font-family:monospace;">DataSet<span style="color: #000066;">.</span><span style="color: #006600;">First</span><span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #000000; font-weight: bold;">not</span> DataSet<span style="color: #000066;">.</span><span style="color: #000066;">Eof</span> <span style="color: #000000; font-weight: bold;">do</span>
<span style="color: #000000; font-weight: bold;">begin</span>
  <span style="color: #808080; font-style: italic;">//</span>
  <span style="color: #808080; font-style: italic;">// Faz alguma coisa com o registro atual</span>
  <span style="color: #808080; font-style: italic;">//</span>
  DataSet<span style="color: #000066;">.</span><span style="color: #006600;">Next</span><span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span></pre></div></div>

<p>Isso pode ficar ainda maior se você precisar usar DisableControls ou ainda restaurar o ponteiro do registro do DataSet após a varredura:</p>

<div class="wp_syntax"><div class="code"><pre class="delphi" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span>
  Bookmark<span style="color: #000066;">:</span> TBookmark<span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">begin</span>
  DataSet<span style="color: #000066;">.</span><span style="color: #006600;">DisableControls</span><span style="color: #000066;">;</span>
  <span style="color: #000000; font-weight: bold;">try</span>
    Bookmark <span style="color: #000066;">:</span><span style="color: #000066;">=</span> DataSet<span style="color: #000066;">.</span><span style="color: #006600;">Bookmark</span><span style="color: #000066;">;</span>
    DataSet<span style="color: #000066;">.</span><span style="color: #006600;">First</span><span style="color: #000066;">;</span>
    <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #000000; font-weight: bold;">not</span> DataSet<span style="color: #000066;">.</span><span style="color: #000066;">Eof</span> <span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #000000; font-weight: bold;">begin</span>
      <span style="color: #808080; font-style: italic;">//</span>
      <span style="color: #808080; font-style: italic;">// Faz alguma coisa com o registro atual</span>
      <span style="color: #808080; font-style: italic;">//</span>
      DataSet<span style="color: #000066;">.</span><span style="color: #006600;">Next</span><span style="color: #000066;">;</span>
    <span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span>
    DataSet<span style="color: #000066;">.</span><span style="color: #006600;">Bookmark</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> Bookmark<span style="color: #000066;">;</span>
  <span style="color: #000000; font-weight: bold;">finally</span>
    DataSet<span style="color: #000066;">.</span><span style="color: #006600;">EnableControls</span><span style="color: #000066;">;</span>
  <span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span></pre></div></div>

<p>Esse código todo é praticamente repetido em todas as varreduras que precisamos fazer em um DataSet. Então seria muito útil se pudéssemos extrair esse código e trocar apenas a parte que &#8220;faz alguma coisa com o registro atual&#8221;. </p>
<p>É aqui que os métodos anônimos nos ajudam muito.</p>
<p>Na unit SysUtils do Delphi, existe um tipo TProc declarado desta forma:</p>

<div class="wp_syntax"><div class="code"><pre class="delphi" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">type</span>
  TProc <span style="color: #000066;">=</span> reference <span style="color: #000000; font-weight: bold;">to</span> <span style="color: #000000; font-weight: bold;">procedure</span><span style="color: #000066;">;</span></pre></div></div>

<p>E vamos usá-lo para criar uma procedure que recebe um dataset e um método anônimo como parâmetros:</p>

<div class="wp_syntax"><div class="code"><pre class="delphi" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">procedure</span> ForEach<span style="color: #000066;">&#40;</span>DataSet<span style="color: #000066;">:</span> TDataSet<span style="color: #000066;">;</span> Proc<span style="color: #000066;">:</span> TProc<span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">var</span>
  Bookmark<span style="color: #000066;">:</span> TBookmark<span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">begin</span>
  DataSet<span style="color: #000066;">.</span><span style="color: #006600;">DisableControls</span><span style="color: #000066;">;</span>
  <span style="color: #000000; font-weight: bold;">try</span>
    Bookmark <span style="color: #000066;">:</span><span style="color: #000066;">=</span> DataSet<span style="color: #000066;">.</span><span style="color: #006600;">Bookmark</span><span style="color: #000066;">;</span>
    DataSet<span style="color: #000066;">.</span><span style="color: #006600;">First</span><span style="color: #000066;">;</span>
    <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #000000; font-weight: bold;">not</span> DataSet<span style="color: #000066;">.</span><span style="color: #000066;">Eof</span> <span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #000000; font-weight: bold;">begin</span>
      Proc<span style="color: #000066;">;</span>
      DataSet<span style="color: #000066;">.</span><span style="color: #006600;">Next</span><span style="color: #000066;">;</span>
    <span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span>
    DataSet<span style="color: #000066;">.</span><span style="color: #006600;">Bookmark</span> <span style="color: #000066;">:</span><span style="color: #000066;">=</span> Bookmark<span style="color: #000066;">;</span>
  <span style="color: #000000; font-weight: bold;">finally</span>
    DataSet<span style="color: #000066;">.</span><span style="color: #006600;">EnableControls</span><span style="color: #000066;">;</span>
  <span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span></pre></div></div>

<p>E com isso podemos chamar a procedure dessa forma:</p>

<div class="wp_syntax"><div class="code"><pre class="delphi" style="font-family:monospace;">ForEach<span style="color: #000066;">&#40;</span>Table1<span style="color: #000066;">,</span>
  <span style="color: #000000; font-weight: bold;">procedure</span>
  <span style="color: #000000; font-weight: bold;">begin</span>
    ShowMessage<span style="color: #000066;">&#40;</span>Table1NAME<span style="color: #000066;">.</span><span style="color: #006600;">Value</span><span style="color: #000066;">&#41;</span>
  <span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">&#41;</span><span style="color: #000066;">;</span></pre></div></div>

<p>Como eu disse, a sintaxe inicialmente é meio estranha, mas com o tempo você acostuma. No exemplo acima eu codifiquei uma procedure sem nome e sem parâmetros e passei para ser executado em cada registro. Eu tinha um dataset chamado Table1 no form. ShowMessage será chamado para cada registro. Além disso, ele desativa os controles conectados ao dataset e restaura o ponteiro no final.</p>
<p>Perceberam como isso facilita nossa vida? Então pronto, pode ir remover o monte de código duplicado que você tem em seus aplicativos. <img src='http://www.ericksasse.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Existe ainda uma idéia mais legal que é transformar esse recurso em um helper para a classe TDataSet, mas isso eu vou deixar para vocês como lição de casa ou para um próximo post aqui no blog.</p>
<p><strong>Update:</strong> Eu já estava prevendo que alguém comentasse isso. Sim, eu sei que já era possível antes com ponteiros de funções, mas com métodos anônimos é muito mais legal e é uma forma de tirar proveito dessa novidade do Delphi 2009. Para quem ainda não tem o Delphi 2009, vale a dica do amigo Marcos Douglas, postada nos comentários.</p>
<p><map name='google_ad_map_834_553e3b693ffb9e44'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/834?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_834_553e3b693ffb9e44' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=834&amp;url= http%3A%2F%2Fwww.ericksasse.com.br%2Fvarrendo-dataset-com-metodos-anonimos%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/varrendo-dataset-com-metodos-anonimos/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Problemas com Delphi no Windows 7</title>
		<link>http://www.ericksasse.com.br/problema-com-delphi-no-windows-7/</link>
		<comments>http://www.ericksasse.com.br/problema-com-delphi-no-windows-7/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 21:13:19 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=829</guid>
		<description><![CDATA[Depois de realizar mais testes, cheguei a conclusão que infelizmente o Windows 7 ainda não é uma boa opção para quem trabalha com Delphi. Rodando o Delphi 2009 encontrei problemas na hora de usar o debugger em aplicativos com mais de uma thread. Quando uma exception é levantada, não é possível dar um break e resetar [...]]]></description>
			<content:encoded><![CDATA[<p>Depois de realizar mais testes, cheguei a conclusão que infelizmente o Windows 7 ainda não é uma boa opção para quem trabalha com Delphi.</p>
<p>Rodando o Delphi 2009 encontrei problemas na hora de usar o debugger em aplicativos com mais de uma thread. Quando uma exception é levantada, não é possível dar um break e resetar o aplicativo (Ctrl+F2) e você precisa reiniciar a IDE.</p>
<p>Já notifiquei o pessoal da CodeGear, mas como essa é uma versão beta e não suportada do Windows, não posso querer que eles resolvam.</p>
<p>Fica aí o alerta para os desenvolvedores Delphi.</p>
<p><map name='google_ad_map_829_553e3b693ffb9e44'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/829?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_829_553e3b693ffb9e44' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=829&amp;url= http%3A%2F%2Fwww.ericksasse.com.br%2Fproblema-com-delphi-no-windows-7%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/problema-com-delphi-no-windows-7/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Primeiras impressões do Windows 7 com Delphi, Firebird e mais</title>
		<link>http://www.ericksasse.com.br/primeiras-impressoes-do-windows-7-delphi-firebird/</link>
		<comments>http://www.ericksasse.com.br/primeiras-impressoes-do-windows-7-delphi-firebird/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 17:36:46 +0000</pubDate>
		<dc:creator>Erick Sasse</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Firebird]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.ericksasse.com.br/?p=813</guid>
		<description><![CDATA[Instalei o Windows 7 Beta build 7000 em uma máquina de testes e já deu tempo de brincar um pouco. A instalação foi totalmente tranquila, reconheceu todo o hardware assim como o Vista já fazia. Optei pela versão 64 bits, que já venho usando no Vista há algum tempo. A nova task bar realmente é [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ericksasse.com.br/wp-content/uploads/2009/01/windows7delphi2009.png"><img class="size-medium wp-image-814 alignright" title="Windows 7 Beta e Delphi 2009" src="http://www.ericksasse.com.br/wp-content/uploads/2009/01/windows7delphi2009-300x240.png" alt="Windows 7 Beta e Delphi 2009" width="300" height="240" /></a>Instalei o Windows 7 Beta build 7000 em uma máquina de testes e já deu tempo de brincar um pouco. A instalação foi totalmente tranquila, reconheceu todo o hardware assim como o Vista já fazia. Optei pela versão 64 bits, que já venho usando no Vista há algum tempo.</p>
<p>A nova task bar realmente é bem melhor e é a primeira diferença que se nota logo que o sistema inicializa.</p>
<p>Depois disso comecei a instalar alguns dos aplicativos que mais uso no dia-a-dia.</p>
<p>Instalados e rodando sem nenhum problema até agora:</p>
<ul>
<li>Delphi 2009</li>
<li>Firebird 2.1</li>
<li>IBExpert</li>
<li>TortoiseSVN</li>
<li>Mozilla Firefox</li>
</ul>
<p><span style="text-decoration: line-through;">Não funcionaram</span> Funcionando após algum ajuste:</p>
<ul>
<li>Google Chrome: O Windows avisa que tem problema de compatibilidade conhecido. E descobri essa <a href="/google-chrome-no-windows-7-64-bits/">dica de como fazer funcionar</a>.</li>
</ul>
<p>Conclusão, estou considerando sériamente em arriscar e instalar ele na minha máquina principal.</p>
<p>Para quem está interessado em testar e não tem assinatura MSDN nem TechNet, acho que ele vai estar disponível publicamente para download amanhã.</p>
<p><map name='google_ad_map_813_553e3b693ffb9e44'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/813?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_813_553e3b693ffb9e44' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=813&amp;url= http%3A%2F%2Fwww.ericksasse.com.br%2Fprimeiras-impressoes-do-windows-7-delphi-firebird%2F' /></p>]]></content:encoded>
			<wfw:commentRss>http://www.ericksasse.com.br/primeiras-impressoes-do-windows-7-delphi-firebird/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
	</channel>
</rss>
