<?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>Dicas Delphi &#187; Dicas</title>
	<atom:link href="http://www.dicasdelphi.com.br/category/delphi/dicas/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dicasdelphi.com.br</link>
	<description>dicas, artigos, novidades e discussões sobre o mundo Delphi</description>
	<lastBuildDate>Wed, 29 Dec 2010 11:49:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Code Templates</title>
		<link>http://www.dicasdelphi.com.br/templates/</link>
		<comments>http://www.dicasdelphi.com.br/templates/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 14:56:32 +0000</pubDate>
		<dc:creator>Elton Conz</dc:creator>
				<category><![CDATA[Delphi 2009]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Delphi 2010]]></category>
		<category><![CDATA[Produtividade]]></category>
		<category><![CDATA[templates]]></category>

		<guid isPermaLink="false">http://www.dicasdelphi.com.br/?p=205</guid>
		<description><![CDATA[Gostaria de apresentar para vocês um recurso que considero muito interessante, mas que poucas pessoas conhecem a fundo. Você certamente já desfrutou dos benefícios dos templates na VCL do Delphi. Faça um teste rápido:  Digite por exemplo a palavra for, e veja o que acontece. O Delphi vai trazer para você a seguinte estrutura (veja [...]]]></description>
			<content:encoded><![CDATA[<p>Gostaria de apresentar para vocês um recurso que considero muito interessante, mas que poucas pessoas conhecem a fundo.</p>
<p>Você certamente já desfrutou dos benefícios dos templates na VCL do Delphi.<br />
Faça um teste rápido:  Digite por exemplo a palavra<em> for</em>, e veja o que acontece.<br />
O Delphi vai trazer para você a seguinte estrutura (veja imagem abaixo). Eis um template em ação.</p>
<div id="attachment_206" class="wp-caption alignnone" style="width: 333px"><img class="size-full wp-image-206" src="http://www.dicasdelphi.com.br/wp-content/uploads/2010/04/templates_for.png" alt="instrução for" width="323" height="56" /><p class="wp-caption-text">instrução for</p></div>
<p>A função destes templates é otimizar o seu trabalho,  minimizando erros e aumentando a sua produtividade. Até aqui, todo mundo sabe como funciona, porém, o que pouca gente sabe é que podemos criar e/ou editar estes templates.  E não para por ai, alguns até sabem que os templates são passíveis de configuração, mas não sabem como fazer isso.</p>
<p>Vamos entender melhor como isso funciona? É muito simples, mas você vai precisar se dedicar um pouquinho, pois só mostrarei o básico. Dai em diante você tem total capacidade de melhorar os templates que vier a construir.</p>
<p><strong>Vamos Ver na Prática</strong></p>
<p>Vamos construir um template para otimizar a criação de forms. O resultado final será este quando eu digitar o texto <em>criaform </em>dentro da VCL do Delphi:</p>
<p><img class="alignnone size-full wp-image-208" src="http://www.dicasdelphi.com.br/wp-content/uploads/2010/04/templates_criarform.png" alt="templates_criarform" width="357" height="63" /></p>
<p>Note que todos os textos que estão dentro das caixas em azul mudam automaticamente quando digito. Não preciso repetir o mesmo texto 4 vezes, com isso ganho velocidade. Não preciso decorar a sequencia de criação de forms,  com isso ganho tempo e padronização.</p>
<p>Os templates são arquivos XML com a seguinte estrutura:</p>
<p><img class="alignnone size-full wp-image-210" src="http://www.dicasdelphi.com.br/wp-content/uploads/2010/04/estrutura_template.png" alt="estrutura_template" width="671" height="565" /></p>
<p>Vamos ver parte a parte deste arquivo:</p>
<ul>
<li>name = &#8220;criaform&#8221; &#8211; Aqui você informa o texto que você quer que ative este template.</li>
<li>Declaração de Variável</li>
</ul>
<ol>
<li>&lt;point name=&#8221;form&#8221;&gt; &#8211; Indico o nome da minha variável</li>
<li>&lt;text&gt; &#8211; Inico que texto aparecerá por padrão dentro das caixas em azul</li>
<li>&lt;hint&gt; &#8211; Texto que aparece quando você passa por cima do campo</li>
</ol>
<ul>
<li>Descrição</li>
</ul>
<ol>
<li>&lt;description&gt; &#8211; Descreva a funcionalidade deste template</li>
<li>&lt;author&gt; &#8211; Autor do template</li>
</ol>
<ul>
<li>Código</li>
</ul>
<ol>
<li>|variável| &#8211; As variáveis declaradas devem ficar sempre entre os caracteres | (pipe).</li>
<li>|end| &#8211; Onde o cursor ficará posicionado após o preenchimento do layout.</li>
</ol>
<p>Salve o arquivo com o nome que você desejar, mas com extensão .XML.  Eu costumo salvar o arquivo com o mesmo nome do template, como neste caso, ficaria criaform.xml.</p>
<p>No Delphi 2009 este arquivo deverá ser salvo dentro da pasta:<br />
C:\Arquivos de programas\CodeGear\RAD Studio\6.0\ObjRepos\Code_Templates\Delphi</p>
<p>No Delphi 2010 este arquivo deverá ser salvo dentro da pasta:<br />
C:\Documents and Settings\&lt;usuario&gt;\Meus documentos\RAD Studio\code_templates\</p>
<p>Basta salvar o arquivo e o template já estará disponivel. Não é preciso nem reiniciar o Delphi.</p>
<p>Estou disponibilizando o template deste exemplo para que você possa estudar com mais detalhes. Basta <a href="http://www.dicasdelphi.com.br/wp-content/uploads/2010/04/ec_criaform.zip">clicar aqui</a> para baixar este exemplo.</p>
<p>Espero que esta dica tenha sido útil para o seu dia-a-dia de programador. Eu utilizo este recurso faz um bom tempo ja, e posso dizer que tem me ajudado muito. Estou ganhando muito tempo e mantendo meus fontes sempre dentro de um padrão. Espero que tenha gostado.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dicasdelphi.com.br/templates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DBGrid com Imagens</title>
		<link>http://www.dicasdelphi.com.br/dbgrid-com-imagens/</link>
		<comments>http://www.dicasdelphi.com.br/dbgrid-com-imagens/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 11:26:38 +0000</pubDate>
		<dc:creator>Elton Conz</dc:creator>
				<category><![CDATA[DBExpress]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[TCanvas]]></category>
		<category><![CDATA[DBGrid]]></category>
		<category><![CDATA[Imagens no DBGrid]]></category>

		<guid isPermaLink="false">http://www.dicasdelphi.com.br/?p=192</guid>
		<description><![CDATA[Esta é uma dica muito simples mas que produz um efeito muito legal. Já encontrei vários programas que, ao mostrar determinados dados em um DBGrid, pecavam pela falta de clareza. Por exemplo: Para mostrar se um cadastro estava ativo ou não, apresentava no grid uma coluna que era preenchida com Sim / Não.  Errado? Não. [...]]]></description>
			<content:encoded><![CDATA[<p>Esta é uma dica muito simples mas que produz um efeito muito legal.</p>
<p>Já encontrei vários programas que, ao mostrar determinados dados em um DBGrid, pecavam pela falta de clareza. Por exemplo: Para mostrar se um cadastro estava ativo ou não, apresentava no grid uma coluna que era preenchida com Sim / Não.  Errado? Não. Mas você concorda que pode ficar melhor não é?</p>
<p>Então ai vai minha dica para aperfeiçoar suas aplicações:</p>
<p>1. Estou partindo do ponto em que você ja tem seu ClientDataSet vinculado a um DataSource o qual ja se encontra vinculado a um DBGrid. No exemplo o ClientDataSet se chama TabAux e o DBGrid se chama Grade.</p>
<p>2. Insira um TImageList no seu form e adicione duas imagens.</p>
<p>Você pode baixar as imagens <a href="http://www.dicasdelphi.com.br/wp-content/uploads/2010/02/imagens.zip">clicando aqui</a></p>
<p><img class="alignnone size-medium wp-image-193" src="http://www.dicasdelphi.com.br/wp-content/uploads/2010/02/001-300x200.jpg" alt="TImageList" width="300" height="200" /></p>
<p>3. No evento OnDrawColumnCell do seu DBGrid escreva o seguinte código:</p>
<div class="codesnip-container" >
<div class="delphi codesnip" style="font-family:monospace;"><span class="kw1">if</span> Column<span class="sy1">.</span><span class="me1">Field</span><span class="sy3">=</span>TabAuxATIVO <span class="kw1">then</span><br />
<span class="kw1">begin</span></p>
<p>Grade<span class="sy1">.</span><span class="me1">Canvas</span><span class="sy1">.</span><span class="me1">FillRect</span><span class="br0">&#40;</span><span class="kw3">Rect</span><span class="br0">&#41;</span><span class="sy1">;</span></p>
<p><span class="co1">// Desenha o Quadrado</span><br />
ImageList1<span class="sy1">.</span><span class="me1">Draw</span><span class="br0">&#40;</span>Grade<span class="sy1">.</span><span class="me1">Canvas</span><span class="sy1">,</span><span class="kw3">Rect</span><span class="sy1">.</span><span class="me1">Left</span><span class="sy3">+</span>10<span class="sy1">,</span><span class="kw3">Rect</span><span class="sy1">.</span><span class="me1">Top</span><span class="sy3">+</span>1<span class="sy1">,</span>0<span class="br0">&#41;</span><span class="sy1">;</span></p>
<p><span class="co1">// Desenha o check sobre o quadrado quando ativo = &#8216;S&#8217;</span><br />
<span class="kw1">if</span> TabAuxATIVO<span class="sy1">.</span><span class="me1">Text</span><span class="sy3">=</span><span class="st0">&#8216;S&#8217;</span> <span class="kw1">then</span> <span class="co1">// Cadastro está ativo</span><br />
ImageList1<span class="sy1">.</span><span class="me1">Draw</span><span class="br0">&#40;</span>Grade<span class="sy1">.</span><span class="me1">Canvas</span><span class="sy1">,</span><span class="kw3">Rect</span><span class="sy1">.</span><span class="me1">Left</span><span class="sy3">+</span>10<span class="sy1">,</span><span class="kw3">Rect</span><span class="sy1">.</span><span class="me1">Top</span><span class="sy3">+</span>1<span class="sy1">,</span>1<span class="br0">&#41;</span><span class="sy1">;</span><br />
<span class="kw1">end</span><span class="sy1">;</span></div>
</div>
<p>4. O Resultado ficará assim</p>
<p><img class="alignnone size-medium wp-image-195" src="http://www.dicasdelphi.com.br/wp-content/uploads/2010/02/002-300x60.jpg" alt="DBGrid com Imagem" width="300" height="60" /></p>
<p>Espero que aproveite esta dica. Ela é simples, mas da um toque mais profissional para a sua aplicação.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dicasdelphi.com.br/dbgrid-com-imagens/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>GExperts &#8211; Aumente a sua Produtividade</title>
		<link>http://www.dicasdelphi.com.br/gexperts/</link>
		<comments>http://www.dicasdelphi.com.br/gexperts/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 17:07:06 +0000</pubDate>
		<dc:creator>Elton Conz</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Utilitários]]></category>
		<category><![CDATA[GExperts]]></category>
		<category><![CDATA[Produtividade]]></category>

		<guid isPermaLink="false">http://www.dicasdelphi.com.br/?p=168</guid>
		<description><![CDATA[Set de ferramente GExperts]]></description>
			<content:encoded><![CDATA[<p>O <span style="color: #800000"><strong>GExperts </strong></span>é um conjunto de ferramentas que tem por finalidade aumentar o índice de produtividade dos programadores. Eu utilizo este set de ferramentas a algum tempo, e posso dizer que ele facilita muitas tarefas do dia-a-dia de quem programa.</p>
<p>Trata-se de uma ferramenta <em>Open Source</em> e disponível para download no site <a title="http://www.gexperts.org/" href="http://www.gexperts.org/" target="_blank">www.gexperts.org</a>. A instalação é bem simples. Basta executar o instalador, aqueles no estilo Next, Next, Finish. Existem versões para D-6, D-7, D-8, D-2005, D-2006, D-2007, D-2009 e D-2010.</p>
<p>Após a instalação o menu do GExperts ficará disponível no seu Delphi, como mostrado na imagem a seguir. Você pode acessá-lo tanto através do menu como através de teclas de atalho.</p>
<div id="attachment_169" class="wp-caption alignnone" style="width: 464px"><img class="size-full wp-image-169" src="http://www.dicasdelphi.com.br/wp-content/uploads/2010/01/001.jpg" alt="GExperts - Menu" width="454" height="184" /><p class="wp-caption-text">GExperts - Menu</p></div>
<p>A seguir, mostrarei brevemente alguns dos recursos do GExperts.</p>
<p><strong><em>1. Code ProofReader</em></strong></p>
<p>É sempre cansativo ter de ficar digitando o nome das funções que você usa com grande frequencia. Ainda mais se elas tiverem nomes extensos. Basta declarar as regras do tipo:  Quando for digitado &#8220;mfc&#8221; então substitua por MinhaFuncao(_);   para que você precise digitar menos e com isso ganhar tempo.</p>
<p><img class="size-full wp-image-170 alignnone" src="http://www.dicasdelphi.com.br/wp-content/uploads/2010/01/002.jpg" alt="GExperts - Code ProofReader" width="467" height="458" /></p>
<p><em><strong>2. Set Tab Order</strong></em></p>
<p>Uma forma simples e visual de organizar a ordem por onde o cursor irá passar na tela.</p>
<p><img class="size-full wp-image-171 alignnone" src="http://www.dicasdelphi.com.br/wp-content/uploads/2010/01/003.jpg" alt="GExperts - Set Tab Order" width="531" height="473" /></p>
<p><strong><em>3. Clean Directories</em></strong></p>
<p>Seu projeto esta muito grande? Que tal apagar os arquivos temporários do seu projeto de forma extremamente simples? &#8230;</p>
<p><img class="size-medium wp-image-172 alignnone" src="http://www.dicasdelphi.com.br/wp-content/uploads/2010/01/004-300x291.jpg" alt="GExperts - Clean Directories" width="300" height="291" /></p>
<p><em><strong>Resumo</strong></em></p>
<p>O Gexperts possui uma grande quantidade de recursos para facilitar suas tarefas de programador. Além de ser uma ferramenta <em>Open Source</em>, ela possui variações para praticamente todas as versões do Delphi, o que indica que muita gente a utiliza. Não consegui, e nem conseguiria, mostrar todas as funcionalidades do GExperts neste post, mas a idéia é dar uma noção do que este set de ferramentas é capaz de fazer para te ajudar. Como usuário do GExperts, recomendo a todos a sua adoção. Agiliza, e muito, a tarefa de programar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dicasdelphi.com.br/gexperts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

