<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Dicas Delphi</title>
	
	<link>http://www.dicasdelphi.com.br</link>
	<description>dicas, artigos, novidades e discussões sobre o mundo Delphi</description>
	<lastBuildDate>Thu, 11 Feb 2010 11:28:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/DicasDelphi" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="dicasdelphi" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><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. Mas [...]]]></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>0</slash:comments>
		</item>
		<item>
		<title>Instalando o ZeosLib no Turbo Delphi</title>
		<link>http://www.dicasdelphi.com.br/instalando-o-zeoslib-no-turbo-delphi/</link>
		<comments>http://www.dicasdelphi.com.br/instalando-o-zeoslib-no-turbo-delphi/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 14:05:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Zeos]]></category>
		<category><![CDATA[Componente]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[instalação]]></category>
		<category><![CDATA[Turbo Delphi]]></category>
		<category><![CDATA[zeoslib]]></category>

		<guid isPermaLink="false">http://www.dicasdelphi.com.br/?p=188</guid>
		<description><![CDATA[O ZeosLib é um suite de componentes para você ter uma conexão nativa com banco de dados, ou seja, uma conexão sem drivers auxiliares como o ODBC. Isso entre outras coisas deixa seu sistema muito mais rápido e agiliza na fase de desenvolvimento. Aqui vamos ver como instalar no Turbo Delphi, porém não é muito [...]]]></description>
			<content:encoded><![CDATA[<p>O ZeosLib é um suite de componentes para você ter uma conexão nativa com banco de dados, ou seja, uma conexão sem drivers auxiliares como o ODBC. Isso entre outras coisas deixa seu sistema muito mais rápido e agiliza na fase de desenvolvimento. Aqui vamos ver como instalar no Turbo Delphi, porém não é muito diferente de outras versões.</p>
<p>Instalação do ZeosLib:</p>
<ol>
<li>Clique <a title="baixar zeos lib" href="http://sourceforge.net/projects/zeoslib/" target="_blank">aqui</a> e baixe a última versão do Zeos.</li>
<li>Descompacte o ZeosLib, e cole a pasta no caminho &#8220;C:\Arquivos de programas\Borland\BDS\4.0\lib&#8221; o path ficará C:\Arquivos de programas\Borland\BDS\4.0\lib\ZEOSDBO-6.6.6-stable, gosto de deixar todos os componentes e bibliotecas aqui nesta pasta lib do Turbo Delphi por questões de organização, mas você pode colocar em outra pasta se quiser.</li>
<li>Dentro do Turbo Delphi vá em Tools &gt; Options &gt; Library &#8211; Win32 &gt; Library Path. Clique no  botão com &#8220;&#8230;&#8221; e ao abrir a tela do Library Path adicione os seguintes diretórios:
<ul>
<li>C:\Arquivos de programas\Borland\BDS\4.0\lib\ZEOSDBO-6.6.6-stable\src\component</li>
<li>C:\Arquivos de programas\Borland\BDS\4.0\lib\ZEOSDBO-6.6.6-stable\src\core</li>
<li>C:\Arquivos de programas\Borland\BDS\4.0\lib\ZEOSDBO-6.6.6-stable\src\dbc</li>
<li>C:\Arquivos de programas\Borland\BDS\4.0\lib\ZEOSDBO-6.6.6-stable\src\parsesql</li>
<li>C:\Arquivos de programas\Borland\BDS\4.0\lib\ZEOSDBO-6.6.6-stable\src\plain</li>
</ul>
</li>
<li>Entre no Turbo Delphi, clique em abrir e acesse a pasta: C:\Arquivos de programas\Borland\BDS\4.0\lib\ZEOSDBO-6.6.6-stable\packages\delphi10\ZeosDbo.bdsgroup (Obs: estou usando o package para o Delphi 10 pois foi o que ficou melhor compatível).</li>
<li>Compile os arquivos na seguencia:
<ul>
<li>ZCore100.bpl</li>
<li>ZPlain100.bpl</li>
<li>ZParseSql100.bpl</li>
<li>ZDbc100.bpl</li>
<li>ZComponent100.bpl</li>
<li>ZComponentDesign100.bpl</li>
</ul>
</li>
<li>Clique no ZComponentDesign100.bpl e de install.</li>
<li>Pronto!</li>
</ol>
<p>Maiores detalhes clique <a title="documentação zeolib delphi" href="http://zeos.firmos.at/kb.php?mode=article&amp;k=6" target="_blank">aqui</a> para uma documentação mais detalhada. Depois de instalado você terá os seguintes componentes:</p>
<p><a href="http://www.dicasdelphi.com.br/wp-content/uploads/2010/01/zeos-lib-delphi.jpg"><img class="size-full wp-image-189 alignleft" title="zeos-lib-delphi" src="http://www.dicasdelphi.com.br/wp-content/uploads/2010/01/zeos-lib-delphi.jpg" alt="zeos-lib-delphi" width="446" height="266" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dicasdelphi.com.br/instalando-o-zeoslib-no-turbo-delphi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalando o Componente EmbeddedWB no Turbo Delphi</title>
		<link>http://www.dicasdelphi.com.br/instalando-o-componente-embeddedwb-no-turbo-delphi/</link>
		<comments>http://www.dicasdelphi.com.br/instalando-o-componente-embeddedwb-no-turbo-delphi/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 12:56:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[EmbeddedWB]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[Componente]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[navegador]]></category>
		<category><![CDATA[Turbo Delphi]]></category>

		<guid isPermaLink="false">http://www.dicasdelphi.com.br/?p=182</guid>
		<description><![CDATA[Já pensou criar o seu próprio navegador ou utilizar funcionalidades de um browser? Você pode fazer isto como o componente EmbeddedWB. A dica aqui é para a instalação no Turbo Delphi mas para a instalação no Delphi não muda muito também. Para baixar este componente clique aqui.
Confira os passos abaixo para instalação:

Copiar o conteúdo do [...]]]></description>
			<content:encoded><![CDATA[<p>Já pensou criar o seu próprio navegador ou utilizar funcionalidades de um browser? Você pode fazer isto como o componente EmbeddedWB. A dica aqui é para a instalação no Turbo Delphi mas para a instalação no Delphi não muda muito também. Para baixar este componente clique <a title="baixar EmbeddedWB" href="http://www.vclcomponents.com/Delphi/Winsock___Internet/EmbeddedWB_D2005_Embedded_Web_Browser_and_a_Chat_Client-info.html" target="_blank">aqui</a>.</p>
<p>Confira os passos abaixo para instalação:</p>
<ul>
<li>Copiar o conteúdo do arquivo para a pasta Lib do Delphi ( C:\Arquivos de programas\Borland\BDS\4.0\lib )</li>
<li>Adicionar este caminho no LIB (Tools &gt; Options &gt; Library &#8211; Win32 &gt; Library Path) :<br />
C:\Arquivos de programas\Borland\BDS\4.0\lib\EmbeddedWB_D2005\Source<br />
C:\Arquivos de programas\Borland\BDS\4.0\lib\EmbeddedWB_D2005\Source\Lib</li>
<li>Abra o arquivo EmbeddedWebBrowser_D2006.bdsproj</li>
<li>Dê BUILD ALL e, logo em seguida, INSTALL. Uma mensagem aparecerá dizendo que os componentes foram instalados</li>
<li>Feche o projeto, saindo sem salvar.</li>
</ul>
<p>Após instalado você terá os seguintes componentes:</p>
<p><a href="http://www.dicasdelphi.com.br/wp-content/uploads/2010/01/EmbeddedWB-Embedded-Web-Browser.GIF"><img class="size-full wp-image-183 alignleft" title="EmbeddedWB-Embedded-Web-Browser" src="http://www.dicasdelphi.com.br/wp-content/uploads/2010/01/EmbeddedWB-Embedded-Web-Browser.GIF" alt="EmbeddedWB-Embedded-Web-Browser" width="240" height="654" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dicasdelphi.com.br/instalando-o-componente-embeddedwb-no-turbo-delphi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GExperts – 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>
		<item>
		<title>Aprenda a Criar um Programa Paint Parecido com o do Windows</title>
		<link>http://www.dicasdelphi.com.br/aprenda-a-criar-um-programa-paint-parecido-com-o-do-windows/</link>
		<comments>http://www.dicasdelphi.com.br/aprenda-a-criar-um-programa-paint-parecido-com-o-do-windows/#comments</comments>
		<pubDate>Sun, 10 May 2009 22:07:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Image]]></category>
		<category><![CDATA[Paint]]></category>
		<category><![CDATA[TBitmap]]></category>
		<category><![CDATA[TCanvas]]></category>
		<category><![CDATA[Tcolor]]></category>
		<category><![CDATA[código fonte]]></category>
		<category><![CDATA[exemplo]]></category>
		<category><![CDATA[paint]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.dicasdelphi.com.br/?p=158</guid>
		<description><![CDATA[Artigo Enviado por Marcelo Tropicore
Aqui segue um exemplo de um programa inspirado no Paint do Windows .Nós vamos usar dois componentes Image da paleta Additional para representar a nossa área de desenho. Esse componente assim como todos os componentes visuais do Delphi tem uma propriedade chamada &#8220;Canvas&#8221; ,é essa propriedade que vai determinar a aparência [...]]]></description>
			<content:encoded><![CDATA[<p>Artigo Enviado por <a href="mailto:marcelo_tropicore@hotmail.com">Marcelo Tropicore</a></p>
<p>Aqui segue um exemplo de um programa inspirado no Paint do Windows .Nós vamos usar dois componentes Image da paleta Additional para representar a nossa área de desenho. Esse componente assim como todos os componentes visuais do Delphi tem uma propriedade chamada &#8220;Canvas&#8221; ,é essa propriedade que vai determinar a aparência  dos componentes visuais como um Edit, Label, Image etc&#8230; Dentre as propriedades da Classe TCanvas umas das principais são: Brush, CanvasOrientation, ClipRect, CopyMOde, Font, Handle, Pen, PenPos, Pixels, Ellipse,  FillRect, LineTo, MoveTo, Rectangle e uma porção de outras propriedades.</p>
<p>Vamos declarar duas variáveis globais do tipo TBitmap com os nomes Backbuffer e backbuffer2,  essas variáveis vão gerar a nossa área de desenho (é claro que é preciso declarar outras variáveis  globais para esse exemplo rodar direito,qualquer dúvida é só dar uma olhada no código fonte <img src='http://www.dicasdelphi.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) . Eu coloquei os dois Images dentro de um ScrollBox (paleta Additional) para poder redimensionar os Images sem interferir no tamanho do Form. Agora que começa a parte boa, hora de por a mão na maça, dentro do OnCreate do Form faça o seguinte.</p>
<p><a href="http://www.dicasdelphi.com.br/wp-content/uploads/2009/05/print1.jpg"><img class="aligncenter size-full wp-image-159" title="print1" src="http://www.dicasdelphi.com.br/wp-content/uploads/2009/05/print1.jpg" alt="print1" width="515" height="416" /></a><a href="http://www.dicasdelphi.com.br/wp-content/uploads/2009/05/print2.jpg"><img class="aligncenter size-full wp-image-160" title="print2" src="http://www.dicasdelphi.com.br/wp-content/uploads/2009/05/print2.jpg" alt="print2" width="557" height="310" /></a></p>
<p>Para podermos usar os Backbuffers temos que criar com backbuffer:= TBitmap.Create;  dimensionamos ele no mesmo tamanho do Scrollbox . O backbuffer.Canvas.Brush.Color:= ClWhite; é para determinar a cor de preenchimento do backbuffer. Na parte  Image1.Canvas.FillRect(Rect(0,0,Image1.width, Image1.height)); vamos Limpar toda a área do Image e finalmente mandamos o backbuffer para o Image com : Image1.Picture.Assign(backbuffer);</p>
<p>Vamos repetir o mesmo procedimento para o backbuffer2 com algumas coisas adicionais.Aqui nós determinamos qual vai ser a cor transparente do backbuffer2 que vai pro Image2, e em muitas vezes o Image2 vai ficar sobre o Image1 como pode ver no evento de alguns botões das ferramentas com o comando Image2.BringToFront;. Assim quando o Image2 ficar sobre o Image1 vai ser possível ver o Image1 que está por baixo. Aqui no caso eu usei a cor branca.<br />
Inicialize as outras variáveis como no exemplo do código fonte.</p>
<div class="codesnip-container" >
<div class="delphi codesnip" style="font-family:monospace;">cor<span class="sy1">:</span><span class="sy3">=</span> clBlack<span class="sy1">;</span><br />
ferramenta<span class="sy1">:</span><span class="sy3">=</span> <span class="st0">&#8216;lápis&#8217;</span><span class="sy1">;</span><br />
StatusBar1<span class="sy1">.</span><span class="me1">Panels</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="sy1">.</span><span class="me1">Text</span><span class="sy1">:</span><span class="sy3">=</span> <span class="st0">&#8216;Lapis&#8217;</span><span class="sy1">;</span><br />
Shape1<span class="sy1">.</span><span class="me1">Brush</span><span class="sy1">.</span><span class="me1">Color</span><span class="sy1">:</span><span class="sy3">=</span> cor<span class="sy1">;</span></div>
</div>
<p>E por último vamos liberar as variáveis backbuffer e backbuffer2 da memória, por enquanto não precisamos mais delas ,pois já foram carregadas para os dois Images, portanto vamos trabalhar com eles.<br />
As ferramentas que vão utilizar o Image2 são aquelas que desenham as linhas, retângulos e elipses. Dentro do Image2 vamos utilizar três eventos , o OnMouseDown, OnMouseMove e OnMouseUp. O componente Image é como um plano cartesiano, se você não matou as suas aulas de matemática sabe do que eu estou falando hehehe, ele tem duas dimensões , o X e o Y.</p>
<p><a href="http://www.dicasdelphi.com.br/wp-content/uploads/2009/05/print3.jpg"><img class="aligncenter size-full wp-image-161" title="print3" src="http://www.dicasdelphi.com.br/wp-content/uploads/2009/05/print3.jpg" alt="print3" width="583" height="412" /></a></p>
<p>No OnMouseDown nós vamos pegar a posição X e Y que o usuário clicou dentro do Image2. Dai fazemos o seguinte, Image2.Canvas.MoveTo(X,Y); , com isso nós movemos a posição do ponto de partida de uma linha por exemplo ,não começamos a desenhar ainda só dizemos a propriedade Canvas do Image onde vai começar a linha.</p>
<p><a href="http://www.dicasdelphi.com.br/wp-content/uploads/2009/05/print4.jpg"><img class="aligncenter size-full wp-image-162" title="print4" src="http://www.dicasdelphi.com.br/wp-content/uploads/2009/05/print4.jpg" alt="print4" width="565" height="545" /></a></p>
<p>No OnMouseMove nós usamos as variáveis X e Y do OnMouseDown e criamos uma linha (se o usuário selecionou essa ferramenta)dessa posição até a posição atual no OnMouseMove.<br />
Image2.Canvas.MoveTo(posX2,posY2);<br />
Note que antes de usar esse comando eu usei o Image2.Canvas.FillRect(Rect(0,0,Image2.Width,Image2.Height)); Para limpar o que já tinha sido desenhado antes, se não fizermos isso o Image2 vai desenhando um monte de linha uma atrás da outra, e fica um monte de linha desenhada no Image. Por isso eu usei dois Images , um para guardar o desenho e o outro para mostrar só o traçado da linha , se eu tivesse usado o Canvas.FillRect(); no Image1 a cada evento do OnMouseMove seria apagado todo o desenho principal.</p>
<p><a href="http://www.dicasdelphi.com.br/wp-content/uploads/2009/05/print5.jpg"><img class="aligncenter size-full wp-image-163" title="print5" src="http://www.dicasdelphi.com.br/wp-content/uploads/2009/05/print5.jpg" alt="print5" width="567" height="446" /></a></p>
<p>No OnMouseUp quando o usuário solta o botão do mouse , o programa já tem a posição inicial e final da linha e faz o desenho no Image1 que é o desenho principal.</p>
<div class="codesnip-container" >
<div class="delphi codesnip" style="font-family:monospace;"><span class="kw1">if</span> ferramenta <span class="sy3">=</span> <span class="st0">&#8216;linha&#8217;</span> <span class="kw1">then</span><br />
<span class="kw1">begin</span><br />
Image1<span class="sy1">.</span><span class="me1">Canvas</span><span class="sy1">.</span><span class="me1">MoveTo</span><span class="br0">&#40;</span>posX2<span class="sy1">,</span>posY2<span class="br0">&#41;</span><span class="sy1">;</span><br />
Image1<span class="sy1">.</span><span class="me1">Canvas</span><span class="sy1">.</span><span class="me1">LineTo</span><span class="br0">&#40;</span>posX<span class="sy1">,</span>posY<span class="br0">&#41;</span><span class="sy1">;</span><br />
posX3<span class="sy1">:</span><span class="sy3">=</span> x<span class="sy1">;</span><br />
posY3<span class="sy1">:</span><span class="sy3">=</span> y<span class="sy1">;</span><br />
<span class="kw1">end</span><span class="sy1">;</span></div>
</div>
<p>Algumas ferramentas não utilizam o Image2 pois desenha direto no Image1 que são a ferramenta Lápis, Borracha, Spray e os baldes de tinta. No caso dos baldes de tinta eu não consegui achar nenhum comando que conseguisse fazer igual ao do Paint do Windows, então tive usar uma lógica meio maluca mesmo pra conseguir chegar o mais peto que eu pude, se alguém sabe como fazer isso por favor me diga como hehehe.<br />
Bom é isso aí pessoal , eu passei o básico de algumas funcionalidades do programa dentro da propriedade Canvas do componente Image, o programa tem outras funções bem legais como abrir imagens e poder editar, salvar e também redimensionar o tamanho da área de desenho.</p>
<p>Se alguém quiser entrar em contato para tirar dúvidas é só mandar no meu email,  <a href="mailto:marcelo_tropicore@hotmail.com">marcelo_tropicore@hotmail.com</a></p>
<p>Baixe os Fontes Aqui: <a href="http://www.dicasdelphi.com.br/wp-content/uploads/2009/05/paint.rar">paint</a>.</p>
<p>&#8220;Uma mente que se abre para uma nova idéia nunca voltará ao seu tamanho original&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dicasdelphi.com.br/aprenda-a-criar-um-programa-paint-parecido-com-o-do-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilizando DBExpress de uma Maneira Fácil</title>
		<link>http://www.dicasdelphi.com.br/utilizando-dbexpress-de-uma-maneira-facil/</link>
		<comments>http://www.dicasdelphi.com.br/utilizando-dbexpress-de-uma-maneira-facil/#comments</comments>
		<pubDate>Mon, 04 May 2009 18:45:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Componentes]]></category>
		<category><![CDATA[DBExpress]]></category>
		<category><![CDATA[banco de dados]]></category>
		<category><![CDATA[classes]]></category>
		<category><![CDATA[Componente]]></category>

		<guid isPermaLink="false">http://www.dicasdelphi.com.br/?p=155</guid>
		<description><![CDATA[Artigo enviado por: Marcio F. Cruz
DBExpress, segundo meus testes, é a melhor tecnologia para comunicação com banco de dados. Mas, infelizmente, exige a configuração de vários parâmetros e manipulação de vários componentes visuais.
Pensando neste problema, resolvi criar um componente que contém um conjunto de classes, para facilitar a vida do programador em trabalhar com esta [...]]]></description>
			<content:encoded><![CDATA[<p>Artigo enviado por: <a title="Autor do Artigo" href="mailto:programador@marciofcruz.com">Marcio F. Cruz</a></p>
<p>DBExpress, segundo meus testes, é a melhor tecnologia para comunicação com banco de dados. Mas, infelizmente, exige a configuração de vários parâmetros e manipulação de vários componentes visuais.</p>
<p>Pensando neste problema, resolvi criar um componente que contém um conjunto de classes, para facilitar a vida do programador em trabalhar com esta maravilhosa tecnologia.</p>
<p>Procurei criar as classes da melhor maneira possível, com os nomes dos métodos e propriedades o mais parecido possível com o que conhecemos e utilizamos em BDE, Zeos, ADO e mesmo no DBExpress.<br />
Neste artigo, descreverei como instalar e fazer uma aplicação simples. Espero que seja útil para a comunidade e, talvez, os pacotes e classes de suas regras de negócio a utilizem.</p>
<h2>Passo 1</h2>
<p>Download <a title="link para o componente" href="http://sourceforge.net/projects/dddbxfacil/" target="_blank">http://sourceforge.net/projects/dddbxfacil/</a><br />
Este pacote comtém o componente dddbxfacil com suas classes, bem como uma aplicação simples para utilizá-la.</p>
<h2>Passo 2</h2>
<p>Criar arquivo de configuração. Este arquivo, já está contido no pacote de exemplo e, ele contém a estrutura que é usada pelo dbconnections.ini e, serve para indicar os parâmetros para conexão ao banco de dados. Eu não costumo deixar o login e password contido neste arquivo mas, nada impede de se inserir nele.</p>
<p>A configuração que defini, foi para o Oracle mas, pode ser para qualquer banco que o Dbexpress é compatível que, acho que são todos:</p>
<div class="codesnip-container" >
<div class="ini codesnip" style="font-family:monospace;"><span class="re0"><span class="br0">&#91;</span>NOMESECAOCONFIGORACLE<span class="br0">&#93;</span></span><br />
<span class="re1">CONNECTIONNAME</span><span class="sy0">=</span><span class="re2">OracleConnection</span><br />
<span class="re1">GETDRIVERFUNC</span><span class="sy0">=</span><span class="re2">getSQLDriverORACLE</span><br />
<span class="re1">VENDORLIB</span><span class="sy0">=</span><span class="re2">oci.dll</span><br />
<span class="re1">LibraryName</span><span class="sy0">=</span><span class="re2">dbxora30.dll</span><br />
<span class="re1">DriverName</span><span class="sy0">=</span><span class="re2">Oracle</span><br />
<span class="re1">HostName</span><span class="sy0">=</span><br />
<span class="re1">Database</span><span class="sy0">=</span><br />
<span class="re1">User_Name</span><span class="sy0">=</span><br />
<span class="re1">Password</span><span class="sy0">=</span><br />
<span class="re1">BlobSize</span><span class="sy0">=</span><span class="re2">-1</span><br />
<span class="re1">ErrorResourceFile</span><span class="sy0">=</span><br />
<span class="re1">LocaleCode</span><span class="sy0">=</span><span class="re2">0000</span><br />
<span class="re1">Compressed</span><span class="sy0">=</span><span class="re2">False</span><br />
<span class="re1">Encrypted</span><span class="sy0">=</span><span class="re2">False</span></div>
</div>
<h2>Passo 3</h2>
<p>No uses de sua unit, vamos inserir as seguintes units:<br />
DB, DBTables, ddcomumDBX, ddconexaoDBX, ddsqlDBX, ddproviderDBX.</p>
<h2>Passo 4</h2>
<p>Vamos no private e, colocar as seguintes “variáveis”:</p>
<div class="codesnip-container" >
<div class="delphi codesnip" style="font-family:monospace;">ConexaoDBX<span class="sy1">:</span> TConexaoDBX<span class="sy1">;</span><br />
ProviderDBX<span class="sy1">:</span> TProviderDBX<span class="sy1">;</span><br />
SqlDBX<span class="sy1">:</span> TsqlDBX<span class="sy1">;</span></div>
</div>
<h2>Passo 5</h2>
<p>Este passo é opcional mas, para mostrar melhor o funcionamento da classe, criaremos um método chamado MeuDataChange, novamente apontar ele.</p>
<div class="codesnip-container" >
<div class="delphi codesnip" style="font-family:monospace;"><span class="co1">//No private:</span><br />
<span class="kw1">procedure</span> MeuDataChange<span class="br0">&#40;</span>Sender<span class="sy1">:</span> <span class="kw4">TObject</span><span class="sy1">;</span> Field<span class="sy1">:</span> Tfield<span class="br0">&#41;</span><span class="sy1">;</span></p>
<p><span class="co1">//No implementation</span><br />
<span class="kw1">procedure</span> TForm2<span class="sy1">.</span><span class="me1">MeuDataChange</span><span class="br0">&#40;</span>Sender<span class="sy1">:</span> <span class="kw4">TObject</span><span class="sy1">;</span> Field<span class="sy1">:</span> TField<span class="br0">&#41;</span><span class="sy1">;</span><br />
<span class="kw1">begin</span><br />
<span class="co1">// Nao é necessário colocar teste para ver se tabela tá aberta, DisableControls, etc&#8230;</span></p>
<p>grbTesteGrid<span class="sy1">.</span><span class="me1">Caption</span> <span class="sy1">:</span><span class="sy3">=</span> <span class="st0">&#8216;Testando o grid. Agora são &#8216;</span><span class="sy3">+</span><br />
<span class="kw3">FormatDateTime</span><span class="br0">&#40;</span><span class="st0">&#8216;dd/mm/yyyy hh:nn:ss&#8217;</span><span class="sy1">,</span> <span class="kw3">now</span><span class="br0">&#41;</span><span class="sy1">;</span><br />
<span class="kw1">end</span><span class="sy1">;</span></div>
</div>
<h2>Passo 6</h2>
<p>Precisamos instanciar as variáveis que criamos no private. Para isso, criei procedimentos para facilitar isso. No formShow, colocaremos o seguinte código:</p>
<div class="codesnip-container" >
<div class="delphi codesnip" style="font-family:monospace;">ddconexaoDBX<span class="sy1">.</span><span class="me1">ConexaoDBXInit</span><span class="br0">&#40;</span>ConexaoDBX<span class="sy1">,</span> &nbsp;<span class="kw2">nil</span><span class="sy1">,</span><br />
<span class="kw3">IncludeTrailingPathDelimiter</span><span class="br0">&#40;</span><span class="kw3">ExtractFilePath</span><span class="br0">&#40;</span>Application<span class="sy1">.</span><span class="me1">ExeName</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy3">+</span><span class="st0">&#8216;configuracao.ini&#8217;</span><span class="sy1">,</span><br />
<span class="st0">&#8216;NOMESECAOCONFIGORACLE&#8217;</span><span class="br0">&#41;</span><span class="sy1">;</span></p>
<p>ConexaoDBX<span class="sy1">.</span><span class="me1">Login</span> <span class="sy1">:</span><span class="sy3">=</span> <span class="st0">&#8216;usuario&#8217;</span><span class="sy1">;</span><br />
ConexaoDBX<span class="sy1">.</span><span class="me1">Senha</span> <span class="sy1">:</span><span class="sy3">=</span> <span class="st0">&#8217;senha&#8217;</span><span class="sy1">;</span></p>
<p>ddproviderDBX<span class="sy1">.</span><span class="me1">ProviderDBXInit</span><span class="br0">&#40;</span>ProviderDBX<span class="sy1">,</span><br />
ConexaoDBX<span class="sy1">,</span><br />
DBGrid1<span class="sy1">,</span><br />
<span class="st0">&#8216;ROWID&#8217;</span><span class="sy1">,</span><br />
<span class="kw2">true</span><span class="sy1">,</span><br />
MeuDataChange<span class="br0">&#41;</span><span class="sy1">;</span></p>
<p>ddsqlDBX<span class="sy1">.</span><span class="me1">SqlDBXInit</span><span class="br0">&#40;</span>SqlDBX<span class="sy1">,</span> ConexaoDBX<span class="br0">&#41;</span><span class="sy1">;</span></div>
</div>
<h2>Passo 7</h2>
<p>Exemplo de código para executar busca no banco de dados:</p>
<div class="codesnip-container" >
<div class="delphi codesnip" style="font-family:monospace;"><span class="kw1">procedure</span> TForm2<span class="sy1">.</span><span class="me1">btnProcurarClick</span><span class="br0">&#40;</span>Sender<span class="sy1">:</span> <span class="kw4">TObject</span><span class="br0">&#41;</span><span class="sy1">;</span><br />
<span class="kw1">var</span><br />
Retorno<span class="sy1">:</span> TProviderRetorno<span class="sy1">;</span><br />
<span class="kw1">begin</span><br />
ConexaoDBX<span class="sy1">.</span><span class="me1">ConectarSeDesconectado</span><span class="sy1">;</span></p>
<p>ProviderDBX<span class="sy1">.</span><span class="me1">ClearAll</span><span class="sy1">;</span><br />
<span class="kw1">with</span> ProviderDBX<span class="sy1">,</span> ProviderDBX<span class="sy1">.</span><span class="me1">LinhaSQL</span> <span class="kw1">do</span><br />
<span class="kw1">begin</span><br />
Add<span class="br0">&#40;</span><span class="st0">&#8216;SELECT * FROM TABELA&#8217;</span><span class="br0">&#41;</span><span class="sy1">;</span></p>
<p>Retorno <span class="sy1">:</span><span class="sy3">=</span> OpenDQL<span class="sy1">;</span><br />
<span class="kw1">end</span><span class="sy1">;</span><br />
<span class="kw1">end</span><span class="sy1">;</span></div>
</div>
<h2>Passo 8</h2>
<p>Exemplo de evento de inclusão:</p>
<div class="codesnip-container" >
<div class="delphi codesnip" style="font-family:monospace;"><span class="kw1">procedure</span> TForm2<span class="sy1">.</span><span class="me1">btnincluirClick</span><span class="br0">&#40;</span>Sender<span class="sy1">:</span> <span class="kw4">TObject</span><span class="br0">&#41;</span><span class="sy1">;</span><br />
<span class="kw1">var</span><br />
iProximoCodigo<span class="sy1">:</span> <span class="kw4">integer</span><span class="sy1">;</span><br />
<span class="kw1">begin</span><br />
ConexaoDBX<span class="sy1">.</span><span class="me1">ConectarSeDesconectado</span><span class="sy1">;</span></p>
<p><span class="co1">// Pegar Próximo Codigo</span><br />
<span class="kw1">with</span> SQLDBX <span class="kw1">do</span><br />
<span class="kw1">begin</span><br />
setLinhaSQL<span class="br0">&#40;</span><span class="st0">&#8216;SELECT MAX(CODIGO) PROXIMO FROM TABELA&#8217;</span><span class="br0">&#41;</span><span class="sy1">;</span></p>
<p>OpenDQL<span class="sy1">;</span></p>
<p>iProximoCodigo <span class="sy1">:</span><span class="sy3">=</span> SQLDQl<span class="sy1">.</span><span class="me1">FieldByName</span><span class="br0">&#40;</span><span class="st0">&#8216;PROXIMO&#8217;</span><span class="br0">&#41;</span><span class="sy1">.</span><span class="me1">AsInteger</span><span class="sy3">+</span><span class="nu0">1</span><span class="sy1">;</span><br />
<span class="kw1">end</span><span class="sy1">;</span></p>
<p>ConexaoDBX<span class="sy1">.</span><span class="me1">Transacao_Abrir</span><span class="sy1">;</span></p>
<p><span class="kw1">try</span><br />
<span class="co1">// Incluir</span><br />
<span class="kw1">with</span> SqlDBX <span class="kw1">do</span><br />
<span class="kw1">begin</span><br />
ClearAll<span class="sy1">;</span></p>
<p><span class="kw1">with</span> LinhaSQL <span class="kw1">do</span><br />
<span class="kw1">begin</span><br />
Add<span class="br0">&#40;</span><span class="st0">&#8216;INSERT INTO TABELA (CODIGO, DESCRICAO)&#8217;</span><span class="br0">&#41;</span><span class="sy1">;</span><br />
Add<span class="br0">&#40;</span><span class="st0">&#8216;VALUES&#8217;</span><span class="br0">&#41;</span><span class="sy1">;</span><br />
Add<span class="br0">&#40;</span><span class="st0">&#8216;(:P_CODIGO, <img src='http://www.dicasdelphi.com.br/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> _DESCRICAO)&#8217;</span><span class="br0">&#41;</span><span class="sy1">;</span><br />
<span class="kw1">end</span><span class="sy1">;</span></p>
<p>AddParam<span class="br0">&#40;</span>ftInteger<span class="sy1">,</span> <span class="st0">&#8216;P_CODIGO&#8217;</span><span class="sy1">,</span> iProximoCodigo<span class="br0">&#41;</span><span class="sy1">;</span><br />
AddParam<span class="br0">&#40;</span>ftString<span class="sy1">,</span> <span class="st0">&#8216;P_DESCRICAO&#8217;</span><span class="sy1">,</span> <span class="st0">&#8216;nome &#8216;</span><span class="sy3">+</span><span class="kw3">IntToStr</span><span class="br0">&#40;</span>iProximoCodigo<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy1">;</span></p>
<p>ExecDML<span class="sy1">;</span><br />
<span class="kw1">end</span><span class="sy1">;</span></p>
<p>ConexaoDBX<span class="sy1">.</span><span class="me1">Transacao_Commit</span><span class="sy1">;</span><br />
<span class="kw1">except</span><br />
<span class="kw1">on</span> E<span class="sy1">:</span>Exception <span class="kw1">do</span><br />
<span class="kw1">begin</span><br />
ConexaoDBX<span class="sy1">.</span><span class="me1">Transacao_RollBack</span><span class="sy1">;</span></p>
<p>ShowMessage<span class="br0">&#40;</span>E<span class="sy1">.</span><span class="me1">Message</span><span class="br0">&#41;</span><span class="sy1">;</span><br />
<span class="kw1">end</span><span class="sy1">;</span><br />
<span class="kw1">end</span><span class="sy1">;</span><br />
<span class="kw1">end</span><span class="sy1">;</span></div>
</div>
<p>No arquivo que é baixado do sourceforge, este exemplo já está contido.</p>
<p>Qualquer dúvida, podem me escrever para meu e-mail que eu respondo:</p>
<p><a title="email para o desenvolvedor delphi" href="mailto:programador@marciofcruz.com">programador@marciofcruz.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dicasdelphi.com.br/utilizando-dbexpress-de-uma-maneira-facil/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TMS Smooth Controls Pack para Delphi 2009 e C ++ Builder 2009</title>
		<link>http://www.dicasdelphi.com.br/tms-smooth-controls-pack-para-delphi-2009-e-c-builder-2009/</link>
		<comments>http://www.dicasdelphi.com.br/tms-smooth-controls-pack-para-delphi-2009-e-c-builder-2009/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 16:10:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Delphi 2009]]></category>
		<category><![CDATA[Novidades]]></category>
		<category><![CDATA[TMS]]></category>

		<guid isPermaLink="false">http://www.dicasdelphi.com.br/?p=145</guid>
		<description><![CDATA[Olá, a Embarcadero está disponibilizando gratuitamente o TMS Smooth Controls Pack para todos os usuários registrados do C++ Builder e Delphi 2009. O TMS é um pack com 22 componentes que permitem a criação de interfaces ricas em Delphi, incluindo animações e estilos do Microsoft Office e do iPhone. Vale a pena conferir!
Para quem está [...]]]></description>
			<content:encoded><![CDATA[<p>Olá, a <strong>Embarcadero</strong> está disponibilizando <strong>gratuitamente</strong> o <strong>TMS Smooth Controls Pack</strong> para todos os usuários registrados do <strong>C++ Builder</strong> e <strong>Delphi 2009</strong>. O <strong>TMS</strong> é um pack com <strong>22 componentes</strong> que permitem a criação de <strong>interfaces ricas em Delphi</strong>, incluindo animações e estilos do <strong>Microsoft Office</strong> e do <strong>iPhone</strong>. Vale a pena conferir!</p>

<a href='http://www.dicasdelphi.com.br/tms-smooth-controls-pack-para-delphi-2009-e-c-builder-2009/ce9/' title='TMS Smooth Controls Pack'><img width="150" height="145" src="http://www.dicasdelphi.com.br/wp-content/uploads/2009/04/ce9-150x145.jpg" class="attachment-thumbnail" alt="TMS Smooth Controls Pack" title="TMS Smooth Controls Pack" /></a>
<a href='http://www.dicasdelphi.com.br/tms-smooth-controls-pack-para-delphi-2009-e-c-builder-2009/print1/' title='Interface feita com os componentes do TMS Smooth Controls Pack'><img width="150" height="150" src="http://www.dicasdelphi.com.br/wp-content/uploads/2009/04/print1-150x150.jpg" class="attachment-thumbnail" alt="Interface feita com os componentes do TMS Smooth Controls Pack" title="Interface feita com os componentes do TMS Smooth Controls Pack" /></a>
<a href='http://www.dicasdelphi.com.br/tms-smooth-controls-pack-para-delphi-2009-e-c-builder-2009/print2/' title='Interface feita com os componentes do TMS Smooth Controls Pack'><img width="150" height="150" src="http://www.dicasdelphi.com.br/wp-content/uploads/2009/04/print2-150x150.jpg" class="attachment-thumbnail" alt="Interface feita com os componentes do TMS Smooth Controls Pack" title="Interface feita com os componentes do TMS Smooth Controls Pack" /></a>
<a href='http://www.dicasdelphi.com.br/tms-smooth-controls-pack-para-delphi-2009-e-c-builder-2009/print3/' title='Interface feita com os componentes do TMS Smooth Controls Pack'><img width="150" height="139" src="http://www.dicasdelphi.com.br/wp-content/uploads/2009/04/print3-150x139.jpg" class="attachment-thumbnail" alt="Interface feita com os componentes do TMS Smooth Controls Pack" title="Interface feita com os componentes do TMS Smooth Controls Pack" /></a>

<p>Para quem está interessado o link para pegar o <strong>TMS Smooth Controls Pack</strong> é o seguinte:</p>
<p><a title="TMS Smooth Controls Pack" href="http://latam.embarcadero.com/br/delphi2009tms/" target="_blank">http://latam.embarcadero.com/br/delphi2009tms/</a></p>
<p>Já a URL reduzida é a seguinte: <a title="Endereço reduzido dos componentes" href="http://url20.ca/bexe" target="_blank">url20.ca/bexe</a></p>
<p><span style="color: #008000;"><strong>Endereço reduzido desta dica:</strong></span> <a title="Endereço reduzido da dica sobre o TMS" href="http://url20.ca/yefe" target="_blank">url20.ca/yefe</a></p>
<p>t+</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dicasdelphi.com.br/tms-smooth-controls-pack-para-delphi-2009-e-c-builder-2009/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Pacotão Dicas Delphi 1.5</title>
		<link>http://www.dicasdelphi.com.br/pacotao-dicas-delphi-15/</link>
		<comments>http://www.dicasdelphi.com.br/pacotao-dicas-delphi-15/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 18:03:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Sem categoria]]></category>
		<category><![CDATA[ajuda]]></category>
		<category><![CDATA[chm]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.dicasdelphi.com.br/?p=137</guid>
		<description><![CDATA[Super dica, o website dicasdelphi.xpg fornece um excelente pacote com mais de 900 dicas de programação para o Delphi. Este arquivo de dicas é muito bem organizado e de fácil manipulação auxiliando o programador a axar a dica para a sua dúvida muito facilmente.
Segue o texto com a descrição do próprio site que fornce o [...]]]></description>
			<content:encoded><![CDATA[<p>Super <strong>dica</strong>, o website dicasdelphi.xpg fornece um excelente <strong>pacote com mais de 900 dicas</strong> de <strong>programação para o Delphi</strong>. Este <strong>arquivo de dicas</strong> é muito bem organizado e de fácil manipulação auxiliando o programador a axar a <strong>dica</strong> para a sua dúvida muito facilmente.</p>
<p>Segue o texto com a descrição do próprio site que fornce o super pacotão de <strong>dicas Delphi</strong>:</p>
<p><em>O <strong>Dicas Delphi 900</strong> é um acervo de <strong>dicas</strong> e <strong>exemplos</strong> da linguagem de<br />
programação <strong>Delphi</strong>.</em></p>
<p><em>Seu objetivo é ajudar todos os desenvolvedores de sistemas que utilizam<br />
o <strong>Delphi</strong> como ferramenta.</em></p>
<p><em>Sendo um pograma <strong>FREE</strong> (<strong>grátis</strong>), pode ser distribuído livremente. Os<br />
que desejarem também podem distribuir essa lista de ajuda em seus<br />
sites. Não pode ser comercializado. </em></p>
<p>Este <strong>pacotão de dicas</strong> aborda temas tais como:</p>
<ul>
<li>Criar arquivo DBF com índices compostos</li>
<li>Compactação de uma tabela Paradox</li>
<li>Listar as tabelas e views do banco de dados (Firebird)</li>
<li>Proteger e compactar um .EXE</li>
<li>Procurando um arquivo em todo o HD</li>
<li>Lendo Arquivo CAB</li>
<li>Mudar a cor da célula ativa do DBGrid</li>
<li>Enviando informações direto para a impressora</li>
<li>Exportando dados para um arquivo XML</li>
</ul>
<p>E muito mais <strong>dicas</strong>. Além de mais de <strong>900 dicas</strong> o pacotão de <strong>dicas</strong> ainda possui uma seção com <strong>artigos</strong> e aborda temas tais como:</p>
<ul>
<li>Conceito de Banco de Dados</li>
<li>Rave &#8211; Imprimindo Gráficos (Chart)</li>
<li>Instalando o BDE a partir do BDEINST.CAB</li>
<li>Fundamentos de Object Pascal</li>
</ul>
<p>entre <strong>outros artigos</strong>. Este <strong>arquivo de dicas</strong> <strong>chm</strong> é uma excelente fonte de informações para quem está aprendendo <strong>Delphi</strong> e para programadores experientes quando precisam consultar alguma <strong>dica rápida</strong>. E como a maioria das dicas são bastante genéricas todas são compatíveis com o <strong>Delphi 2009</strong>.</p>
<p>Você pode <strong>baixar</strong> o pacotão de <strong>dicas</strong> totalmente <strong>gratuito</strong> no seguinte link:</p>
<p><a title="Pacotão Dicas Delphi" href="http://www.dicasdelphi.com.br/wp-content/uploads/2009/03/dicasdelphi.zip">Dicas Delphi</a></p>
<p>Assim que estiver uma nova atualização do pacotão <strong>Dicas Delphi 900</strong> estaremos publicando aqui no Blog.</p>
<p><span style="color: #008000;"><strong>URL reduzida deste artigo:</strong></span> <a title="Endereço reduzido do pacote de dicas para o delphi" href="http://url20.ca/esoj" target="_blank">url20.ca/esoj</a></p>
<p>t+</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dicasdelphi.com.br/pacotao-dicas-delphi-15/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dica : Delphi Webinar – Porque migrar para Delphi 2009</title>
		<link>http://www.dicasdelphi.com.br/dica-delphi-webinar-porque-migrar-para-delphi-2009/</link>
		<comments>http://www.dicasdelphi.com.br/dica-delphi-webinar-porque-migrar-para-delphi-2009/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 13:41:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Delphi 2009]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[webinar]]></category>

		<guid isPermaLink="false">http://www.dicasdelphi.com.br/?p=131</guid>
		<description><![CDATA[Mais uma dica para os interessados no Delphi 2009. A embarcadero está promovendo um webinar gratuito mostrando as razões para migrar para o Delphi 2009.
Segue a descrição do evento:
&#8220;A Embarcadero Technologies preparou pra você que ainda não migrou para Delphi 2009 um evento online para tirar todas as suas dúvidas.
Efetuando seu registro, você garante no [...]]]></description>
			<content:encoded><![CDATA[<p>Mais uma <strong>dica</strong> para os interessados no <strong>Delphi 2009</strong>. A <strong>embarcadero</strong> está promovendo um webinar gratuito mostrando as razões para <strong>migrar para o Delphi 2009</strong>.</p>
<div id="attachment_134" class="wp-caption aligncenter" style="width: 439px"><img class="size-full wp-image-134" title="Porque migrar para o Delphi 2009?" src="http://www.dicasdelphi.com.br/wp-content/uploads/2009/03/ce6.jpg" alt="Porque migrar para o Delphi 2009?" width="429" height="185" /><p class="wp-caption-text">Porque migrar para o Delphi 2009?</p></div>
<p>Segue a descrição do evento:</p>
<p>&#8220;<span id="lblEventDesc" class="labelText">A Embarcadero Technologies preparou pra você que ainda não migrou para Delphi 2009 um evento online para tirar todas as suas dúvidas.</span></p>
<p>Efetuando seu registro, você garante no mínimo 30% de desconto na compra de Delphi, RAD Studio, C++ Builder e InterBase, desconto válido para novas licenças e atualização.</p>
<p>Participe do evento online gratuito &#8220;Razões para migrar&#8221; e conheça todas as novidades que vão ajudar ainda mais o desenvolvimento de seus sistemas.</p>
<p>Serão 3 horas na prática de novos recursos incorporados ao Delphi desde a versão 7, como: <strong>novidades no IDE</strong>, <strong>linguagem, VCL</strong>, <strong>documentação</strong>, <strong>banco de dados</strong>, <strong>modelagem</strong> e muito mais.</p>
<p>Para participar, efetue o seu registro agora mesmo.&#8221;<br />
O link para os interessados que queriam participar desse interessante Webinar é: <a title="Webinar: razões para migrar para o Delphi 2009" href="https://www124.livemeeting.com/lrs/advancedsw_ccc/Registration.aspx?pageName=991mhh5r2rs7j70h" target="_blank">https://www124.livemeeting.com/lrs/advancedsw_ccc/Registration.aspx?pageName=991mhh5r2rs7j70h</a></p>
<p>Vale a pena participar, para os interessados não esqueçam de enviar esta dica para outros <strong>programadores Delphi</strong> também. Pois quanto mais pessoas paticiparem maior será a sinergia entre a comunidade Delphi brasileira.</p>
<p><span style="color: #008000;"><strong>URL reduzida desta dica:</strong></span> <a title="Endereço reduzido da dica porque migrar para o delphi 2009" href="http://url20.ca/adeq" target="_blank">url20.ca/adeq</a></p>
<p>t+</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dicasdelphi.com.br/dica-delphi-webinar-porque-migrar-para-delphi-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dica : Migrar do Delphi 7 para o Delphi 2009</title>
		<link>http://www.dicasdelphi.com.br/dica-migrar-do-delphi-7-para-o-delphi-2009/</link>
		<comments>http://www.dicasdelphi.com.br/dica-migrar-do-delphi-7-para-o-delphi-2009/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 00:51:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Documentos]]></category>
		<category><![CDATA[Artigo]]></category>
		<category><![CDATA[Delphi 2009]]></category>
		<category><![CDATA[Delphi 7]]></category>
		<category><![CDATA[Dica]]></category>
		<category><![CDATA[Documento]]></category>
		<category><![CDATA[migração]]></category>
		<category><![CDATA[Migrar]]></category>

		<guid isPermaLink="false">http://www.dicasdelphi.com.br/?p=124</guid>
		<description><![CDATA[Dica quentíssima no site da Rede de Desenvolvedores da Embarcadero tem um documento de 60 páginas listando todas as diferenças desde o Delphi 7 até o Delphi 2009. Então se você está com dúvidas para baixar o Delphi 2009 por ser um lançamento da Embarcadero vale a pena conferir este documento e consultar todas as [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Dica</strong> quentíssima no site da Rede de <strong>Desenvolvedores da Embarcadero</strong> tem um documento de 60 páginas listando todas as <strong>diferenças</strong> desde o <strong>Delphi 7</strong> até o <strong>Delphi 2009</strong>. Então se você está com dúvidas para <strong>baixar o Delphi 2009</strong> por ser um <strong>lançamento</strong> da Embarcadero vale a pena conferir este documento e consultar todas as <strong>diferenças entre o Delphi 7 e o Delphi 2009</strong>. É bom isso também pois quando você realizar um <strong>upgrade</strong> e abrir os seus projetos antigos no <strong>Delphi 2009</strong> você não tenha surpresas não muito legais, e se caso você tiver vai ser mais fácil encontrar solução para o problema de <strong>troca da versão 7 para a versão 2009</strong>.</p>
<div id="attachment_125" class="wp-caption aligncenter" style="width: 497px"><img class="size-full wp-image-125" title="Preview da Rede de Desenvolvedores da Embarcadero" src="http://www.dicasdelphi.com.br/wp-content/uploads/2009/02/embarcadero_preview.jpg" alt="Preview da Rede de Desenvolvedores da Embarcadero" width="487" height="236" /><p class="wp-caption-text">Preview da Rede de Desenvolvedores da Embarcadero</p></div>
<p>O <strong>endereço para baixar</strong> este excelente documento é: <a title="Link para baixar o documento com as razões para migrar para o Delphi 2009" href="http://cc.codegear.com/Item/26707" target="_blank">http://cc.codegear.com/Item/26707</a> já a URL reduzida desta página se caso você quer enviar para os seus amigos é a seguinte: <a title="Endereço reduzido da página para baixar o documento listando as diferenças do Delphi 7 e do Delphi 2009" href="http://url20.ca/eked" target="_blank">url20.ca/eked</a></p>
<p>Essa é uma leitura essencial para todos que pensam em <strong>migrar para o Delphi 2009</strong>.</p>
<p><span style="color: #008000;"><strong>URL reduzida desta dica: </strong></span><a title="Endereço reduzido da dica de migração do Delphi 7 para o Delphi 2009" href="http://url20.ca/inix" target="_blank">url20.ca/inix</a></p>
<p>t+</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dicasdelphi.com.br/dica-migrar-do-delphi-7-para-o-delphi-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
