<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4868749140317132356</id><updated>2011-11-27T21:52:40.340-02:00</updated><category term='Interfaces'/><category term='Classes'/><category term='Dica Rápida'/><category term='Flamengo'/><category term='Orientação Object'/><category term='vírus'/><category term='Brasil'/><category term='Delphi'/><category term='ClientDataSet'/><category term='video_aulas'/><category term='Componentes'/><category term='Olimpíadas'/><category term='Comentários'/><category term='firebird'/><category term='Rio de Janeiro'/><title type='text'>JoséHenriqueBR</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://josehenriquebr.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://josehenriquebr.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>José Henrique</name><uri>http://www.blogger.com/profile/12308503095071072958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_ugC8V78ECCM/Smy5ZuCVndI/AAAAAAAAAcE/Ogv5ECN4uXM/S220/26-08-06_1541.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4868749140317132356.post-3269214226892479949</id><published>2009-12-01T23:11:00.000-02:00</published><updated>2009-12-02T11:15:59.871-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rio de Janeiro'/><category scheme='http://www.blogger.com/atom/ns#' term='Brasil'/><category scheme='http://www.blogger.com/atom/ns#' term='Comentários'/><title type='text'>Corcovado sem o Cristo Redentor!</title><content type='html'>&lt;div style="text-align: justify;"&gt;Sem dúvida essa é uma foto rara que eu recebi por email, nela vemos inscrição “Corcovado” assinalando que a mesma é uma imagem do morro do Corcovado, um dos pontos turísticos mais conhecidos do Brasil.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;a href="http://lh5.ggpht.com/_ugC8V78ECCM/SxZSkbn1LiI/AAAAAAAABIk/nbgBJDoEOXM/s1600-h/corcovado%20antes%20do%20cristo%5B4%5D.jpg"&gt;&lt;img alt="corcovado antes do cristo" border="0" height="406" src="http://lh6.ggpht.com/_ugC8V78ECCM/SxZSleISYQI/AAAAAAAABIo/jSH_CASFr14/corcovado%20antes%20do%20cristo_thumb%5B2%5D.jpg?imgmax=800" style="border: 0px none; display: inline;" title="corcovado antes do cristo" width="545" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;Para você conhecer mais um pouco sobre o corcovado: &lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;O morro do Corcovado que no Séc. XVI foi batizado pelos portugueses de&amp;nbsp; Pináculo da Tentação, em alusão a um monte bíblico, somente veio a ser nomeado de “Corcovado” ( fazendo alusão a sua forma ) no século seguinte.&lt;br /&gt;A primeira expedição ao Corcovado ocorreu no ano de 1834 e foi liderada pelo próprio D.Pedro I, sendo construído assim o primeiro acesso cume do morro.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;a href="http://lh6.ggpht.com/_ugC8V78ECCM/SxZjtK6P-WI/AAAAAAAABIs/TuGPVnzlPXk/s1600-h/pop_historia1%5B3%5D.jpg"&gt;&lt;img alt="pop_historia1" border="0" height="375" src="http://lh6.ggpht.com/_ugC8V78ECCM/SxZjuNEX7KI/AAAAAAAABIw/CQpjSu54d9A/pop_historia1_thumb%5B1%5D.jpg?imgmax=800" style="border: 0px none; display: inline;" title="pop_historia1" width="512" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Os engenheiros João Teixeira Soares e Francisco Pereira Passos recebem de D.Pedro II no ano de 1882 a permissão para construírem e explorarem a Estrada de Ferro do Corcovado, a mesma foi inaugurada em 1884 com a presença da Família Real, seu percurso inicial era entre o Cosme Velho e as Paineiras da Estrada de Ferro do Corcovado, nesse mesmo momento inaugura-se também o Hotel das &lt;span id="fullpost"&gt;Paineiras&lt;/span&gt;. No ano seguinte é inaugurado o trecho entre&amp;nbsp; as Paineiras e o Corcovado, seu trajeto final passou então a ter 3.800 metros de extensão.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;a href="http://lh3.ggpht.com/_ugC8V78ECCM/SxZju6wluqI/AAAAAAAABI0/6I6VLllNM4M/s1600-h/pop_historia3%5B3%5D.jpg"&gt;&lt;img alt="pop_historia3" border="0" height="541" src="http://lh6.ggpht.com/_ugC8V78ECCM/SxZjv3w0-RI/AAAAAAAABI4/oQi_O4KhLuA/pop_historia3_thumb%5B1%5D.jpg?imgmax=800" style="border: 0px none; display: inline;" title="pop_historia3" width="522" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;A idéia da construção do monumento do Cristo Redentor surge pouco antes do centenário da Independência e serviria para comemorar tal evento. Na disputa para acolher o monumento estavam o Corcovado, o Pão de Açúcar, e o Morro de Santo Antônio. O Corcovado vence a disputa, pois oferece as melhores condições.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;a href="http://lh3.ggpht.com/_ugC8V78ECCM/SxZjwoXOMOI/AAAAAAAABI8/1twQnj-3Fgk/s1600-h/pop_historia4%5B4%5D.jpg"&gt;&lt;img alt="pop_historia4" border="0" height="391" src="http://lh5.ggpht.com/_ugC8V78ECCM/SxZjxhh08KI/AAAAAAAABJA/idjzLX3k2Tg/pop_historia4_thumb%5B2%5D.jpg?imgmax=800" style="border: 0px none; display: inline;" title="pop_historia4" width="534" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;A estátua do Cristo Redentor é inaugurada no dia 12 de outubro de 1931.&amp;nbsp; O desenho final do monumento é de autoria do artista plástico Carlos Oswald e a execução do projeto é do estatuário francês Paul Landowski. &lt;br /&gt;&lt;/div&gt;&lt;a href="http://lh6.ggpht.com/_ugC8V78ECCM/SxZjyV_eHqI/AAAAAAAABJE/dkkHhaUgNbg/s1600-h/pop_historia5%5B3%5D.jpg"&gt;&lt;img alt="pop_historia5" border="0" height="368" src="http://lh5.ggpht.com/_ugC8V78ECCM/SxZjzDAW1nI/AAAAAAAABJI/_ZgY_oSsYlM/pop_historia5_thumb%5B1%5D.jpg?imgmax=800" style="border: 0px none; display: inline;" title="pop_historia5" width="251" /&gt;&lt;/a&gt; &lt;a href="http://lh6.ggpht.com/_ugC8V78ECCM/SxZjz8XcwaI/AAAAAAAABJM/nIEJ-skIL88/s1600-h/pop_historia6%5B3%5D.jpg"&gt;&lt;img alt="pop_historia6" border="0" height="356" src="http://lh6.ggpht.com/_ugC8V78ECCM/SxZj0sf9afI/AAAAAAAABJQ/C0XraIY9KUk/pop_historia6_thumb%5B1%5D.jpg?imgmax=800" style="border: 0px none; display: inline;" title="pop_historia6" width="242" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_ugC8V78ECCM/SxZj1as1SAI/AAAAAAAABJU/kDi1593h-EQ/s1600-h/pop_historia7%5B4%5D.jpg"&gt;&lt;img alt="pop_historia7" border="0" height="305" src="http://lh3.ggpht.com/_ugC8V78ECCM/SxZj2cCvxAI/AAAAAAAABJY/lkjzLlrVOdc/pop_historia7_thumb%5B2%5D.jpg?imgmax=800" style="border: 0px none; display: inline;" title="pop_historia7" width="517" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;div style="text-align: justify;"&gt;Nosso querido Santos Dumont, era um freqüentador assíduo do Trem do Corcovado, dito por maquinistas antigos, Santos Dumont por várias vezes pedia para conduzir o trem, e também era sempre gênero nas gorjetas. Os ex-presidentes Getúlio Vargas e Epitácio Pessoa também freqüentavam o Corcovado. &lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Em 1980, foi a vez do Papa João Paulo II e, assim como ele, também realizaram o passeio o cientista Albert Einstein, o rei Alberto da Bélgica e a princesa Diana.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;a href="http://lh6.ggpht.com/_ugC8V78ECCM/SxZj3f_m2fI/AAAAAAAABJc/jkOdnmCP9Rs/s1600-h/600px-Rio_de_Janeiro_Helicoptero_47_Feb_2006_%28cuadrado%29%5B3%5D.jpg"&gt;&lt;img alt="600px-Rio_de_Janeiro_Helicoptero_47_Feb_2006_(cuadrado)" border="0" height="498" src="http://lh4.ggpht.com/_ugC8V78ECCM/SxZj4jrfzHI/AAAAAAAABJg/bHK0EftV5LU/600px-Rio_de_Janeiro_Helicoptero_47_Feb_2006_%28cuadrado%29_thumb%5B1%5D.jpg?imgmax=800" style="border: 0px none; display: inline;" title="600px-Rio_de_Janeiro_Helicoptero_47_Feb_2006_(cuadrado)" width="498" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Hoje é possível visitar o Cristo Redentor de carro ou de bondinho, o trajeto de bondinho é feito em aproximadamente meia hora. Quem visita o Cristo, acaba por desfrutar também da exuberância da maior floresta urbana do mundo, o Parque Nacional da Tijuca símbolo de preservação, que proporciona aos visitantes um contato inesquecível com a natureza onde a presença da Floresta&amp;nbsp; Atlântica nos traz momentos de reflexão e paz.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://lh3.ggpht.com/_ugC8V78ECCM/SxZj5TQrYWI/AAAAAAAABJk/lapA_wJV5DY/s1600-h/437px-Cristo_Redentor_Rio_de_Janeiro_4%5B3%5D.jpg"&gt;&lt;img alt="437px-Cristo_Redentor_Rio_de_Janeiro_4" border="0" height="487" src="http://lh3.ggpht.com/_ugC8V78ECCM/SxZj6I4ErEI/AAAAAAAABJo/PeaxK_mt4V8/437px-Cristo_Redentor_Rio_de_Janeiro_4_thumb%5B1%5D.jpg?imgmax=800" title="437px-Cristo_Redentor_Rio_de_Janeiro_4" width="360" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Do seu topo o visitante poderá ver todo o Rio de Janeiro, tendo uma visão de 360º (graus), vislumbrando as praias, os bairros, e toda a beleza da Cidade Maravilhosa. &lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;a href="http://lh4.ggpht.com/_ugC8V78ECCM/SxZj7ItdKaI/AAAAAAAABJs/oeAL1rn7XKQ/s1600-h/689px-Cristo_Redentor_viewed_from_the_base%5B4%5D.jpg"&gt;&lt;img alt="689px-Cristo_Redentor_viewed_from_the_base" border="0" height="467" src="http://lh6.ggpht.com/_ugC8V78ECCM/SxZj7zpsZWI/AAAAAAAABJw/8jjuQeWMX-0/689px-Cristo_Redentor_viewed_from_the_base_thumb%5B2%5D.jpg?imgmax=800" style="border: 0px none; display: inline;" title="689px-Cristo_Redentor_viewed_from_the_base" width="532" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;A hospitalidade Carioca está representada na figura do Cristo de braços abertos recebendo os visitantes no Rio de Janeiro. É impossível imaginar uma visita ao Rio de Janeiro sem ir visitar o Cristo Redentor. Sua magia impressiona não só aqueles que o visitam por motivos religiosos, mas todos sem exceção.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;a href="http://lh5.ggpht.com/_ugC8V78ECCM/SxZj8sYE9UI/AAAAAAAABJ0/lgx1yASNUkE/s1600-h/US_Navy_Brazil%5B4%5D.jpg"&gt;&lt;img alt="US_Navy_Brazil" border="0" height="371" src="http://lh4.ggpht.com/_ugC8V78ECCM/SxZj9q2XbrI/AAAAAAAABJ4/Irm1_B941V4/US_Navy_Brazil_thumb%5B2%5D.jpg?imgmax=800" style="border: 0px none; display: inline;" title="US_Navy_Brazil" width="539" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/div&gt;Não deixem de conhecer!&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Visitem o site oficial do &lt;a href="http://www.corcovado.com.br/" target="_blank"&gt;Corcovado clicando aqui&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4868749140317132356-3269214226892479949?l=josehenriquebr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josehenriquebr.blogspot.com/feeds/3269214226892479949/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://josehenriquebr.blogspot.com/2009/12/corcovado-sem-o-cristo-redentor.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/3269214226892479949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/3269214226892479949'/><link rel='alternate' type='text/html' href='http://josehenriquebr.blogspot.com/2009/12/corcovado-sem-o-cristo-redentor.html' title='Corcovado sem o Cristo Redentor!'/><author><name>José Henrique</name><uri>http://www.blogger.com/profile/12308503095071072958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_ugC8V78ECCM/Smy5ZuCVndI/AAAAAAAAAcE/Ogv5ECN4uXM/S220/26-08-06_1541.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_ugC8V78ECCM/SxZSleISYQI/AAAAAAAABIo/jSH_CASFr14/s72-c/corcovado%20antes%20do%20cristo_thumb%5B2%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4868749140317132356.post-3185960646005473235</id><published>2009-11-25T21:30:00.004-02:00</published><updated>2009-11-26T12:02:30.906-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Componentes'/><category scheme='http://www.blogger.com/atom/ns#' term='ClientDataSet'/><category scheme='http://www.blogger.com/atom/ns#' term='Dica Rápida'/><title type='text'>Usando BookMark de maneira simples</title><content type='html'>&lt;div align="justify"&gt;Olá amigos, estou trazendo hoje uma dica rápida para quem deseja usar o bookmark. Primeiro vamos esclarecer o que é BookMark e depois mostrar uma das mais simples maneiras de utilizar esse recurso.&lt;br /&gt;&lt;/div&gt;&lt;h4&gt;O que é BookMark ?&lt;/h4&gt;&lt;div align="justify"&gt;Bookmark é um artifício que temos a nossa disposição para marcar um registro no ClientDataSet e depois localizá-lo rapidamente. Imagine o BookMark como um marcador de páginas (seria essa a tradução ao pé da letra), sendo assim você marca o registro no qual quer retornar futuramente, navega pelos outros registros do ClientDataSet e quando desejar, faz a chamada para o seu bookmark e retorna ao registro marcado. Parece fácil não é? &lt;br /&gt;&lt;/div&gt;&lt;h4&gt;É fácil sim!&lt;/h4&gt;&lt;div align="justify"&gt;Para utilizar o bookmark da maneira mais simples, devemos utilizar o marcador como uma string. Crie uma variável private no seu form do tipo string. Ela será utilizada para receber o marcador do ClientDataSet, como também para indicar qual a posição o ClientDataSet deve colocar o ponteiro posteriormente.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;Está parecendo complicado né, mas você verá que é brincadeira de criança fazer isso.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;Construa um form conforme o modelo abaixo ou &lt;a href="http://dc111.4shared.com/download/160204615/aaa732f4/ExemploBookMark.rar" target="_blank"&gt;baixe aqui o exemplo completo&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;a href="http://lh6.ggpht.com/_ugC8V78ECCM/Sw6Hum49jcI/AAAAAAAABIE/g75o42fGuQA/s1600-h/BookMark%5B4%5D.png"&gt;&lt;img alt="BookMark" border="0" height="321" src="http://lh4.ggpht.com/_ugC8V78ECCM/Sw6HvYYY-II/AAAAAAAABII/tPCp3xievsA/BookMark_thumb%5B1%5D.png?imgmax=800" style="border: 0px none; display: inline;" title="BookMark" width="535" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;Não se preocupe com os dados isso será resolvido no exemplo criando uma tabela temporária. Agora vamos a codificação para aqueles que não baixaram o exemplo vou colocar abaixo o código da unit.&lt;br /&gt;&lt;/div&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: andale mono,lucida console,monaco,fixed,monospace; font-size: 12px; height: 440px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;unit uExemploBookMark;&lt;br /&gt;&lt;br /&gt;interface&lt;br /&gt;&lt;br /&gt;uses&lt;br /&gt;Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,&lt;br /&gt;Dialogs, StdCtrls, Buttons, DB, DBClient, Grids, DBGrids;&lt;br /&gt;&lt;br /&gt;type&lt;br /&gt;TExemploBookMark = class(TForm)&lt;br /&gt;DBGrid1: TDBGrid;&lt;br /&gt;CDS: TClientDataSet;&lt;br /&gt;ds: TDataSource;&lt;br /&gt;BitBtn1: TBitBtn;&lt;br /&gt;MemorizaBookMark: TBitBtn;&lt;br /&gt;LocalizaBookMark: TBitBtn;&lt;br /&gt;procedure BitBtn1Click(Sender: TObject);&lt;br /&gt;procedure MemorizaBookMarkClick(Sender: TObject);&lt;br /&gt;procedure LocalizaBookMarkClick(Sender: TObject);&lt;br /&gt;private&lt;br /&gt;{ Private declarations }&lt;br /&gt;BookMarkString : String;  // essa variavel ira auxiliar no uso do bookmark&lt;br /&gt;public&lt;br /&gt;{ Public declarations }&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;var&lt;br /&gt;ExemploBookMark: TExemploBookMark;&lt;br /&gt;&lt;br /&gt;implementation&lt;br /&gt;&lt;br /&gt;{$R *.dfm}&lt;br /&gt;&lt;br /&gt;procedure TExemploBookMark.BitBtn1Click(Sender: TObject);&lt;br /&gt;var&lt;br /&gt;  I: Integer;&lt;br /&gt;begin&lt;br /&gt;&lt;span style="color: green;"&gt;  // aqui estamos criando nossa tabela temporaria&lt;/span&gt;&lt;br /&gt;  CDS.FieldDefs.Add('codigo',ftInteger);&lt;br /&gt;  CDS.FieldDefs.Add('descricao',ftString, 50);&lt;br /&gt;  CDS.CreateDataSet;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: green;"&gt;  // aqui estamos criando os registros na tabela temporaria&lt;/span&gt;&lt;br /&gt;  for I := 1 to 10 do&lt;br /&gt;  begin&lt;br /&gt;    CDS.Append;&lt;br /&gt;    CDS.FieldByName('codigo').AsInteger   := i;&lt;br /&gt;    CDS.FieldByName('descricao').AsString := 'Descrição - '+inttostr(i);&lt;br /&gt;    CDS.Post;&lt;br /&gt;  end;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure TExemploBookMark.LocalizaBookMarkClick(Sender: TObject);&lt;br /&gt;begin&lt;br /&gt;&lt;span style="color: green;"&gt;  // dessa maneira dizemos ao clientdataset para ir para o &lt;/span&gt;&lt;/code&gt;&lt;code&gt;&lt;span style="color: green;"&gt;endereco &lt;br /&gt;  // armazenado na nossa variavel&lt;br /&gt;&lt;/span&gt;  CDS.Bookmark := BookMarkString;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure TExemploBookMark.MemorizaBookMarkClick(Sender: TObject);&lt;br /&gt;begin&lt;br /&gt;&lt;span style="color: green;"&gt;  // aqui estamos atribuindo o endereco atual do registro na nossa &lt;br /&gt;  // variavel&lt;/span&gt;&lt;br /&gt;  BookMarkString := Cds.Bookmark;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;end.&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Para testar aponte o cursor para um registro qualquer selecionando o registro e depois clique no botão Memoriza BookMark, feito isso navegue pelo gride apontando agora qualquer outro registro e depois clique no botão Localiza BookMark, nesse instante o cursor deverá retornar para o registro memorizado anteriormente.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Vocês perceberam como foi fácil utilizar o bookmark dessa maneira? Para marcar nosso registro utilizamos &lt;b&gt;&lt;i&gt;BookMarkString := Cds.Bookmark;&lt;/i&gt;&lt;/b&gt; e para retornar ao registro marcado fizemos o contrário &lt;b&gt;&lt;i&gt;CDS.Bookmark := BookMarkString; . &lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Claro que alguns irão dizer que é melhor utilizar o bookmark criando um ponteiro,&amp;nbsp; etc. Sim, realmente se criarmos um ponteiro do tipo &lt;b&gt;&lt;i&gt;TBookMark, &lt;/i&gt;&lt;/b&gt;poderemos utilizar funcionalidades mais complexas, proporcionando um controle maior e mais seguro, mas o objetivo aqui era justamente demonstrar a parte fácil desse recurso e sua implementação sendo feita da maneira mais simples possível, espero que tenham gostado.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4868749140317132356-3185960646005473235?l=josehenriquebr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josehenriquebr.blogspot.com/feeds/3185960646005473235/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://josehenriquebr.blogspot.com/2009/11/usando-bookmark-de-maneira-simples.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/3185960646005473235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/3185960646005473235'/><link rel='alternate' type='text/html' href='http://josehenriquebr.blogspot.com/2009/11/usando-bookmark-de-maneira-simples.html' title='Usando BookMark de maneira simples'/><author><name>José Henrique</name><uri>http://www.blogger.com/profile/12308503095071072958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_ugC8V78ECCM/Smy5ZuCVndI/AAAAAAAAAcE/Ogv5ECN4uXM/S220/26-08-06_1541.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_ugC8V78ECCM/Sw6HvYYY-II/AAAAAAAABII/tPCp3xievsA/s72-c/BookMark_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4868749140317132356.post-4877427133636579659</id><published>2009-11-24T22:31:00.000-02:00</published><updated>2009-11-25T10:32:01.651-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Dica Rápida'/><category scheme='http://www.blogger.com/atom/ns#' term='Comentários'/><title type='text'>“¿Eres un buen programador?”</title><content type='html'>&lt;h3 align="justify"&gt;&amp;nbsp;&lt;/h3&gt;&lt;div align="justify"&gt;Olá amigos, trago novamente outro texto do &lt;a href="http://www.linkedin.com/profile?viewProfile=&amp;amp;key=44214520&amp;amp;authToken=VrjF&amp;amp;authType=name" target="_blank"&gt;Martín Bien&lt;/a&gt;, dessa vez ele traz uma reflexão dos pontos positivos que um bom programador deve ter para se destacar. Além dos pontos citados por ele, eu ainda acrescentaria um:&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;b&gt;BOA VONTADE&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;Acredito que se todos tivessem &lt;b&gt;boa vontade&lt;/b&gt; em ajudar a resolver os problemas dos outros também, metade das mazelas do mundo seriam resolvidas. É parece exagero, não é? Mas pense em quantas vezes você esteve na situação de ter que apresentar um documento (ou um punhado deles) e o atendente olha para você com desprezo e depois de vários minutos fazendo “han ham”, ele te fala: “Desculpe senhor, mas está faltando a segunda via de cor verde desse documento, o senhor poderá voltar outro dia e fazer o pedido novamente, mas infelizmente terá de entrar na fila.”. É você já ficou irritado só de lembrar de alguma coisa parecida. Agora imagine o seu chefe lhe trazendo uma tarefa e você fazendo “han ham” , e depois você se vira e fala: “É isso aqui….sei não hein….acho que não vai rolar…” , é você acaba de matar a sua boa vontade de resolver o problema do próximo(no caso o SEU CHEFE) e talvez tenha acabado de virar mais um problema para o próximo também, fica aqui o meu ponto para o qual devemos ter atenção, a &lt;b&gt;boa vontade.&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;Abaixo está o texto do &lt;a href="http://www.linkedin.com/profile?viewProfile=&amp;amp;key=44214520&amp;amp;authToken=VrjF&amp;amp;authType=name" target="_blank"&gt;Martín Bien&lt;/a&gt; na íntegra. Como no outro post, me isentei de fazer a tradução, até para poder exercitar o espanhol. Acredito que&amp;nbsp; vocês não terão dificuldades também na leitura. Espero que gostem passem a ter esses pontos como focos de atenção no seu comportamento.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4&gt;“Creatividad &lt;/h4&gt;&lt;div align="justify"&gt;Muchas personas a las que les cuento que para ser programador necesitas de mucha creatividad se quedan impactadas, esto porque siempre se asocia a las computadoras con la falta de creatividad, vamos, las computadoras son máquinas, pero nosotros los programadores NO.    &lt;br /&gt;Hasta ahora no conozco un lenguaje de programación el cual no te brinde diferentes soluciones a un mismo problema. Es lo que comúnmente se llama "There Is More Than One Way To Do It", que en español se traduce como: hay más de una manera para lograrlo.     &lt;br /&gt;Por eso creo que el primer punto que un buen programador debe de tener es creatividad. Creatividad para crear soluciones factibles, rápidas y sencillas a problemas complicados.     &lt;br /&gt;Por mi experiencia, esto es lo más difícil, pues la creatividad no la aprendes, no hay un libro acerca de "Creatividad Básica", no existen cursos que te puedan dar creatividad y la creatividad no la compras en la tienda. Creo que la creatividad la llevas dentro y unos tenemos poca y otros mucho más.     &lt;br /&gt;Pero lo que es un hecho es que sin creatividad inmediatamente te vuelves un mal programador, porque aunque la solución sea evidente es la falta de esta misma creatividad que te imposibilita ver lo que esta enfrente de ti.     &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4&gt;Conocimientos &lt;/h4&gt;&lt;div align="justify"&gt;El segundo punto, por supuesto que son los conocimientos. Pues aunque tengas creatividad si no tienes conocimientos no puedes llevar a cabo lo que ideaste.    &lt;br /&gt;Yo creo que un buen programador más que saber el ¿cómo? sabe el ¿por qué? de las cosas. No es lo mismo saber como solucionar un problema a saber realmente como funciona esa solución.     &lt;br /&gt;Por ejemplo, en el artículo que hice anterior a este acerca de la memoria en perl, les dije que para poder usar la memoria de manera eficiente era importante comprender como es que funcionaba la liberación de la misma por perl para poder usarlo a nuestro favor. En ese artículo más que el ¿cómo? vimos el ¿por qué?.     &lt;br /&gt;Entonces como segundo punto un buen programador debe de comprender porque un lenguaje actúa de esta u otra manera, para poder usarlo al 100%.     &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4&gt;Consulta&lt;/h4&gt;&lt;div align="justify"&gt;Como tercer punto, y el que a muy pocas personas he visto mencionar es la capacidad de consulta.    &lt;br /&gt;Es imposible que una sola persona sepa las soluciones a completamente todos los problemas, y la verdad es que la mayoría de nosotros ha de saber como un 50% de las capacidades completas de un lenguaje de programación.     &lt;br /&gt;Es aquí donde entra la importancia de este punto. Todo buen programador debe de tener la capacidad de encontrar conocimiento necesario de manera rápida, ya sea buscando en libros o en la web.     &lt;br /&gt;Muchas veces yo me veo en la necesidad de buscar ciertas funciones que se que existen pero que no recuerdo las sintáxis completamente, para lo que uso mi LIBRO DE CONSULTA, el cual dividí en 3 categorías: Básico, Intermedio y Experto para una mejor consulta.     &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4&gt;Eficiencia&lt;/h4&gt;&lt;div align="justify"&gt;Llegamos a nuestro cuarto punto: la eficiencia.    &lt;br /&gt;Un buen programador debe de llegar a soluciones de manera rápida y eficiente. Es lógico que varias veces se necesitan hacer pruebas para saber si un código funciona. Pero creo que todo buen programador debe de tener una guía de trabajo, un plan personal con el cual lleva a cabo todos sus desarrollos.     &lt;br /&gt;Este plan debe de tener pasos muy claros, para evitar otro tipo de confusiones. Este tema lo trate en: Guía para iniciar un proyecto.     &lt;br /&gt;Creo que estos cuatro puntos son suficiente para saber si un programador es bueno o malo. Pero recuerden que esta es mi opinión personal, de seguro deben de haber maneras mejores de evaluar, pero yo siempre lo hago por estos 4 puntos. &lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;Y tú ¿qué tan bueno eres? “ (&lt;a href="http://www.linkedin.com/profile?viewProfile=&amp;amp;key=44214520&amp;amp;authToken=VrjF&amp;amp;authType=name" target="_blank"&gt;Martín Bien&lt;/a&gt;)&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;a href="http://www.linkedin.com/groupAnswers?viewQuestionAndAnswers=&amp;amp;discussionID=9900631&amp;amp;gid=1923782&amp;amp;trk=EML_anet_qa_ttle-0Tt79xs2RVr6JBpnsJt7dBpSBA" target="_blank"&gt;Link Original do texto&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4868749140317132356-4877427133636579659?l=josehenriquebr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josehenriquebr.blogspot.com/feeds/4877427133636579659/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://josehenriquebr.blogspot.com/2009/11/eres-un-buen-programador.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/4877427133636579659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/4877427133636579659'/><link rel='alternate' type='text/html' href='http://josehenriquebr.blogspot.com/2009/11/eres-un-buen-programador.html' title='“¿Eres un buen programador?”'/><author><name>José Henrique</name><uri>http://www.blogger.com/profile/12308503095071072958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_ugC8V78ECCM/Smy5ZuCVndI/AAAAAAAAAcE/Ogv5ECN4uXM/S220/26-08-06_1541.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4868749140317132356.post-8260487233799006645</id><published>2009-11-24T21:35:00.001-02:00</published><updated>2009-11-25T10:34:18.919-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Comentários'/><title type='text'>"Como Reconocer A Los Buenos Programadores"</title><content type='html'>&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;&lt;div align="justify"&gt;Senhores eu li esse texto de um amigo cadastrado no LinkedIn, achei interessante divulgar o ponto de vista dele sobre como reconhecer um bom programador, poupei-me o trabalho de traduzi-lo, pois acredito que seja perfeitamente compreensivo para todos os termos utilizados. Acredito que muitos irão se identificar com todos&amp;nbsp; ou a grande parte dos pontos positivos citados pelo &lt;a href="http://www.linkedin.com/profile?viewProfile=&amp;amp;key=44214520&amp;amp;authToken=VrjF&amp;amp;authType=name" target="_blank"&gt;Martín Bien&lt;/a&gt;, se quiser conhecê-lo um pouco mais &lt;a href="http://www.linkedin.com/profile?viewProfile=&amp;amp;key=44214520&amp;amp;authToken=VrjF&amp;amp;authType=name" target="_blank"&gt;visite o perfil dele no LinkedIn&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;Coloquei o texto dele na íntegra logo abaixo.&lt;br /&gt;&lt;/div&gt;&lt;h4&gt;&amp;nbsp;&lt;/h4&gt;&lt;h4&gt;“Indicadores positivos:&lt;/h4&gt;&lt;br /&gt;le apasiona la tecnología     &lt;br /&gt;programa en su tiempo libre, es su hobby     &lt;br /&gt;hablará largo y tendido de cualquier tema técnico si se le pregunta     &lt;br /&gt;ha tenido proyectos personales significativos a través de los años     &lt;br /&gt;aprende nuevas tecnologías por si solo     &lt;br /&gt;tiene opiniones fuertes sobre cual tecnología es la mejor para varios usos     &lt;br /&gt;se siente incomodo trabajando con tecnologías que el crea no son "correctas"     &lt;br /&gt;puede mantener una buena conversación en cualquier variedad de temas, no tan solo aquellos que sean técnicos     &lt;br /&gt;empezó a programar mucho antes de entrar a la universidad o al trabajo     &lt;br /&gt;tiene proyectos personales grandes que no necesariamente aparecen en el résumé     &lt;br /&gt;conoce de una gran variedad de tecnologías (las cuales no necesariamente están en el résumé)     &lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Indicadores negativos: &lt;/h4&gt;&lt;br /&gt;Solo programa mientras está en el trabajo    &lt;br /&gt;No le gusta hablar de programación, aunque se le pregunte     &lt;br /&gt;Aprende nuevas tecnologías cuando la compañía lo envía a tomar cursos     &lt;br /&gt;Usa la tecnología que le indiquen, cualquier tecnología es "buena"     &lt;br /&gt;Empezó a programar en la universidad     &lt;br /&gt;Toda su experiencia en programación está en su résumé     &lt;br /&gt;Enfocado en uno o dos plataformas de programación (ejemplo: todo lo que tiene que ver con aplicaciones de java) sin ninguna experiencia fuera de esa plataforma. “&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;a href="http://www.linkedin.com/groupAnswers?viewQuestionAndAnswers=&amp;amp;gid=1923782&amp;amp;discussionID=9900697&amp;amp;sik=1259152220278&amp;amp;trk=ug_qa_q&amp;amp;goback=.ana_1923782_1259152220278_3_1" target="_blank"&gt;Link Original do texto&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4868749140317132356-8260487233799006645?l=josehenriquebr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josehenriquebr.blogspot.com/feeds/8260487233799006645/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://josehenriquebr.blogspot.com/2009/11/como-reconocer-los-buenos-programadores.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/8260487233799006645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/8260487233799006645'/><link rel='alternate' type='text/html' href='http://josehenriquebr.blogspot.com/2009/11/como-reconocer-los-buenos-programadores.html' title='&quot;Como Reconocer A Los Buenos Programadores&quot;'/><author><name>José Henrique</name><uri>http://www.blogger.com/profile/12308503095071072958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_ugC8V78ECCM/Smy5ZuCVndI/AAAAAAAAAcE/Ogv5ECN4uXM/S220/26-08-06_1541.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4868749140317132356.post-6817829667938846781</id><published>2009-11-05T21:20:00.007-02:00</published><updated>2009-11-06T11:36:06.033-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='firebird'/><category scheme='http://www.blogger.com/atom/ns#' term='Interfaces'/><category scheme='http://www.blogger.com/atom/ns#' term='Brasil'/><category scheme='http://www.blogger.com/atom/ns#' term='Orientação Object'/><title type='text'>Delphi Conference - Inscrições Abertas</title><content type='html'>&lt;div align="justify"&gt;Amigos, mais uma vez teremos o prazer de recebermos uma DELPHI CONFERENCE aqui em São Paulo, essa nova edição acontece em 24 de novembro no &lt;b&gt;&lt;a href="http://maps.google.com.br/maps?f=q&amp;amp;source=s_q&amp;amp;hl=pt-BR&amp;amp;geocode=&amp;amp;q=centro+fecomercio+de+eventos&amp;amp;sll=-23.561037,-46.651425&amp;amp;sspn=0.016837,0.032015&amp;amp;ie=UTF8&amp;amp;radius=1.01&amp;amp;filter=0&amp;amp;rq=1&amp;amp;ev=p&amp;amp;hq=centro+fecomercio+de+eventos&amp;amp;hnear=&amp;amp;ll=-23.550612,-46.650782&amp;amp;spn=0.015854,0.032015&amp;amp;t=h&amp;amp;z=15&amp;amp;iwloc=A" target="_blank"&gt;CENTRO FECOMERCIO DE EVENTOS‎&lt;/a&gt;.&lt;/b&gt;&amp;nbsp; Dentre os palestrantes estarão presentes &lt;b&gt;&lt;a href="http://www.andreanolanusse.com/blogpt/" target="_blank"&gt;Andreano Lanusse&lt;/a&gt;&lt;/b&gt;(não preciso apresentar né?),&lt;b&gt; &lt;a href="http://cc.embarcadero.com/Author/795118" target="_blank"&gt;Bruno Lichot&lt;/a&gt; &lt;/b&gt;( que participa de um ótimo grupo no Yahoo &lt;b&gt;&lt;a href="http://br.groups.yahoo.com/group/NDDV/" target="_blank"&gt;NDDV · N-Tier, DataSnap e Delphi na Veia!!!!&lt;/a&gt;&lt;/b&gt;),&amp;nbsp; &lt;b&gt;&lt;a href="http://www.devmedia.com.br/space.asp?id=205202" target="_blank"&gt;Manuel Edésio&lt;/a&gt;&lt;/b&gt;(um abraço ao amigo Edésio, quando quiser ir passear em Pindamonhangaba é só falar! ) e tantos outros que farão dessa reunião um espetáculo sem dúvida nenhuma.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;Os temas das palestras são diversos e serão apresentados simultaneamente em 3 salas e mais o auditório. Tenho certeza que você ficará ainda com jeito de “quero mais”, por perder um ou outro assunto, que você tanto quer ouvir, mas este estará sendo apresentado ao mesmo tempo na sala ao lado. Por isso mesmo indique esse evento aos seus amigos, leve-os, dividam-se para poderem aproveitar ao máximo o evento, discutindo e pondo em prática as dicas apresentadas, garanto que eles vão gostar da idéia. &lt;b&gt;&lt;a href="http://latam.embarcadero.com/br/delphiconference/agenda.html" target="_blank"&gt;Clique aqui e veja a agenda do evento!&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;Já sei eu não falei o quanto isso tudo vai custar né !? Bom o custo a princípio é R$0,00 (isso mesmo zero reais), mas para isso você deve fazer a inscrição e comparecer ao evento, pois caso contrário, haverá a cobrança de uma taxa de R$ 100,00. Nada mais justo cobrar pelo seu pouco caso ao fazer a inscrição e dar o bolo não acha?. &lt;b&gt;&lt;a href="http://latam.embarcadero.com/br/delphiconference/inscricao.html" target="_blank"&gt;Faça sua inscrição o quanto antes!&lt;/a&gt;&lt;/b&gt; Se quiser pode fazer o &lt;b&gt;&lt;a href="http://latam.embarcadero.com/br/delphiconference/formulario_inscricao.zip" target="_blank"&gt;download do formulário aqui&lt;/a&gt;&lt;/b&gt;. Daí você imprime o formulário, preenche, envia uma cópia digitalizada para &lt;a href="http://www.blogger.com/brazil.atendimento@borland.com" target="_blank"&gt;brazil.atendimento@borland.com&lt;/a&gt; e espera o email de confirmação que deverá chegar dentro de 48 horas. Ufa podia ser mais fácil né!.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;Ah! leia as letras miúdas da página de inscrição! Lá você verá que o estacionamento não está incluso ( Nossa! Fazem um evento gratuito e ainda tem gente que vai reclamar que não tem estacionamento de graça, quer apostar?).&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;a href="http://lh6.ggpht.com/_ugC8V78ECCM/SvQiZUPAX4I/AAAAAAAAA7w/QLpqBq_lq2s/s1600-h/%7B5b173c9a-425b-4594-af16-f7924e91fb8e%7D_convite_delphi_conferece_01%5B5%5D.jpg"&gt;&lt;img alt="{5b173c9a-425b-4594-af16-f7924e91fb8e}_convite_delphi_conferece_01" border="0" height="599" src="http://lh3.ggpht.com/_ugC8V78ECCM/SvQiZzjzwTI/AAAAAAAAA70/yZ5dt9L6ons/%7B5b173c9a-425b-4594-af16-f7924e91fb8e%7D_convite_delphi_conferece_01_thumb%5B3%5D.jpg?imgmax=800" style="border: 0px none; display: block; float: none; margin-left: auto; margin-right: auto;" title="{5b173c9a-425b-4594-af16-f7924e91fb8e}_convite_delphi_conferece_01" width="520" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4868749140317132356-6817829667938846781?l=josehenriquebr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josehenriquebr.blogspot.com/feeds/6817829667938846781/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://josehenriquebr.blogspot.com/2009/11/delphi-conference-inscricoes-abertas.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/6817829667938846781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/6817829667938846781'/><link rel='alternate' type='text/html' href='http://josehenriquebr.blogspot.com/2009/11/delphi-conference-inscricoes-abertas.html' title='Delphi Conference - Inscrições Abertas'/><author><name>José Henrique</name><uri>http://www.blogger.com/profile/12308503095071072958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_ugC8V78ECCM/Smy5ZuCVndI/AAAAAAAAAcE/Ogv5ECN4uXM/S220/26-08-06_1541.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_ugC8V78ECCM/SvQiZzjzwTI/AAAAAAAAA70/yZ5dt9L6ons/s72-c/%7B5b173c9a-425b-4594-af16-f7924e91fb8e%7D_convite_delphi_conferece_01_thumb%5B3%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4868749140317132356.post-5506562121733040285</id><published>2009-10-27T21:10:00.002-02:00</published><updated>2009-10-28T12:21:55.668-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rio de Janeiro'/><category scheme='http://www.blogger.com/atom/ns#' term='Flamengo'/><category scheme='http://www.blogger.com/atom/ns#' term='Comentários'/><title type='text'>Dia do torcedor flamenguista</title><content type='html'>&lt;div style="text-align: justify;"&gt;De autoria do vereador Jorge Mauro, o "Dia do Flamenguista" passou a vigorar desde 15 de outubro de 2007, passando assim a fazer parte do calendário oficial da cidade do Rio de Janeiro, motivo de orgulho e festa para o Cidadão Carioca. Naquela mesma semana, uma pesquisa divulgada pela CNT/Sensus, mostrou que o Flamengo é o time de futebol com maior torcida do País. O clube da Gávea lidera o ranking com 14,4% dos torcedores do Brasil. Logo atrás vem o Corinthians, com 10,5% dos votos, à frente de São Paulo, que em terceiro, tem 8%, e Palmeiras, em quarto, com 7,2% do total pesquisado.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;A data dedicada à torcida rubro-negra será comemorada todo dia 28 de outubro, mesmo dia do padroeiro do Flamengo, São Judas Tadeu.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://www.brechodocarioca.com/wp-content/uploads/2009/10/cristo-rubro-negro.jpg"&gt;&lt;img alt="cristo rubro negro" height="225" src="http://www.brechodocarioca.com/wp-content/uploads/2009/10/cristo-rubro-negro-300x225.jpg" style="display: block; float: none; margin-left: auto; margin-right: auto;" title="cristo rubro negro" width="300" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Como já dizia Nelson Rodrigues: “&lt;b&gt;Existem dois tipos de torcedores: os que já descobriram que são Flamengo e os que ainda não descobriram&lt;/b&gt;”.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4868749140317132356-5506562121733040285?l=josehenriquebr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josehenriquebr.blogspot.com/feeds/5506562121733040285/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://josehenriquebr.blogspot.com/2009/10/dia-do-torcedor-flamenguista.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/5506562121733040285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/5506562121733040285'/><link rel='alternate' type='text/html' href='http://josehenriquebr.blogspot.com/2009/10/dia-do-torcedor-flamenguista.html' title='Dia do torcedor flamenguista'/><author><name>José Henrique</name><uri>http://www.blogger.com/profile/12308503095071072958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_ugC8V78ECCM/Smy5ZuCVndI/AAAAAAAAAcE/Ogv5ECN4uXM/S220/26-08-06_1541.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4868749140317132356.post-7258829926258245717</id><published>2009-10-26T21:43:00.001-02:00</published><updated>2009-10-28T12:20:28.065-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rio de Janeiro'/><category scheme='http://www.blogger.com/atom/ns#' term='Comentários'/><title type='text'>Bondinho do Pão de Açúcar completa 97 anos</title><content type='html'>&lt;div style="text-align: justify;"&gt;Em 1912, há 97 anos atrás, 500 pessoas pagaram a quantia de 2.500 réis para fazer a viagem de inauguração do Bondinho do Pão de Açúcar. Para a época o evento representava a última palavra em tecnologia e tinha origem alemã, até então somente Suíça e Espanha possuíam tal atrativo turístico. Desde então 37 milhões de pessoas já fizeram essa mesma viagem, dentre elas, ilustres personagens como ex-presidente John Kennedy, o cientista Albert Einstein, o cantor britânico Sting, e a atriz Brokie Shield.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;As duas rotas disponíveis ligam a base do Morro da Babilônia ao Morro da Urca (distância de 600m onde a velocidade máxima chega a 21,6Km/h) e a outra liga o Morro da Urca ao Morro do Pão de Açúcar (distância de 850m, onde a velocidade máxima pode chegar a 36Km/h), essa segunda foi eleita umas das Sete Maravilhas do Rio de Janeiro anos atrás. O tempo de passeio não ultrapassa os 5 minutos em cada trajeto, o bondinho tem capacidade de levar em cada viagem aproximadamente 65 passageiros. &lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;As comemorações de hoje que incluem até mesmo uma fatia de bolo de aniversário para os visitantes que comparecerem para fazer o passeio e homenagearam dessa forma essa atração que é um cartão postal do Rio de Janeiro.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Apareçam por lá!&lt;br /&gt;&lt;br /&gt;Site Oficial do Bondinho:&lt;br /&gt;&lt;a href="http://www.bondinho.com.br/"&gt;Bondinho Pão de Açúcar&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Fotos do bondinho:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ugC8V78ECCM/SucwWPEUn6I/AAAAAAAAA60/vU-D9lEf244/s1600-h/galeria01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_ugC8V78ECCM/SucwWPEUn6I/AAAAAAAAA60/vU-D9lEf244/s320/galeria01.jpg" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_ugC8V78ECCM/Sucw0St7bFI/AAAAAAAAA68/sBN-OiaeSOo/s1600-h/galeria03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_ugC8V78ECCM/Sucw0St7bFI/AAAAAAAAA68/sBN-OiaeSOo/s320/galeria03.jpg" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_ugC8V78ECCM/Sucw5pSdK6I/AAAAAAAAA7E/66lHtnZyV0Y/s1600-h/foto1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_ugC8V78ECCM/Sucw5pSdK6I/AAAAAAAAA7E/66lHtnZyV0Y/s320/foto1.jpg" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_ugC8V78ECCM/Sucw9AJoeYI/AAAAAAAAA7M/KVTamGkQnl0/s1600-h/foto4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_ugC8V78ECCM/Sucw9AJoeYI/AAAAAAAAA7M/KVTamGkQnl0/s320/foto4.jpg" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_ugC8V78ECCM/SucxAyS_EqI/AAAAAAAAA7U/0zehvpnC590/s1600-h/foto01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_ugC8V78ECCM/SucxAyS_EqI/AAAAAAAAA7U/0zehvpnC590/s320/foto01.jpg" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_ugC8V78ECCM/SucxDekjYAI/AAAAAAAAA7c/011R6idQMZA/s1600-h/foto04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_ugC8V78ECCM/SucxDekjYAI/AAAAAAAAA7c/011R6idQMZA/s320/foto04.jpg" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_ugC8V78ECCM/SucxGDOWN2I/AAAAAAAAA7k/3MPiEwQsGYo/s1600-h/foto06.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_ugC8V78ECCM/SucxGDOWN2I/AAAAAAAAA7k/3MPiEwQsGYo/s320/foto06.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4868749140317132356-7258829926258245717?l=josehenriquebr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josehenriquebr.blogspot.com/feeds/7258829926258245717/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://josehenriquebr.blogspot.com/2009/10/bondinho-do-pao-de-acucar-completa-97.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/7258829926258245717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/7258829926258245717'/><link rel='alternate' type='text/html' href='http://josehenriquebr.blogspot.com/2009/10/bondinho-do-pao-de-acucar-completa-97.html' title='Bondinho do Pão de Açúcar completa 97 anos'/><author><name>José Henrique</name><uri>http://www.blogger.com/profile/12308503095071072958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_ugC8V78ECCM/Smy5ZuCVndI/AAAAAAAAAcE/Ogv5ECN4uXM/S220/26-08-06_1541.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ugC8V78ECCM/SucwWPEUn6I/AAAAAAAAA60/vU-D9lEf244/s72-c/galeria01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4868749140317132356.post-7180829578234210403</id><published>2009-10-22T21:20:00.003-02:00</published><updated>2009-10-27T09:15:28.700-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Componentes'/><category scheme='http://www.blogger.com/atom/ns#' term='Dica Rápida'/><title type='text'>Marcando o Filho e o Pai ( TJvCheckTreeView )</title><content type='html'>&lt;div align="justify"&gt;Amigos um companheiro de programação fez essa pergunta no &lt;b&gt;Grupo Delphi-BR &lt;/b&gt;(grupo dedicado a Delphi do Yahoo, muito bom! Eu recomendo!), então dei uma fuçada, pois utilizo a biblioteca do Jedi ( também recomendo) e  como já utilizei esse componente ( nossa de novo eu recomendo!)&amp;nbsp; acabei achando uma solução para o caso. A pergunta dele era a seguinte:&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;span style="color: green;"&gt;“Colegas,        &lt;br /&gt;Utilizando um JvCheckTreeView, gostaria de, ao checar um item filho, também         &lt;br /&gt;checar o item pai. Alguém sabe como fazer?         &lt;br /&gt;Grato”&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;E a solução encontrada foi, no evento &lt;b&gt;JvCheckTreeView1Click &lt;/b&gt;adicionar o código abaixo, lógico que a partir daqui você poderá refinar a rotina, experimente implementar que ao retirar a marcação de todos os filhos, a rotina retire também a marcação do item pai. &lt;br /&gt;&lt;/div&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: andale mono,lucida console,monaco,fixed,monospace; font-size: 12px; height: 170px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;&lt;br /&gt;procedure TForm23.JvCheckTreeView1Click(Sender: TObject);&lt;br /&gt;var&lt;br /&gt;  Node : TJvTreeNode;&lt;br /&gt;begin&lt;br /&gt;  if TJvTreeNode(JvCheckTreeView1.Selected).Checked then&lt;br /&gt;  begin&lt;br /&gt;    Node := TJvTreeNode(JvCheckTreeView1.Selected.Parent);&lt;br /&gt;    Node.Checked := True;&lt;br /&gt;  end;&lt;br /&gt;end;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Espero mais uma vez estar ajudando!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Boa sorte e abs!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4868749140317132356-7180829578234210403?l=josehenriquebr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josehenriquebr.blogspot.com/feeds/7180829578234210403/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://josehenriquebr.blogspot.com/2009/10/marcando-o-filho-e-o-pai.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/7180829578234210403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/7180829578234210403'/><link rel='alternate' type='text/html' href='http://josehenriquebr.blogspot.com/2009/10/marcando-o-filho-e-o-pai.html' title='Marcando o Filho e o Pai ( TJvCheckTreeView )'/><author><name>José Henrique</name><uri>http://www.blogger.com/profile/12308503095071072958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_ugC8V78ECCM/Smy5ZuCVndI/AAAAAAAAAcE/Ogv5ECN4uXM/S220/26-08-06_1541.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4868749140317132356.post-7501698559072426123</id><published>2009-10-20T22:15:00.006-02:00</published><updated>2009-12-23T22:01:30.138-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Interfaces'/><category scheme='http://www.blogger.com/atom/ns#' term='Orientação Object'/><category scheme='http://www.blogger.com/atom/ns#' term='Classes'/><title type='text'>Desmitificando as Interfaces em Delphi</title><content type='html'>&lt;div align="justify"&gt;Amigos quero mostrar para vocês o que é, e como podemos utilizar as interfaces no Delphi de forma que facilite nossa difícil vida de programador.    &lt;br /&gt;&lt;/div&gt;  &lt;div align="justify"&gt;   &lt;br /&gt;&lt;/div&gt;  &lt;h4&gt;O que é interface?&lt;/h4&gt;  &lt;div align="justify"&gt;As interfaces foram introduzidas na linguagem Object Pascal na versão 3 do Dephi, passando a partir desse momento a ser trabalhada de forma nativa. Vocês não fazem idéia de quão significativo foi isso! Então alguns irão perguntar:&amp;#160; &amp;quot;Mas como se vivia sem as interfaces antes disso ?&amp;quot; E eu respondo: Criando classes que não eram implementadas, mas que declaravam seus métodos para serem implementados pelas classes descendentes. Claro que você já esbarrou com um código desses, mas não deu atenção. Veja a declaração abaixo e me diga se você já não viu e talvez implementou algo parecido.   &lt;br /&gt;&lt;/div&gt;  &lt;pre style="border-bottom: rgb(153,153,153) 1px dashed; border-left: rgb(153,153,153) 1px dashed; padding-bottom: 5px; line-height: 14px; background-color: #eeeeee; padding-left: 5px; width: 100%; padding-right: 5px; font-family: andale mono,lucida console,monaco,fixed,monospace; height: 118px; color: black; font-size: 12px; overflow: auto; border-top: rgb(153,153,153) 1px dashed; border-right: rgb(153,153,153) 1px dashed; padding-top: 5px"&gt;&lt;code&gt;&lt;br /&gt;Type &lt;br /&gt;TBrasileiro = class&lt;br /&gt;  public &lt;br /&gt;    function Trabalhar:Boolean; virtual; abstract;&lt;br /&gt;    function PagarImpostos:Boolean; virtual; abstract;&lt;br /&gt;  end;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;O código acima define os métodos que a classe descendente deverá implementar. Podemos dessa maneira facilmente definir a nossa interface com base nos requisitos acima. &lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="border-bottom: rgb(153,153,153) 1px dashed; border-left: rgb(153,153,153) 1px dashed; padding-bottom: 5px; line-height: 14px; background-color: #eeeeee; padding-left: 5px; width: 100%; padding-right: 5px; font-family: andale mono,lucida console,monaco,fixed,monospace; height: 126px; color: black; font-size: 12px; overflow: auto; border-top: rgb(153,153,153) 1px dashed; border-right: rgb(153,153,153) 1px dashed; padding-top: 5px"&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;Type &lt;br /&gt;  IBrasileiro = Interface&lt;br /&gt;  ['{31A22D9F-E857-4892-9D17-79FBE9AA7237}']&lt;br /&gt;    function Trabalhar:Boolean;&lt;br /&gt;    function PagarImpostos:Boolean;&lt;br /&gt;  end;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Dessa maneira podemos dizer que as interfaces são as &amp;quot;normas contratuais&amp;quot; que regem como nossa classe será definida e como deverá ser utilizada, tanto do lado do implementador como do lado do cliente. As classes podem implementar diversas interfaces, isso possibilita que uma classe &amp;quot;simule&amp;quot; a herança múltipla no Object Pascal.&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Façamos agora duas observações quanto ao código acima!&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Primeiramente vocês vão reparar que temos uma Sting enorme denominada de Globally Unique Identifier (GUID), no exemplo temos&amp;#160; ['{31A22D9F-E857-4892-9D17-79FBE9AA7237}']&amp;#160; ), essa string pode ser gerada automaticamente no IDE do Delphi utilizando as teclas Ctrl+Shift+G, e servirá para identificar de forma única a nossa interface. Por enquanto é tudo que precisam saber sobre essa numeração.&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Posteriormente você verá que não foi utilizado especificadores de visibilidade ( private, protected, public, lembra deles ?), isso porque todos os métodos declarados numa interface são públicos por default.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;De onde vem ?&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Sei que você já sabe disso, mas vou comentar mesmo assim: Todas as classes em Delphi descendem de TObject, isso de maneira implícita, da mesma forma as interfaces na linguagem object pascal descendem de forma implícita de &lt;b&gt;IInterface&lt;/b&gt;, podemos ver sua definição na Unit System. Você verá a declaração de &lt;b&gt;TInterfacedObject, &lt;/b&gt;falarei dessa classe mais a frente quando aparecer no nosso exemplo.&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="border-bottom: rgb(153,153,153) 1px dashed; border-left: rgb(153,153,153) 1px dashed; padding-bottom: 5px; line-height: 14px; background-color: #eeeeee; padding-left: 5px; width: 100%; padding-right: 5px; font-family: andale mono,lucida console,monaco,fixed,monospace; height: 590px; color: black; font-size: 12px; overflow: auto; border-top: rgb(153,153,153) 1px dashed; border-right: rgb(153,153,153) 1px dashed; padding-top: 5px"&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;type&lt;br /&gt;  IInterface = interface&lt;br /&gt;  ['{00000000-0000-0000-C000-000000000046}']&lt;br /&gt;    function QueryInterface(const IID: TGUID; &lt;br /&gt;      out Obj): HResult; stdcall;&lt;br /&gt;    function _AddRef: Integer; stdcall;&lt;br /&gt;    function _Release: Integer; stdcall;&lt;br /&gt;  end;&lt;br /&gt;&lt;br /&gt;  IUnknown = IInterface;&lt;br /&gt;  {$M+}&lt;br /&gt;    IInvokable = interface(IInterface)&lt;br /&gt;  end;&lt;br /&gt;  {$M-}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: teal; font-size: xx-small"&gt;&lt;i&gt;&lt;br /&gt;{ TInterfacedObject provides a threadsafe default &lt;br /&gt;implementation of IInterface.You should use TInterfaceObject &lt;br /&gt;as the base class of objects implementing interfaces.; } &lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;  TInterfacedObject = class(TObject, IInterface)&lt;br /&gt;    protected&lt;br /&gt;      FRefCount: Integer;&lt;br /&gt;      function QueryInterface(const IID: TGUID; &lt;br /&gt;        out Obj): HResult; stdcall;&lt;br /&gt;      function _AddRef: Integer; stdcall;&lt;br /&gt;      function _Release: Integer; stdcall;&lt;br /&gt;    public&lt;br /&gt;      procedure AfterConstruction; override;&lt;br /&gt;      procedure BeforeDestruction; override;&lt;br /&gt;      class function NewInstance: TObject; override;&lt;br /&gt;      property RefCount: Integer read FRefCount;&lt;br /&gt;  end;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Como é a vida com as interfaces?&lt;/h4&gt;&lt;br /&gt;Bom agora que você já sabe quando as interfaces ficaram disponíveis no Delphi, como era a vida antes dela, vamos ver como é a vida com elas. Vamos implementar duas interfaces simples, observe o&amp;#160; exemplo abaixo&lt;span style="font-size: x-small"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="border-bottom: rgb(153,153,153) 1px dashed; border-left: rgb(153,153,153) 1px dashed; padding-bottom: 5px; line-height: 14px; background-color: #eeeeee; padding-left: 5px; width: 100%; padding-right: 5px; font-family: andale mono,lucida console,monaco,fixed,monospace; height: 250px; color: black; font-size: 12px; overflow: auto; border-top: rgb(153,153,153) 1px dashed; border-right: rgb(153,153,153) 1px dashed; padding-top: 5px"&gt;&lt;code&gt;&lt;br /&gt;  ITrabalhador = Interface&lt;br /&gt;  ['{31A22D9F-E857-4892-9D17-79FBE9AA7237}']&lt;br /&gt;    function Trabalhar:Boolean;&lt;br /&gt;    function PagarImpostos:Boolean;&lt;br /&gt;  end;&lt;br /&gt;&lt;br /&gt;  ISerHumano = interface&lt;br /&gt;  ['{29D48E8C-EFF0-461C-9B9E-D5D7478E5B87}']&lt;br /&gt;    function AndarEreto:Boolean;&lt;br /&gt;    function Falar:Boolean;&lt;br /&gt;    procedure Ouvir;&lt;br /&gt;    procedure Correr;&lt;br /&gt;  end;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Basicamente podemos declarar nossa classe como:&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="border-bottom: rgb(153,153,153) 1px dashed; border-left: rgb(153,153,153) 1px dashed; padding-bottom: 5px; line-height: 14px; background-color: #eeeeee; padding-left: 5px; width: 100%; padding-right: 5px; font-family: andale mono,lucida console,monaco,fixed,monospace; height: 67px; color: black; font-size: 12px; overflow: auto; border-top: rgb(153,153,153) 1px dashed; border-right: rgb(153,153,153) 1px dashed; padding-top: 5px"&gt;&lt;code&gt;&lt;br /&gt;  TBrasileiro = class(TInterfacedObject, ITrabalhador,&lt;br /&gt;    ISerHumano);&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Da maneira como está declarada a nossa classe acima, nós receberemos um código de erro do IDE, pois quando definimos que uma classe implementa uma interface, a classe deve contemplar todos os seus métodos implementando-os, se um ou mais de um não estiverem implementados receberemos um errro como esses abaixo:&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;  &lt;div align="left"&gt;&lt;span style="font-family: microsoft sans serif; color: teal; font-size: xx-small"&gt;[Pascal Error] Unit22.pas(33): E2003 Undeclared identifier: 'AndarEreto' &lt;br /&gt;      &lt;br /&gt;[Pascal Error] Unit22.pas(33): E2003 Undeclared identifier: 'Falar' &lt;br /&gt;&lt;br /&gt;      &lt;br /&gt;[Pascal Error] Unit22.pas(33): E2003 Undeclared identifier: 'Ouvir' &lt;br /&gt;&lt;br /&gt;      &lt;br /&gt;[Pascal Error] Unit22.pas(33): E2003 Undeclared identifier: 'Correr' &lt;br /&gt;&lt;br /&gt;      &lt;br /&gt;[Pascal Error] Unit22.pas(33): E2003 Undeclared identifier: 'Trabalhar' &lt;br /&gt;&lt;br /&gt;      &lt;br /&gt;[Pascal Error] Unit22.pas(33): E2003 Undeclared identifier: 'PagarImpostos'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Sua implementação é obrigatória nas classes que utilizam as interfaces, mas há uma maneira de postergar essa implementação na qual falarei mais abaixo. Você com certeza notou que nossa classe descende de &lt;b&gt;TInterfacedObject, &lt;/b&gt;e o motivo é simples, essa classe já implementa de forma segura os métodos obrigatórios definidos em &lt;b&gt;IInterface, &lt;/b&gt;ela descende de &lt;b&gt;TObject&lt;/b&gt; e facilita o nosso trabalho para controlar o uso de interfaces. É&amp;#160; extremamente recomendado o seu uso!&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Nossa classe utilizando interfaces!&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Para termos a correta declaração para a classe acima devemos ter um código conforme este:&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="border-bottom: rgb(153,153,153) 1px dashed; border-left: rgb(153,153,153) 1px dashed; padding-bottom: 5px; line-height: 14px; background-color: #eeeeee; padding-left: 5px; width: 100%; padding-right: 5px; font-family: andale mono,lucida console,monaco,fixed,monospace; height: 250px; color: black; font-size: 12px; overflow: auto; border-top: rgb(153,153,153) 1px dashed; border-right: rgb(153,153,153) 1px dashed; padding-top: 5px"&gt;&lt;code&gt;&lt;br /&gt;  TBrasileiro = class(TInterfacedObject, ITrabalhador,&lt;br /&gt;    ISerHumano)&lt;br /&gt;    public&lt;br /&gt;      // métodos da interface   ITrabalhador&lt;br /&gt;      function Trabalhar:Boolean;&lt;br /&gt;      function PagarImpostos:Boolean;&lt;br /&gt;      // métodos da interface   ISerHumano&lt;br /&gt;       function AndarEreto:Boolean;&lt;br /&gt;      function Falar:Boolean;&lt;br /&gt;      procedure Ouvir;&lt;br /&gt;      procedure Correr;&lt;br /&gt;  end;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Dessa forma estamos dizendo que a classe TBrasileiro descende de &lt;b&gt;TInterfacedObject &lt;/b&gt;e que implementa os métodos “definidos” pelas interfaces &lt;b&gt;ITrabalhador&lt;/b&gt; e &lt;b&gt;ISerHumano.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Postergando a implementação da interface:&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Na realidade o que vamos fazer é instruir ao compilador para que ele procure pela implementação da interface numa classe que está representada por uma propriedade em nossa classe TBrasileiro, vamos então ver o código: &lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="border-bottom: rgb(153,153,153) 1px dashed; border-left: rgb(153,153,153) 1px dashed; padding-bottom: 5px; line-height: 14px; background-color: #eeeeee; padding-left: 5px; width: 100%; padding-right: 5px; font-family: andale mono,lucida console,monaco,fixed,monospace; height: 250px; color: black; font-size: 12px; overflow: auto; border-top: rgb(153,153,153) 1px dashed; border-right: rgb(153,153,153) 1px dashed; padding-top: 5px"&gt;&lt;code&gt;&lt;br /&gt;  TBrasileiro = class(TInterfacedObject, ITrabalhador,&lt;br /&gt;    ISerHumano)&lt;br /&gt;    public&lt;br /&gt;      // métodos da interface   ISerHumano&lt;br /&gt;      function AndarEreto:Boolean;&lt;br /&gt;      function Falar:Boolean;&lt;br /&gt;      procedure Ouvir;&lt;br /&gt;      procedure Correr;&lt;br /&gt;      // postergando a implementacao da interface ITrabalhador&lt;br /&gt;      function GetTrabalhador:ITrabalhador;&lt;br /&gt;      property Trabalhador:ITrabalhador &lt;br /&gt;      read GetTrabalhador Implements   ITrabalhador;&lt;br /&gt;  end;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Agora podemos receber na nossa propriedade Trabalhador, qualquer classe que implemente a interface &lt;b&gt;ITrabalhador. &lt;/b&gt;Dessa forma deixamos a implementação desses métodos para outra classe compatível, que poderá trabalhar sendo chamada sob demanda aliviando assim o peso de uma instanciação desnecessária. &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Implementando a interface ITrabalhador:&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="border-bottom: rgb(153,153,153) 1px dashed; border-left: rgb(153,153,153) 1px dashed; padding-bottom: 5px; line-height: 14px; background-color: #eeeeee; padding-left: 5px; width: 100%; padding-right: 5px; font-family: andale mono,lucida console,monaco,fixed,monospace; height: 204px; color: black; font-size: 12px; overflow: auto; border-top: rgb(153,153,153) 1px dashed; border-right: rgb(153,153,153) 1px dashed; padding-top: 5px"&gt;&lt;code&gt;&lt;br /&gt;  TProgramador = class(TInterfacedObject, ITrabalhador)&lt;br /&gt;    public&lt;br /&gt;      // métodos da interface ITrabalhador&lt;br /&gt;      function Trabalhar:Boolean;&lt;br /&gt;      function PagarImpostos:Boolean;&lt;br /&gt;      // métodos dessa classe&lt;br /&gt;      procedure Dormir;&lt;br /&gt;      procedure Acordar;&lt;br /&gt;      procedure Comer;&lt;br /&gt;      procedure SurfarNaNet;&lt;br /&gt;      procedure Programar;&lt;br /&gt;  end;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;No nosso método &lt;b&gt;GetTrabalhador&lt;/b&gt; podemos ter a chamada para uma instância da classe &lt;b&gt;TProgramador,&lt;/b&gt; pois existe a compatibilidade gerada pela interface. &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="border-bottom: rgb(153,153,153) 1px dashed; border-left: rgb(153,153,153) 1px dashed; padding-bottom: 5px; line-height: 14px; background-color: #eeeeee; padding-left: 5px; width: 100%; padding-right: 5px; font-family: andale mono,lucida console,monaco,fixed,monospace; height: 104px; color: black; font-size: 12px; overflow: auto; border-top: rgb(153,153,153) 1px dashed; border-right: rgb(153,153,153) 1px dashed; padding-top: 5px"&gt;&lt;code&gt;&lt;br /&gt;function TBrasileiro.GetTrabalhador: ITrabalhador;&lt;br /&gt;begin&lt;br /&gt;  Result := (TProgramador.Create) as ITrabalhador;&lt;br /&gt;end;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Outra pecuriaridade importante!&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Ao utilizarmos interfaces nas nossas aplicações, devemos reparar que as interfaces são sempre inicializadas com o valor &lt;b&gt;Nil. &lt;/b&gt;E são liberadas quando estão fora do escopo ou recebem novamente um valor Nil. Já sei o que você está pensando, se elas iniciam com Nil, e fora do escopo ou quando recebem nil são liberadas então posso utilizar interfaces para referências de objetos diminuindo os meus memory leaks! Isso mesmo podemos utilizar as interfaces para trabalhar nossos objetos, tornando mais segura a nossa aplicação.&amp;#160; Mas … para tanto as interfaces que implementarmos devem descender obrigatoriamente em algum momento de &lt;b&gt;TInterfacedObject,&amp;#160; &lt;/b&gt;eu falei que é recomendado o seu uso, lembra? A particularidade de &lt;b&gt;TInterfacedObject &lt;/b&gt;ser autosuficiente deve-se ao fato de que em sua implementação do método &lt;b&gt;_Release&lt;/b&gt;&amp;#160; e chamado o método &lt;b&gt;Destroy &lt;/b&gt;quando o &lt;b&gt;FRefCount&lt;/b&gt; chega a 0 (zero), você pode conferir no código na unit &lt;b&gt;System. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Conclusão.&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;O uso de interfaces no projeto pode melhorar e muito a reusabilidade e flexibilidade de código no mesmo, seu uso nos obriga a ter uma estruturação mais refinada, forçando-nos a sermos mais organizados. Nos permite ainda aplicar o conceito de upCast ( Converter um objeto de um tipo mais especializado para um tipo mais genérico) e também simular a herança múltipla no Object Pascal, aumenta o desaclopamento de classes. Enfim você deve começar a utilizar esse conceito e assim daqui a pouco ele estará correndo nas suas veias e quando for escrever sua classe já irá querer extrair dela uma ou duas interfaces para que sejam amplamente utilizadas no seu projeto.&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4868749140317132356-7501698559072426123?l=josehenriquebr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josehenriquebr.blogspot.com/feeds/7501698559072426123/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://josehenriquebr.blogspot.com/2009/10/desmitificando-as-interfaces-em-delphi.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/7501698559072426123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/7501698559072426123'/><link rel='alternate' type='text/html' href='http://josehenriquebr.blogspot.com/2009/10/desmitificando-as-interfaces-em-delphi.html' title='Desmitificando as Interfaces em Delphi'/><author><name>José Henrique</name><uri>http://www.blogger.com/profile/12308503095071072958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_ugC8V78ECCM/Smy5ZuCVndI/AAAAAAAAAcE/Ogv5ECN4uXM/S220/26-08-06_1541.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4868749140317132356.post-145432284186835025</id><published>2009-10-02T14:37:00.004-03:00</published><updated>2009-10-02T16:48:01.973-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rio de Janeiro'/><category scheme='http://www.blogger.com/atom/ns#' term='Brasil'/><category scheme='http://www.blogger.com/atom/ns#' term='Olimpíadas'/><title type='text'>Rio de Janeiro é eleita a sede das Olimpíadas de 2016</title><content type='html'>&lt;div style="margin: 0px auto 10px; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_ugC8V78ECCM/SsY6UI6fguI/AAAAAAAAA5o/iz7JiW6vOY4/s1600-h/bandeira.jpg"&gt;&lt;img alt="" border="0" src="http://4.bp.blogspot.com/_ugC8V78ECCM/SsY6UI6fguI/AAAAAAAAA5o/iz7JiW6vOY4/s400/bandeira.jpg" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;"Rio de Janeiro acaba de ser escolhida a sede das Olimpiadas de 2016. O anúncio oficial foi feito agora há pouco, em Copenhague, onde se reuniu o Comitê Olímpico Internacional (COI) para a realização a eleição o que decidiria a cidade-sede dos Jogos. A capital carioca disputava na última fase votação com a espanhola Madri. O anúncio oficial foi feito às 13h30."&lt;br /&gt;leia na integra em : &lt;a href="http://vai.la/izK"&gt;Rio de Janeiro é eleita a sede das Olimpiadas de 2016&lt;/a&gt;&lt;br /&gt;&lt;div style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4868749140317132356-145432284186835025?l=josehenriquebr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josehenriquebr.blogspot.com/feeds/145432284186835025/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://josehenriquebr.blogspot.com/2009/10/rio-de-janeiro-e-eleita-sede-das.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/145432284186835025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/145432284186835025'/><link rel='alternate' type='text/html' href='http://josehenriquebr.blogspot.com/2009/10/rio-de-janeiro-e-eleita-sede-das.html' title='Rio de Janeiro é eleita a sede das Olimpíadas de 2016'/><author><name>José Henrique</name><uri>http://www.blogger.com/profile/12308503095071072958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_ugC8V78ECCM/Smy5ZuCVndI/AAAAAAAAAcE/Ogv5ECN4uXM/S220/26-08-06_1541.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ugC8V78ECCM/SsY6UI6fguI/AAAAAAAAA5o/iz7JiW6vOY4/s72-c/bandeira.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4868749140317132356.post-7014451694838302250</id><published>2009-09-14T21:29:00.003-03:00</published><updated>2009-09-15T11:09:36.140-03:00</updated><title type='text'>Meu Amor Vai Bem, Meu Mundo Vai Mal</title><content type='html'>&lt;div style="text-align: justify;"&gt;Para aqueles que gostam de poesia e cultura, de momentos de leitura agradáveis, aí vai uma dica, o livro que meu irmão lançou, está disponível para download gratuitamente.&lt;br /&gt;Na página dele vocês terão a oportunidade de saber mais sobre o livro, os motivos que levaram meu irmão a colocá-lo gratuitamente na internet, vocês vão gostar tenho certeza. A capa do mesmo está no banner ao lado, confira!&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Não deixem de visitar e quem fizer o download, por favor comentem pelo menos que fizeram o download&amp;nbsp; e que vão apreciar a obra.&lt;/div&gt;&lt;br /&gt;Obrigado à todos !&lt;br /&gt;&lt;br /&gt;Clique no link  para baixar o  livro &lt;br /&gt;&lt;a href="http://www.brechodocarioca.com/sem-categoria/lancamento-do-meu-livro-de-poesias-pra-download-gratis/"&gt;Livro de poesia grátis&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4868749140317132356-7014451694838302250?l=josehenriquebr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.brechodocarioca.com/sem-categoria/lancamento-do-meu-livro-de-poesias-pra-download-gratis/' title='Meu Amor Vai Bem, Meu Mundo Vai Mal'/><link rel='replies' type='application/atom+xml' href='http://josehenriquebr.blogspot.com/feeds/7014451694838302250/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://josehenriquebr.blogspot.com/2009/09/poesia-e-cultura-de-graca-vem-do-povo.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/7014451694838302250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/7014451694838302250'/><link rel='alternate' type='text/html' href='http://josehenriquebr.blogspot.com/2009/09/poesia-e-cultura-de-graca-vem-do-povo.html' title='Meu Amor Vai Bem, Meu Mundo Vai Mal'/><author><name>José Henrique</name><uri>http://www.blogger.com/profile/12308503095071072958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_ugC8V78ECCM/Smy5ZuCVndI/AAAAAAAAAcE/Ogv5ECN4uXM/S220/26-08-06_1541.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4868749140317132356.post-7107054417295397220</id><published>2009-09-09T22:00:00.021-03:00</published><updated>2009-10-20T16:34:14.593-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Classes'/><title type='text'>Criando uma instância de classe à partir do seu nome (string)</title><content type='html'>&lt;div style="text-align: justify;"&gt;Amigos estou trazendo um exemplo de como criar uma classe à partir de seu nome ( String ),&amp;nbsp; eu já vi alguns exemplos de como fazer isso utilizando forms, mas para classes normais eu ainda não tinha visto nenhum exemplo, então segue abaixo a solução que eu criei.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1- Primeiro crie um form simples como o da figura abaixo tendo 3 edits , 1 bitbtn e 2 labels;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;2- Renomeie os componentes conforme o exemplo, por favor.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;3- É só clicar no botão e acompanhar ( debug ) para ver o que é feito no código, o efeito de tela nada mais é que o preenchimento dos dois edits de baixo com o valor das propriedades setadas no código.&lt;br /&gt;&lt;/div&gt;4- No meu caso a primeira classe eu fiz descendente de TDataModule por uma necessidade minha, mas na realidade ela deve ser descendente de TPersistent&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_ugC8V78ECCM/SqkCtLXcW-I/AAAAAAAAAdg/wDXY0yIx5Tc/s1600-h/CriarClasse.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_ugC8V78ECCM/SqkCtLXcW-I/AAAAAAAAAdg/wDXY0yIx5Tc/s320/CriarClasse.PNG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Imagem do form&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: andale mono,lucida console,monaco,fixed,monospace; font-size: 12px; height: 700px; line-height: 14px; overflow: auto; padding: 5px; width: 90%;"&gt;&lt;code&gt;&lt;br /&gt;unit UCriarClasseString;&lt;br /&gt;&lt;br /&gt;interface&lt;br /&gt;&lt;br /&gt;uses&lt;br /&gt;  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,&lt;br /&gt;  Forms, Dialogs, AdvSmoothDock, jpeg, ExtCtrls, StdCtrls, Buttons;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;type&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  TminhaClasse = class (TDataModule)&lt;br /&gt;  private&lt;br /&gt;    FPrimeiraClasse: String;&lt;br /&gt;    procedure SetPrimeiraClasse(const Value: String);&lt;br /&gt;  published&lt;br /&gt;    property PrimeiraClasse:String read FPrimeiraClasse &lt;br /&gt;    write SetPrimeiraClasse;&lt;br /&gt;  end;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  TMinhaSegundaClasse = class(TminhaClasse)&lt;br /&gt;  private&lt;br /&gt;    FSegundaClasse: STring;&lt;br /&gt;    procedure SetSegundaClasse(const Value: STring);&lt;br /&gt;  published&lt;br /&gt;    property SegundaClasse:STring read FSegundaClasse &lt;br /&gt;    write SetSegundaClasse;&lt;br /&gt;  end;&lt;br /&gt;&lt;br /&gt;  TfrmCriarClasseString = class(TForm)&lt;br /&gt;    btClasse: TBitBtn;&lt;br /&gt;    Edit1: TEdit;&lt;br /&gt;    Edit2: TEdit;&lt;br /&gt;    Edit3: TEdit;&lt;br /&gt;    Label1: TLabel;&lt;br /&gt;    Label2: TLabel;&lt;br /&gt;    procedure btClasseClick(Sender: TObject);&lt;br /&gt;  private&lt;br /&gt;    { Private declarations }&lt;br /&gt;    procedure InstanceClasse(AClassName: String);&lt;br /&gt;  public&lt;br /&gt;    { Public declarations }&lt;br /&gt;  end;&lt;br /&gt;&lt;br /&gt;var&lt;br /&gt;  frmCriarClasseString: TfrmCriarClasseString;&lt;br /&gt;&lt;br /&gt;implementation&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;{$R *.dfm}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;procedure TfrmCriarClasseString.btClasseClick(Sender: TObject);&lt;br /&gt;begin&lt;br /&gt;  InstanceClasse(Edit1.Text);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure TfrmCriarClasseString.InstanceClasse&lt;br /&gt;(AClassName: String);&lt;br /&gt;var&lt;br /&gt;  lObj: TMinhaSegundaClasse;&lt;br /&gt;  Pers: TPersistentClass;&lt;br /&gt;begin&lt;br /&gt;  Pers := GetClass(AClassName);&lt;br /&gt;  lObj := (Pers.Create) as TMinhaSegundaClasse;&lt;br /&gt;&lt;br /&gt;  if Assigned(lObj) then&lt;br /&gt;  try&lt;br /&gt;    lObj.FPrimeiraClasse := 'Propriedade da Classe ancestral';&lt;br /&gt;    lObj.FSegundaClasse  := 'Propriedade da Segunda Classe';&lt;br /&gt;    Edit2.Text :=lObj.FPrimeiraClasse;&lt;br /&gt;    Edit3.Text :=lObj.FSegundaClasse;&lt;br /&gt;  finally&lt;br /&gt;    lObj.Free;&lt;br /&gt;  end&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;{ TminhaClasse }&lt;br /&gt;&lt;br /&gt;procedure TminhaClasse.SetPrimeiraClasse(const Value: String);&lt;br /&gt;begin&lt;br /&gt;  FPrimeiraClasse := Value;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;{ TMinhaSegundaClasse }&lt;br /&gt;procedure TMinhaSegundaClasse.SetSegundaClasse(const &lt;br /&gt;Value: STring);&lt;br /&gt;begin&lt;br /&gt;  FSegundaClasse := Value;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;initialization&lt;br /&gt;  RegisterClasses([TminhaClasse, TMinhaSegundaClasse]);&lt;br /&gt;&lt;br /&gt;end.&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Link para os arquivos:&lt;br /&gt;&lt;a href="http://josehenriquebr.blogspot.com/2009/09/criando-uma-instancia-de-classe-partir.html"&gt;&lt;/a&gt;&lt;a href="http://www.4shared.com/file/131660407/2b1293c6/UCriarClasseString.html"&gt;UCriarClasseString.pas&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.4shared.com/file/131660412/42635608/UCriarClasseString.html"&gt;UCriarClasseString.dfm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4868749140317132356-7107054417295397220?l=josehenriquebr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josehenriquebr.blogspot.com/feeds/7107054417295397220/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://josehenriquebr.blogspot.com/2009/09/criando-uma-instancia-de-classe-partir.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/7107054417295397220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/7107054417295397220'/><link rel='alternate' type='text/html' href='http://josehenriquebr.blogspot.com/2009/09/criando-uma-instancia-de-classe-partir.html' title='Criando uma instância de classe à partir do seu nome (string)'/><author><name>José Henrique</name><uri>http://www.blogger.com/profile/12308503095071072958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_ugC8V78ECCM/Smy5ZuCVndI/AAAAAAAAAcE/Ogv5ECN4uXM/S220/26-08-06_1541.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ugC8V78ECCM/SqkCtLXcW-I/AAAAAAAAAdg/wDXY0yIx5Tc/s72-c/CriarClasse.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4868749140317132356.post-6180471991998182801</id><published>2009-08-25T22:40:00.000-03:00</published><updated>2009-08-26T12:31:14.642-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='video_aulas'/><title type='text'>Delphi 2010 ! Ou é o antigo Delphi 7 ?</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;blogitemurl&gt;Uma das novidades do Delphi 2010 é a velha barra de componentes na parte superior do IDE, isso mesmo, agora podemos acabar com o saudosismo da  IDE do Delphi 7, podemos configurar nossa IDE para que fique semelhante à do &lt;/blogitemurl&gt;antigo &lt;blogitemurl&gt;IDE.&lt;/blogitemurl&gt;&lt;br /&gt;&lt;blogitemurl&gt;&lt;/blogitemurl&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;blogitemurl&gt;Poucos passos e essa configuração é feita, &lt;a href="http://edn.embarcadero.com/br/article/39843"&gt; assista ao vídeo&lt;/a&gt;&lt;/blogitemurl&gt; onde  Andreano Lanusse demonstra como proceder.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4868749140317132356-6180471991998182801?l=josehenriquebr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://edn.embarcadero.com/br/article/39843' title='Delphi 2010 ! Ou é o antigo Delphi 7 ?'/><link rel='replies' type='application/atom+xml' href='http://josehenriquebr.blogspot.com/feeds/6180471991998182801/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://josehenriquebr.blogspot.com/2009/08/delphi-2010-tranformado-em-delphi-7.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/6180471991998182801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/6180471991998182801'/><link rel='alternate' type='text/html' href='http://josehenriquebr.blogspot.com/2009/08/delphi-2010-tranformado-em-delphi-7.html' title='Delphi 2010 ! Ou é o antigo Delphi 7 ?'/><author><name>José Henrique</name><uri>http://www.blogger.com/profile/12308503095071072958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_ugC8V78ECCM/Smy5ZuCVndI/AAAAAAAAAcE/Ogv5ECN4uXM/S220/26-08-06_1541.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4868749140317132356.post-7935775126121174831</id><published>2009-08-24T21:20:00.000-03:00</published><updated>2009-08-26T12:29:25.150-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='firebird'/><category scheme='http://www.blogger.com/atom/ns#' term='video_aulas'/><title type='text'>Driver nativo para Firebird</title><content type='html'>Até que enfim a comunidade Delphi que utiliza o FireBird teve seus apelos atendidos, no novo Delphi 2010 o acesso ao banco de dados FireBird está nativo, tendo suporte para versões 1.5 e 2.1.&lt;br /&gt;O novo driver dbExpress para FireBird dá acesso ao banco através do DataExplorer, VCL e do Framework dbExpress &lt;blogitemurl&gt;&lt;a href="http://www.youtube.com/watch?v=a3CnagkyBWE&amp;amp;feature=player_embedded"&gt;assista ao vídeo&lt;/a&gt; e confira essa novidade.&lt;br /&gt;&lt;/blogitemurl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4868749140317132356-7935775126121174831?l=josehenriquebr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.youtube.com/watch?v=a3CnagkyBWE&amp;feature=player_embedded' title='Driver nativo para Firebird'/><link rel='replies' type='application/atom+xml' href='http://josehenriquebr.blogspot.com/feeds/7935775126121174831/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://josehenriquebr.blogspot.com/2009/08/driver-nativo-para-firebird.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/7935775126121174831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/7935775126121174831'/><link rel='alternate' type='text/html' href='http://josehenriquebr.blogspot.com/2009/08/driver-nativo-para-firebird.html' title='Driver nativo para Firebird'/><author><name>José Henrique</name><uri>http://www.blogger.com/profile/12308503095071072958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_ugC8V78ECCM/Smy5ZuCVndI/AAAAAAAAAcE/Ogv5ECN4uXM/S220/26-08-06_1541.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4868749140317132356.post-5967456662694373014</id><published>2009-08-24T20:58:00.000-03:00</published><updated>2009-08-26T12:29:48.526-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='video_aulas'/><title type='text'>Novidades do Delphi 2010</title><content type='html'>&lt;div style="text-align: justify;"&gt;O lançamento do Delphi 2010 traz várias novidades em sua IDE, as novas funcionalidades incluídas são muitas, tornando mais agradável o ambiente de desenvolvimento. Um dos destaques dessas funcionalidades é o &lt;span style="font-weight: bold;"&gt;IDE Insight&lt;/span&gt;, ferramenta que certamente fará alguns desejarem mais que tudo essa nova IDE.&lt;br /&gt;&lt;/div&gt;Confira no vídeo apresentado por Andreano Lanusse ( responsável técnico para toda América Latina )  essas novidades.&lt;br /&gt;&lt;br /&gt;&lt;blogitemurl&gt;   &lt;a href="http://www.blogger.com/%3C$BlogItemURL$%3E"&gt;Confira aqui as Novidades do Delphi 2010&lt;/a&gt;&lt;br /&gt;&lt;/blogitemurl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4868749140317132356-5967456662694373014?l=josehenriquebr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://edn.embarcadero.com/br/article/39841' title='Novidades do Delphi 2010'/><link rel='replies' type='application/atom+xml' href='http://josehenriquebr.blogspot.com/feeds/5967456662694373014/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://josehenriquebr.blogspot.com/2009/08/novidades-do-delphi-2010.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/5967456662694373014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/5967456662694373014'/><link rel='alternate' type='text/html' href='http://josehenriquebr.blogspot.com/2009/08/novidades-do-delphi-2010.html' title='Novidades do Delphi 2010'/><author><name>José Henrique</name><uri>http://www.blogger.com/profile/12308503095071072958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_ugC8V78ECCM/Smy5ZuCVndI/AAAAAAAAAcE/Ogv5ECN4uXM/S220/26-08-06_1541.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4868749140317132356.post-2940419312083290831</id><published>2009-08-20T20:41:00.000-03:00</published><updated>2009-08-26T12:30:09.361-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='vírus'/><title type='text'>Novo Vírus que infecta códigos em Delphi.</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;b&gt;As versões de Delphi que são infectadas são Delphi 4-7.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;O que o vírus faz:&lt;/b&gt;&lt;br /&gt;Ele substitui o arquivo SysConst.dcu renomeando este para SysConst.bak, assim toda vez que um sistema é compilado ele passa a estar contaminado e a propagar o vírus.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;O que você deve fazer!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Utilize um programa de pesquisa (um que seja melhor que a pesquisa do windows, agent Ransak por exemplo ) e procure por "CreateFile (pchar (d + $ $ DCU), 256,0,0,3,0, 0 );". Se você encontrar o arquivo SysConst.bak, significa que o vírus o atacou. Tudo que vc tem que fazer é apagar de SysConst.dcu atual e renomear o arquivo que foi movido para SysConst.bak novamente como SysConst.dcu.&lt;br /&gt;&lt;br /&gt;Pronto isso deve resolver seu problema!&lt;br /&gt;&lt;br /&gt;Fonte:&lt;br /&gt;&lt;a href="http://www.baboo.com.br/absolutenm/templates/content.asp?articleid=36124&amp;amp;zoneid=221&amp;amp;resumo=novo_v%EDrus_infecta_programas_criados_delphi"&gt;Fórum Baboo&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4868749140317132356-2940419312083290831?l=josehenriquebr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.baboo.com.br/absolutenm/templates/content.asp?articleid=36124&amp;amp;zoneid=221&amp;amp;resumo=novo_v%EDrus_infecta_programas_criados_delphi' title='Novo Vírus que infecta códigos em Delphi.'/><link rel='replies' type='application/atom+xml' href='http://josehenriquebr.blogspot.com/feeds/2940419312083290831/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://josehenriquebr.blogspot.com/2009/08/novo-virus-que-infecta-codigos-em.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/2940419312083290831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/2940419312083290831'/><link rel='alternate' type='text/html' href='http://josehenriquebr.blogspot.com/2009/08/novo-virus-que-infecta-codigos-em.html' title='Novo Vírus que infecta códigos em Delphi.'/><author><name>José Henrique</name><uri>http://www.blogger.com/profile/12308503095071072958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_ugC8V78ECCM/Smy5ZuCVndI/AAAAAAAAAcE/Ogv5ECN4uXM/S220/26-08-06_1541.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4868749140317132356.post-6153050018002235960</id><published>2009-07-27T22:50:00.000-03:00</published><updated>2009-08-26T12:30:30.279-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Comentários'/><title type='text'>Motivação</title><content type='html'>&lt;div style="text-align: justify;"&gt;Olá amigos, minha intenção ao criar esse blog é ter um canal de comunicação com todos, quero falar de programação, música, filmes, cozinha, vinhos, etc. Enfim ter um lugar para trocar idéias com quem visitar esse blog.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;abraços!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4868749140317132356-6153050018002235960?l=josehenriquebr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josehenriquebr.blogspot.com/feeds/6153050018002235960/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://josehenriquebr.blogspot.com/2009/07/motivacao.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/6153050018002235960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4868749140317132356/posts/default/6153050018002235960'/><link rel='alternate' type='text/html' href='http://josehenriquebr.blogspot.com/2009/07/motivacao.html' title='Motivação'/><author><name>José Henrique</name><uri>http://www.blogger.com/profile/12308503095071072958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_ugC8V78ECCM/Smy5ZuCVndI/AAAAAAAAAcE/Ogv5ECN4uXM/S220/26-08-06_1541.jpg'/></author><thr:total>0</thr:total></entry></feed>
