<?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-3353627314616136057</id><updated>2012-01-11T10:06:34.660-02:00</updated><category term='c#'/><category term='AJAX  Control ToolKit'/><category term='E-mail'/><category term='Programação'/><category term='Banco de Dados'/><category term='SQL'/><category term='Prism'/><category term='CSS'/><category term='AutoComplete'/><category term='Javascript'/><category term='Delphi'/><category term='.NET Framework'/><category term='Erros'/><category term='Google'/><category term='ASP.NET'/><category term='Delphi Tour POA'/><title type='text'>Geeks .NET</title><subtitle type='html'>| ASP.NET | DELPHI 2006 .NET | RAD STUDIO 2007 .NET | .NET FRAMEWORK |</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Bolívar Arthur Butzke</name><uri>https://profiles.google.com/115253865457720310323</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DKxFfFY7jkw/AAAAAAAAAAI/AAAAAAAACAc/L2U5KijlcQA/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-4498935418073612259</id><published>2010-06-21T11:59:00.001-03:00</published><updated>2010-06-21T12:02:05.818-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Erros'/><title type='text'>O Delphi é um poeta! #3</title><content type='html'>Esse aqui duvido!!!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_L9LlVO2zDSU/TB9-t-80XrI/AAAAAAAAAYM/_gH83YGYMY8/s1600/Erro.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 152px;" src="http://1.bp.blogspot.com/_L9LlVO2zDSU/TB9-t-80XrI/AAAAAAAAAYM/_gH83YGYMY8/s400/Erro.JPG" alt="" id="BLOGGER_PHOTO_ID_5485242199617855154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Revogar um destino???&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-4498935418073612259?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/4498935418073612259/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=4498935418073612259' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/4498935418073612259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/4498935418073612259'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2010/06/o-delphi-e-um-poeta-3.html' title='O Delphi é um poeta! #3'/><author><name>signori http://blogsignori.blogspot.com</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_L9LlVO2zDSU/Sgl9tAM19kI/AAAAAAAAAMs/3DpcDqNNDOo/S220/interguerreiro2j.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_L9LlVO2zDSU/TB9-t-80XrI/AAAAAAAAAYM/_gH83YGYMY8/s72-c/Erro.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-1764770052314682853</id><published>2009-12-08T10:07:00.003-02:00</published><updated>2009-12-30T09:35:27.718-02:00</updated><title type='text'>Exportar GridView para Excel Delphi ASP.NET</title><content type='html'>Olá pessoal!&lt;br /&gt;&lt;br /&gt;Após muita consulta no Google não encontrei nenhum exemplo que funcionasse perfeitamente no Delphi para exportar os dados de uma Grid para o Excel, então adaptei alguns em VB, outros em C# e hoje de manhã finalmente o negócio funcionou. Agora estou aqui para compartilhar com vocês, segue o código fonte da função para exportar:&lt;br /&gt;&lt;br /&gt;&lt;pre class="delphi" name="code"&gt;&lt;br /&gt;procedure Texportarexcel.Button1_Click(sender: TObject; e: System.EventArgs);&lt;br /&gt;var&lt;br /&gt;  sw: System.IO.StringWriter;&lt;br /&gt;  htw: HtmlTextWriter;&lt;br /&gt;  sb: StringBuilder;&lt;br /&gt;  form: HtmlForm;&lt;br /&gt;  pagina: System.Web.UI.Page;&lt;br /&gt;begin&lt;br /&gt;  sb := stringbuilder.Create;&lt;br /&gt;  sw := StringWriter.create(sb);&lt;br /&gt;  htw := HtmlTextWriter.create(sw);&lt;br /&gt;  pagina := System.Web.UI.Page.Create();&lt;br /&gt;  form := HtmlForm.create();&lt;br /&gt;  gvDados.EnableViewState := false;&lt;br /&gt;  pagina.EnableEventValidation := False;&lt;br /&gt;  pagina.DesignerInitialize();&lt;br /&gt;  pagina.Controls.Add(form);&lt;br /&gt;  form.Controls.Add(gvDados);&lt;br /&gt;  pagina.RenderControl(htw);&lt;br /&gt;  Response.Clear();&lt;br /&gt;  Response.ClearContent();&lt;br /&gt;  Response.Buffer := True;&lt;br /&gt;  Response.ContentType := 'application/vnd.ms-excel';&lt;br /&gt;  Response.AddHeader('Content-Disposition', 'attachment;filename=data.xls');&lt;br /&gt;  Response.Charset := 'UTF-8';&lt;br /&gt;  Response.ContentEncoding := Encoding.Default;&lt;br /&gt;  Response.Write(sb.ToString());&lt;br /&gt;  Response.&amp;End;&lt;br /&gt;end;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Nesta página que fiz para testar tenho um Button e uma GridView (gvDados), o código acima está no evento OnClick do Button1, antes de exportar a grid é óbvio que ela precisa ter dados, mas isto já não é o objetivo deste post, espero que o código seja útil para alguém, abraços!&lt;br /&gt;&lt;br /&gt;Obs.: Não esqueçam de comentar e visitem o &lt;a href="http://bolivarbutzke.blogspot.com"&gt;Blog do Bolívar&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-1764770052314682853?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/1764770052314682853/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=1764770052314682853' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/1764770052314682853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/1764770052314682853'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2009/12/exportar-gridview-para-excel-delphi.html' title='Exportar GridView para Excel Delphi ASP.NET'/><author><name>Bolívar Arthur Butzke</name><uri>https://profiles.google.com/115253865457720310323</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DKxFfFY7jkw/AAAAAAAAAAI/AAAAAAAACAc/L2U5KijlcQA/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-2183267328905010678</id><published>2009-05-27T17:44:00.005-03:00</published><updated>2009-10-22T15:23:03.557-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Resultados no rodapé do GridView</title><content type='html'>Boenas pessoal, retornando depois de um baita tempo sem postar aki...&lt;br /&gt;&lt;br /&gt;Esta semana precisei exibir resultados no rodapé do GridView, aki no blog tem um post sobre o DataGrid, porém é um pouco diferente.&lt;br /&gt;&lt;br /&gt;Vamos calcular a média dos valores de uma coluna, sem precisar ir ao banco para tal. No evento DataBound do Grid View:&lt;br /&gt;&lt;br /&gt;&lt;pre class="delphi" name="code"&gt;var&lt;br /&gt;  soma:Integer&lt;br /&gt;begin&lt;br /&gt;  for I := 0 to GridView1.Rows.Count - 1 do&lt;br /&gt;  begin&lt;br /&gt;  Soma := Soma+Int32.Parse(GridView1.Rows[I].Cells[1].Text);&lt;br /&gt;  end;&lt;br /&gt;end;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Esse loop irá percorrer as linhas e somará os valores da coluna 1 do grid. Após isso basta calcular a média, para isso crie uma variável 'media' do tipo Double:&lt;br /&gt;&lt;br /&gt;&lt;pre class="delphi" name="code"&gt;media := Soma/I;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Pronto, agora basta mostrar o resultado no rodapé:&lt;br /&gt;&lt;br /&gt;&lt;pre class="delphi" name="code"&gt;GridView1.FooterRow.Cells[0].Text := 'Média dos Valores:';&lt;br /&gt;GridView1.FooterRow.Cells[0].HorizontalAlign := HorizontalAlign.Right;&lt;br /&gt;GridView1.FooterRow.Cells[1].Text := media.ToString('n');&lt;br /&gt;GridView1.FooterRow.Cells[1].HorizontalAlign := HorizontalAlign.Center;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Na coluna 0 estamos mostrando o texto e na 1 a média dos valores já formatada.&lt;br /&gt;&lt;br /&gt;Um abraço.&lt;br /&gt;&lt;br /&gt;PS: Não esqueçam de visitar o &lt;a href="http://blogsignori.blogspot.com/"&gt;Blog do Signori&lt;/a&gt; !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-2183267328905010678?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/2183267328905010678/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=2183267328905010678' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/2183267328905010678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/2183267328905010678'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2009/05/resultados-no-rodape-do-gridview.html' title='Resultados no rodapé do GridView'/><author><name>signori http://blogsignori.blogspot.com</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_L9LlVO2zDSU/Sgl9tAM19kI/AAAAAAAAAMs/3DpcDqNNDOo/S220/interguerreiro2j.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-8308172391494648718</id><published>2009-05-05T13:21:00.000-03:00</published><updated>2009-05-05T14:34:52.234-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='E-mail'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Enviando e-mail no DELPHI for ASP.NET utilizando GMail</title><content type='html'>&lt;p align="justify"&gt;Olá pessoal, neste pequeno tutorial pretendo mostrar um exemplo simples de envio de e-mail em ASP.NET utilizando os serviços do Gmail e DELPHI 2007 for .NET, dica do Edinei.&lt;br /&gt;&lt;br /&gt;Primeiramente vamos criar uma nova aplicação, &lt;span style="font-style:italic;"&gt;File -&gt; New -&gt; ASP.NET Web Application&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VjhF_SEitUs/SgB2ViClFrI/AAAAAAAAAbs/F0YVRTdORyE/s1600-h/sendmail1.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 64px;" src="http://2.bp.blogspot.com/_VjhF_SEitUs/SgB2ViClFrI/AAAAAAAAAbs/F0YVRTdORyE/s400/sendmail1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5332392071093622450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Feito isso, adicione três TextBox, um Button e uma Label, renomeie a propriedade &lt;span style="font-weight:bold;"&gt;ID&lt;/span&gt; das textboxes para: &lt;span style="font-style:italic;"&gt;txbdestinatario, txbassunto e txbmensagem&lt;/span&gt; respectivamente, a Label para &lt;span style="font-style:italic;"&gt;lblretorno &lt;/span&gt;e o Button para &lt;span style="font-style:italic;"&gt;btnenviar&lt;/span&gt;, aumente o tamanho das textboxes de acordo com sua preferência e mude a propriedade &lt;span style="font-weight:bold;"&gt;textMode &lt;/span&gt;da &lt;span style="font-style:italic;"&gt;txbmensagem &lt;/span&gt;para “Multiline”. Apague o que tiver na propriedade &lt;span style="font-weight:bold;"&gt;Text &lt;/span&gt;da &lt;span style="font-style:italic;"&gt;lblretorno &lt;/span&gt;e mude a propriedade &lt;span style="font-weight:bold;"&gt;Text &lt;/span&gt;do &lt;span style="font-style:italic;"&gt;btnenviar &lt;/span&gt;para “Enviar E-mail”. O formulário deve ficar parecido com o da imagem abaixo.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VjhF_SEitUs/SgB2V6HPRzI/AAAAAAAAAb0/gCDEndJg364/s1600-h/formulario.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 337px;" src="http://1.bp.blogspot.com/_VjhF_SEitUs/SgB2V6HPRzI/AAAAAAAAAb0/gCDEndJg364/s400/formulario.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5332392077555615538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;O &lt;span style="font-style:italic;"&gt;txtdestinatario &lt;/span&gt;vai receber o endereço de e-mail que se deseja enviar uma mensagem, &lt;span style="font-style:italic;"&gt;txbassunto &lt;/span&gt;o assunto e &lt;span style="font-style:italic;"&gt;txbmensagem &lt;/span&gt;a mensagem, a &lt;span style="font-style:italic;"&gt;lblretorno &lt;/span&gt;irá mostrar se o e-mail foi enviado com sucesso ou se ocorreu algum erro durante o envio e o &lt;span style="font-style:italic;"&gt;btnenviar &lt;/span&gt;chamará a função de envio de e-mail.&lt;br /&gt;&lt;br /&gt;Para usar as funções de envio de e-mail do .NET, é necessário adicionar as seguintes bibliotecas na uses.&lt;br /&gt;&lt;pre class="delphi" name="code"&gt;&lt;br /&gt;Uses&lt;br /&gt;  System.Net.Mail, System.Net.Configuration, System.Text, System.Net;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Feito isso, de um duplo clique no &lt;span style="font-style:italic;"&gt;btnenviar &lt;/span&gt;e implemente a função  que vai enviar o e-mail através do serviço de envio de e-mail da Google, o gmail, veja função abaixo.&lt;br /&gt;&lt;pre class="delphi" name="code"&gt;&lt;br /&gt;procedure TDefault.btnEnviar_Click(sender: TObject; e: System.EventArgs);&lt;br /&gt;var&lt;br /&gt;  EmailRemetente: string;&lt;br /&gt;  NomeRemetente: string;&lt;br /&gt;  Mail: MailMessage;&lt;br /&gt;  Client: SmtpClient;&lt;br /&gt;begin&lt;br /&gt;  Mail := MailMessage.create;&lt;br /&gt;  Client := SmtpClient.create;&lt;br /&gt;  EmailRemetente := 'seuEmail@gmail.com'; // O e-mail do remetente&lt;br /&gt;  NomeRemetente := 'Seu Nome';  // O nome do remetente&lt;br /&gt;  try&lt;br /&gt;    Mail.&amp;To.Add(txbDestinatario.text);  // Destinatário&lt;br /&gt;    Mail.From := MailAddress.create(EmailRemetente, NomeRemetente, System.Text.Encoding.UTF8);&lt;br /&gt;    Mail.Subject := txbassunto.text;  // Assunto do E-mail&lt;br /&gt;    mail.SubjectEncoding := System.Text.Encoding.UTF8;&lt;br /&gt;    mail.Body := txbmensagem.text; // Mensagem do e-mail&lt;br /&gt;    mail.BodyEncoding := System.Text.Encoding.UTF8;&lt;br /&gt;    mail.IsBodyHtml := true;&lt;br /&gt;    mail.Priority := MailPriority.High; // Prioridade do E-Mail&lt;br /&gt;    client.Credentials := NetworkCredential.create(EmailRemetente, 'AquiSuaSenha'); // usuário e senha do Gmail&lt;br /&gt;    client.Port := 587; // Esta porta é a utilizada pelo Gmail para envio&lt;br /&gt;    client.Host := 'smtp.gmail.com'; // Definindo o provedor que irá disparar o e-mail&lt;br /&gt;    client.EnableSsl := true; // Gmail trabalha com Server Secured Layer&lt;br /&gt;    try&lt;br /&gt;      client.Send(mail);&lt;br /&gt;      lblretorno.text := 'E-mail enviado com sucesso!';&lt;br /&gt;    except on erro:exception do&lt;br /&gt;      lblretorno.text := 'Erro ao tentar enviar e-mail. '+erro.message;&lt;br /&gt;    end;&lt;br /&gt;  finally&lt;br /&gt;    client.free;&lt;br /&gt;    mail.free;&lt;br /&gt;  end;&lt;br /&gt;end;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Depois de implementada a função é só compilar e executar (CTRL+SCHIFT+F9) para testar o envio de e-mails. &lt;br /&gt;&lt;br /&gt;Até.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Referências:&lt;/span&gt; http://www.devmedia.com.br/articles/viewcomp.asp?comp=12520&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-8308172391494648718?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/8308172391494648718/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=8308172391494648718' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/8308172391494648718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/8308172391494648718'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2009/05/enviando-e-mail-no-delphi-for-aspnet.html' title='Enviando e-mail no DELPHI for ASP.NET utilizando GMail'/><author><name>Bolívar Arthur Butzke</name><uri>https://profiles.google.com/115253865457720310323</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DKxFfFY7jkw/AAAAAAAAAAI/AAAAAAAACAc/L2U5KijlcQA/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_VjhF_SEitUs/SgB2ViClFrI/AAAAAAAAAbs/F0YVRTdORyE/s72-c/sendmail1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-7544452136142024578</id><published>2009-04-08T12:34:00.002-03:00</published><updated>2009-04-08T12:34:00.116-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Erros'/><title type='text'>Erros no DELPHI</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VjhF_SEitUs/Sdy2RbENtVI/AAAAAAAAAaM/WadgsF54Qgs/s1600-h/erro.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 89px;" src="http://1.bp.blogspot.com/_VjhF_SEitUs/Sdy2RbENtVI/AAAAAAAAAaM/WadgsF54Qgs/s400/erro.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5322329270084547922" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p align="center"&gt;Este errinho é chato, se alguém souber resolver me avisa.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-7544452136142024578?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/7544452136142024578/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=7544452136142024578' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/7544452136142024578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/7544452136142024578'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2009/04/erros-no-delphi.html' title='Erros no DELPHI'/><author><name>Bolívar Arthur Butzke</name><uri>https://profiles.google.com/115253865457720310323</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DKxFfFY7jkw/AAAAAAAAAAI/AAAAAAAACAc/L2U5KijlcQA/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_VjhF_SEitUs/Sdy2RbENtVI/AAAAAAAAAaM/WadgsF54Qgs/s72-c/erro.bmp' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-4076086325285579171</id><published>2009-03-20T18:39:00.007-03:00</published><updated>2009-10-22T15:39:41.202-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Programação'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Performance em ASP.NET: Desabilitar ViewState na Aplicação Inteira</title><content type='html'>&lt;p align="justify"&gt;Olá pessoal!&lt;br /&gt;&lt;br /&gt;O ViewState é uma string armazenada em um campo oculto no HTML gerado para a sua página. Ele guarda os dados sobre a página e seus componentes, concatenado com um hash gerado no servidor para evitar ataques onde alguma pessoa maliciosa altere o conteúdo dessa string e faça um postback para o seu servidor. Essa string está em Base64, e é simples decodificar, como por exemplo usando o ViewState Decoder.&lt;br /&gt;&lt;br /&gt;Cada componente colocado em uma página ASP.Net salva o seu estado no ViewState, para que cada vez que acontecer um postback esse componente possa voltar a ser exibido exatamente como estava antes, sem precisar fazer nova inicialização ou trazer os dados novamente do banco de dados, e assim por diante. Isso é prático, mas pode deixar o ViewState incrivelmente grande e aumentar bastante o tamanho da sua página e o tempo de carregamento por consequência.&lt;br /&gt;&lt;br /&gt;Em páginas onde é desnecessário essa característica é recomendável desabilitar o ViewState ou então manter ele ativo apenas nos componentes em que é necessário, isso trará um aumento de performance na sua aplicação pois o navegador não precisará ficar enviando e recebendo essa string toda vez que é feita alguma requisição.&lt;br /&gt;&lt;br /&gt;Por padrão o ViewState vem como True nos elementos, mas isso pode ser alterado facilmente mudando a propriedade EnableViewState para False. Agora se a sua aplicação já está pronta ou com a maior parte desenvolvida, você pode desativar o ViewState na aplicação inteira inserindo no arquivo web.config ou no machine.config o seguinte código:&lt;br /&gt;&lt;br /&gt;&lt;pre class="delphi" name="code"&gt;&lt;configuration&gt;&lt;br /&gt;&lt;system.web&gt;&lt;br /&gt;&lt;pages enableViewState="false" /&gt;&lt;br /&gt;&lt;/system.web&gt;&lt;br /&gt;&lt;/configuration&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Por enquanto é isso, para saber mais sobre o ViewState recomendo a leitura das referências, são dois excelentes artigos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Referências&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.dotnetjohn.com/articles.aspx?articleid=71"&gt;DotNetJohn&lt;/a&gt; || &lt;a href="http://www.techtips.com.br/programacao/delphi/aspnet/entendendo-o-viewstate-em-aspnet/"&gt;TechTips&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-4076086325285579171?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/4076086325285579171/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=4076086325285579171' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/4076086325285579171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/4076086325285579171'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2009/03/performance-em-aspnet-desabilitar.html' title='Performance em ASP.NET: Desabilitar ViewState na Aplicação Inteira'/><author><name>Bolívar Arthur Butzke</name><uri>https://profiles.google.com/115253865457720310323</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DKxFfFY7jkw/AAAAAAAAAAI/AAAAAAAACAc/L2U5KijlcQA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-3157563314210181666</id><published>2009-03-19T09:00:00.010-03:00</published><updated>2009-03-19T09:39:31.359-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Banco de Dados'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Artigo Nº 20: Concatenando resultados diretamente na SQL</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;Hoje vai aí um post sobre SQL, simples mas muito útil: concatenação de resultados em um select.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Acredito que quase todos os programadores em algum momento, precisou concatenar várias colunas de uma função select, agrupando em uma única coluna. Para isso, quem não conhece ou conhecia esse tipo de concatenação, resolve agrupando no próprio código de programação. Um exemplo que posso escrever é: para programadores .net que trabalha com POO(Programação Orientadas a Objetos) ou em camadas, resolve esse problema criando uma function que vai retorna em um formato de DateTable, dentro dessa function monta a SQL, depois manda executa a função para retornar os dados. Daí depois de passar pelo banco, lê cada resultado e manualmente cria-se uma nova coluna onde o valor vai ser a concatenação entre os duas ou mais colunas do resultado: Ex: Coluna 03 = ColunaSQL1 +'/'+ ColunaSQL2;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Bom, aí vai os exemplos de como proceder em diversos bancos de dados:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;FIREBIRD&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;SELECT (COLUNA1 ||' - '|| COLUNA2) as RESULTADO from TABELA&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;SQL SERVER&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;SELECT (CAST(COLUNA1 AS VARCHAR)+' - '+ CAST(COLUNA2 AS VARCHAR)) AS RESULTADO FROM TABEL&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;POSTGREE&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;SELECT (COLUNA1 ||' - '|| COLUNA2) AS RESULTADO FROM TABELA&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;MYSQL&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;SELECT CONCAT(COLUNA1,' - ',COLUNA2) AS RESULTADO FROM TABELA&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Esses são os exemplos de concatenação. Pode-se concatena quantas colunas que necessita, sempre seguindo as sintaxe.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Caso sua aplicação está voltada para conexão independente de banco, tome cuidado ao utilizar essas funções, crie uma forma de parametrizações que quando trocar de banco chame a sintaxe de acordo com o banco.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Obrigado. Abraços.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-3157563314210181666?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/3157563314210181666/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=3157563314210181666' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/3157563314210181666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/3157563314210181666'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2009/03/artigo-n-20-concatenando-resultados.html' title='Artigo Nº 20: Concatenando resultados diretamente na SQL'/><author><name>Tiago José Pasieka</name><uri>http://www.blogger.com/profile/15442118935490129621</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_ZI-3GN42lGo/S54a_RKJ2pI/AAAAAAAAAnc/hsvvdJp6tPA/S220/65271.JPG'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-1412545423555485374</id><published>2009-02-09T13:19:00.047-02:00</published><updated>2009-10-22T15:37:59.800-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX  Control ToolKit'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>Artigo Nº 19: Customizando ValidatorCalloutExtender  do Ajax Control Toolkit</title><content type='html'>&lt;div style="TEXT-ALIGN: justify"&gt;&lt;span style="font-size:85%;"&gt;No &lt;a href="http://geeksnet.blogspot.com/2008/10/artigo-n-16-usando-validator-callout.html"&gt;artigo Nº 16,&lt;/a&gt; foi mostrado como aplicar o componente ValidatorCalloutExtender . Agora vamos mostrar como estilizar esse componente com estilos css. Crie uma nova pasta chamada "estilos", dentro da pasta do projeto da aplicação. Depois abra o bloco de notas ou notepad++ e salve esse arquivo dentro desta pasta com o nome de "estilos.css", daí copie o código abaixo e cole no arquivo. OBS: caso você já tem essa pasta e arquivo, que é usado no &lt;a href="http://geeksnet.blogspot.com/2008/09/artigo-n-08-customizando-calendar_09.html"&gt;Artigo Nº 08&lt;/a&gt;, somente adicione o código abaixo.&lt;br /&gt;&lt;/span&gt;&lt;pre class="CSS" name="code"&gt;.validar div, .validar td  /*Formatação do visual da popup(EX: borda e cor de fundo)*/&lt;br /&gt;{border:solid 1px red; background-color:white;}&lt;br /&gt;.validar .ajax__validatorcallout_callout_cell /*Manter padrão*/&lt;br /&gt;{width:80px; height:100%; text-align:right; vertical-align:top; border:none; background-color:transparent; padding:0px;}&lt;br /&gt;.validar .ajax__validatorcallout_callout_table /* Manter padrão */&lt;br /&gt;{height:100%; border:none;background-color:transparent;padding:0px;}&lt;br /&gt;.validar .ajax__validatorcallout_callout_arrow_cell/* Manter padrão */&lt;br /&gt;{padding:8px 0px 0px 0px; text-align:right; vertical-align:top; font-size:1px; border:none; background-color:transparent;}&lt;br /&gt;.validar .ajax__validatorcallout_callout_arrow_cell .ajax__validatorcallout_innerdiv /* Manter padrão */&lt;br /&gt;{font-size:1px; position:relative; left:1px; border-bottom:none; border-right:none; border-left:none; width:15px; background-color:transparent; padding:0px;}&lt;br /&gt;.validar .ajax__validatorcallout_callout_arrow_cell .ajax__validatorcallout_innerdiv div  /* Manter padrão */&lt;br /&gt;{height:1px; overflow:hidden; border-top:none; border-bottom:none; border-right:none; padding:0px; margin-left:auto;}&lt;br /&gt;.validar .ajax__validatorcallout_error_message_cell /*Formatação do texto dentro da popup */&lt;br /&gt;{font-family:Verdana; font-size:10px; border-right:none; border-left:none; width:100%; color:red; font-weight:bold; text-align:left;}&lt;br /&gt;.validar .ajax__validatorcallout_icon_cell /* Manter padrão */&lt;br /&gt;{width:20px; padding:5px; border-right:none;}&lt;br /&gt;.validar .ajax__validatorcallout_close_button_cell/* Manter padrão */&lt;br /&gt;{vertical-align:top; padding:0px; text-align:right; border-left:none;}&lt;br /&gt;.validar .ajax__validatorcallout_close_button_cell .ajax__validatorcallout_innerdiv /* Manter padrão */&lt;br /&gt;{border:none; text-align:center; width:16px; height:16px; padding:2px; cursor:pointer;}&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;Depois de salvar esse estilo, vá para o .aspx da sua página e dentro da tag HEAD, coloque o código sequinte logo abaixo da tag TITLE. Esse é o código responsável por buscar os estilos e aplicar na sua página, caso já tenha, ignore-o.&lt;br /&gt;&lt;/span&gt;&lt;pre class="js" name="code"&gt;&lt; link rel="stylesheet" href="./estilos/estilos.css" type="text/css"/&gt;&lt;/pre&gt;&lt;span style="font-size:85%;"&gt;Feito isso, volte para a página, verifique se a propriedade &lt;span style="FONT-WEIGHT: bold"&gt;TargetControlID&lt;/span&gt; do componente ValidatorCallout está relacionada com o componente de validação. Se está, selecione esse componente, RegularExpressionValidator, e na janela Object Inspector procure as propriedades Extenders, figura 01. Mas para essas propriedades aparecerem, os dois componentes devem estar interligados.&lt;br /&gt;Agora altere as seguintes propriedades:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-WEIGHT: bold;font-size:85%;" &gt;CloseImageURL&lt;/span&gt;&lt;span style="font-size:85%;"&gt;: coloque o caminho de onde o componente buscará a imagem para fechar a popup(se não colocar nada, ficará a imagem padrão);&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-WEIGHT: bold;font-size:85%;" &gt;CssClass&lt;/span&gt;&lt;span style="font-size:85%;"&gt;: digitar o nome do estilo criado para sua formatação(EX: validar);&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-WEIGHT: bold;font-size:85%;" &gt;WarningIconImageURL&lt;/span&gt;&lt;span style="font-size:85%;"&gt;: caminho da imagem que é exibida na frente do texto da popup.&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-WEIGHT: bold;font-size:85%;" &gt;Width&lt;/span&gt;&lt;span style="font-size:85%;"&gt;: Tamanho da popup(em caso da mensagem ser muito grande)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Figura 01:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ZI-3GN42lGo/SZBR6LKMLlI/AAAAAAAAAig/CNkFf7UsjZE/s1600-h/fig+1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5300826821284867666" style="WIDTH: 313px; CURSOR: pointer; HEIGHT: 152px" alt="" src="http://3.bp.blogspot.com/_ZI-3GN42lGo/SZBR6LKMLlI/AAAAAAAAAig/CNkFf7UsjZE/s400/fig+1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para resolver possíveis problemas futuros com esse componente, baixe um arquivo nesse endereço &lt;/span&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face  {font-family:"Cambria Math";  panose-1:2 4 5 3 5 4 6 3 2 4;  mso-font-charset:1;  mso-generic-font-family:roman;  mso-font-format:other;  mso-font-pitch:variable;  mso-font-signature:0 0 0 0 0 0;} @font-face  {font-family:Calibri;  panose-1:2 15 5 2 2 2 4 3 2 4;  mso-font-charset:0;  mso-generic-font-family:swiss;  mso-font-pitch:variable;  mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-unhide:no;  mso-style-qformat:yes;  mso-style-parent:"";  margin-top:0cm;  margin-right:0cm;  margin-bottom:10.0pt;  margin-left:0cm;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:Calibri;  mso-fareast-theme-font:minor-latin;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;  mso-fareast-language:EN-US;} a:link, span.MsoHyperlink  {mso-style-priority:99;  color:blue;  text-decoration:underline;  text-underline:single;} a:visited, span.MsoHyperlinkFollowed  {mso-style-noshow:yes;  mso-style-priority:99;  color:purple;  mso-themecolor:followedhyperlink;  text-decoration:underline;  text-underline:single;} .MsoChpDefault  {mso-style-type:export-only;  mso-default-props:yes;  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:Calibri;  mso-fareast-theme-font:minor-latin;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;  mso-fareast-language:EN-US;} .MsoPapDefault  {mso-style-type:export-only;  margin-bottom:10.0pt;  line-height:115%;} @page Section1  {size:612.0pt 792.0pt;  margin:70.85pt 3.0cm 70.85pt 3.0cm;  mso-header-margin:36.0pt;  mso-footer-margin:36.0pt;  mso-paper-source:0;} div.Section1  {page:Section1;} --&gt; &lt;/style&gt;&lt;span style="LINE-HEIGHT: 115%;font-family:';font-size:85%;"  &gt;&lt;a href="http://blogs.msdn.com/mattgi/archive/2007/01/23/asp-net-ajax-validators.aspx"&gt;&lt;span style="LINE-HEIGHT: 115%;font-family:';" &gt;http://blogs.msdn.com/mattgi/archive/2007/01/23/asp-net-ajax-validators.aspx&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;http: aspx="" 23="" 01="" 2007="" archive="" mattgi="" com=""&gt;, baixe-o e descompacte-o. Nessa pasta descompactada possui uma dll chamada “Validattors.ddl”. Copie e cole dentro da pasta Bin do seu projeto. Depois no Delphi, adicione nas referências da aplicação, Add Reference, buscando da pasta Bin. Na Web.Config, adicione o código da listagem 2, dentro da tag "pages" &lt;pages&gt;que está dentro da tag "system.web" &lt;system.web&gt;.&lt;/SYSTEM.WEB&gt;&lt;/pages&gt;&lt;/HTTP:&gt;&lt;br /&gt;&lt;http: aspx="" 23="" 01="" 2007="" archive="" mattgi="" com=""&gt;&lt;pages&gt;&lt;system.web&gt;Listagem 2: TagMapping&lt;/SYSTEM.WEB&gt;&lt;/pages&gt;&lt;/HTTP:&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;http: aspx="" 23="" 01="" 2007="" archive="" mattgi="" com=""&gt;&lt;pages&gt;&lt;system.web&gt;&lt;br /&gt;&lt;/SYSTEM.WEB&gt;&lt;/pages&gt;&lt;/HTTP:&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;pre class="CSS" name="code"&gt;&lt;tagmapping&gt;&lt;br /&gt;&lt;add mappedtagtype="Sample.Web.UI.Compatibility.CompareValidator, Validators, Version=1.0.0.0" tagtype="System.Web.UI.WebControls.CompareValidator"&gt;&lt;br /&gt;&lt;add mappedtagtype="Sample.Web.UI.Compatibility.CustomValidator, Validators, Version=1.0.0.0" tagtype="System.Web.UI.WebControls.CustomValidator"&gt;&lt;br /&gt;&lt;add mappedtagtype="Sample.Web.UI.Compatibility.RangeValidator, Validators, Version=1.0.0.0" tagtype="System.Web.UI.WebControls.RangeValidator"&gt;&lt;br /&gt;&lt;add mappedtagtype="Sample.Web.UI.Compatibility.RegularExpressionValidator, Validators, Version=1.0.0.0" tagtype="System.Web.UI.WebControls.RegularExpressionValidator"&gt;&lt;br /&gt;&lt;add mappedtagtype="Sample.Web.UI.Compatibility.RequiredFieldValidator, Validators, Version=1.0.0.0" tagtype="System.Web.UI.WebControls.RequiredFieldValidator"&gt;&lt;br /&gt;&lt;add mappedtagtype="Sample.Web.UI.Compatibility.ValidationSummary, Validators, Version=1.0.0.0" tagtype="System.Web.UI.WebControls.ValidationSummary"&gt;&lt;br /&gt;&lt;/add&gt;&lt;/add&gt;&lt;/add&gt;&lt;/add&gt;&lt;/add&gt;&lt;/add&gt;&lt;/tagmapping&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Veja o resultado na figura 2.&lt;br /&gt;&lt;http: aspx="" 23="" 01="" 2007="" archive="" mattgi="" com=""&gt;&lt;pages&gt;&lt;system.web&gt;&lt;/SYSTEM.WEB&gt;&lt;/pages&gt;&lt;/HTTP:&gt;&lt;br /&gt;&lt;http: aspx="" 23="" 01="" 2007="" archive="" mattgi="" com=""&gt;&lt;pages&gt;&lt;system.web&gt;Figura 02:&lt;/SYSTEM.WEB&gt;&lt;/pages&gt;&lt;/HTTP:&gt;&lt;br /&gt;&lt;http: aspx="" 23="" 01="" 2007="" archive="" mattgi="" com=""&gt;&lt;pages&gt;&lt;system.web&gt;&lt;/SYSTEM.WEB&gt;&lt;/pages&gt;&lt;/HTTP:&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ZI-3GN42lGo/SZBR6R_sPNI/AAAAAAAAAio/5ziAKHFZylc/s1600-h/fig2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5300826823119879378" style="WIDTH: 387px; CURSOR: pointer; HEIGHT: 63px" alt="" src="http://4.bp.blogspot.com/_ZI-3GN42lGo/SZBR6R_sPNI/AAAAAAAAAio/5ziAKHFZylc/s400/fig2.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;http: aspx="" 23="" 01="" 2007="" archive="" mattgi="" com=""&gt;&lt;pages&gt;&lt;system.web&gt;&lt;/SYSTEM.WEB&gt;&lt;/pages&gt;&lt;/HTTP:&gt;&lt;br /&gt;&lt;http: aspx="" 23="" 01="" 2007="" archive="" mattgi="" com=""&gt;&lt;pages&gt;&lt;system.web&gt;Abraço e até a próxima.&lt;/SYSTEM.WEB&gt;&lt;/pages&gt;&lt;/HTTP:&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-1412545423555485374?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/1412545423555485374/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=1412545423555485374' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/1412545423555485374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/1412545423555485374'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2009/02/artigo-n-19-customizando.html' title='Artigo Nº 19: Customizando ValidatorCalloutExtender  do Ajax Control Toolkit'/><author><name>Tiago José Pasieka</name><uri>http://www.blogger.com/profile/15442118935490129621</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_ZI-3GN42lGo/S54a_RKJ2pI/AAAAAAAAAnc/hsvvdJp6tPA/S220/65271.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ZI-3GN42lGo/SZBR6LKMLlI/AAAAAAAAAig/CNkFf7UsjZE/s72-c/fig+1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-6170112014686960167</id><published>2009-01-19T08:19:00.063-02:00</published><updated>2009-01-21T17:47:12.927-02:00</updated><title type='text'>Artigo Nº 18: Usando WebParts em C#</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;Opa, estou de volta ae para um artigo usando Web Parts. Bom, para quem usa iGoogle é a tecnologia Drag and Drop (arrasta daqui e solta ali), bem útil para simplificar o visual, também é possivel minimizar e fechar uma caixinha. Neste artigo estarei mostrando simplesmente como começar uma aplicação com Web Parts, interação com o banco de dados somente em um artigo futuro. Primeiramente deve-se adicionar o componente WebPartManager que é o componente que gerencia o sistema.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;Em seguida vamos adicionar uma tabela com duas linhas e duas colunas na qual irão ficar os componentes WebPartZone, é dentro destas zonas que ficará tudo que você quer "mover", aqui iremos simplesmente adicionar componentes aleatoriamente, mas o que se costuma&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt; fazer é se adicionar uma User Control onde fica todas as funções desejadas e componentes mais organizadamente. Após adicionar uma WebPartZone em cada célula da tabela vamos adicionar algo dentro de cada uma, simplesmente algo como TextBox, Button, Label, o que você desejar só para ver o componente em ação. No final das contas deverá ficar mais ou menos como na imagem abaixo.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__oxyY_sm52I/SXRifLBjZhI/AAAAAAAAAno/FYtKuVNMOBs/s1600-h/webpart1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 194px;" src="http://2.bp.blogspot.com/__oxyY_sm52I/SXRifLBjZhI/AAAAAAAAAno/FYtKuVNMOBs/s400/webpart1.jpg" alt="" id="BLOGGER_PHOTO_ID_5292963749741946386" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt; Bom, eu fiz assim Botões, TextBox e Label. Se fosse compilar agora sem problemas mas não iria acontecer nada sobre arrastar e largar em outro lugar. Para isto basta adicionar uma única linha de código no evento Page_Load.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;WebPartManager1.DisplayMode = WebPartManager.DesignDisplayMode;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;Este código esta em C# o que não muda quase nada para pascal, só se adiciona 2 pontos antes do igual ':='. Agora se você compilar você verá que é possível arrastar e largar o conteúdo das WebPartZone, mas somente é possível largar dentro das outras WebPartZone. Então esta logo abaixo uma imagem dele em funcionamento.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__oxyY_sm52I/SXRmOyuGmcI/AAAAAAAAAnw/8FmKNxtowf4/s1600-h/webpart2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 199px;" src="http://4.bp.blogspot.com/__oxyY_sm52I/SXRmOyuGmcI/AAAAAAAAAnw/8FmKNxtowf4/s400/webpart2.jpg" alt="" id="BLOGGER_PHOTO_ID_5292967866386520514" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&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;br /&gt;&lt;br /&gt;&lt;br /&gt;No próximo artigo estarei mostrando como administrar cada uma das "caixinhas" para que se estas forem fechadas seja possível se abrir as mesmas novamente.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;Abração e até.&lt;/span&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/3353627314616136057-6170112014686960167?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/6170112014686960167/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=6170112014686960167' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/6170112014686960167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/6170112014686960167'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2009/01/artigo-n-18-usando-webparts-em-c.html' title='Artigo Nº 18: Usando WebParts em C#'/><author><name>Maurício C. Sipmann</name><uri>http://www.blogger.com/profile/10723965685027059811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/__oxyY_sm52I/SOGNkX_iyjI/AAAAAAAAAbs/h_aCVrxG_yM/S220/IMG_0298.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/__oxyY_sm52I/SXRifLBjZhI/AAAAAAAAAno/FYtKuVNMOBs/s72-c/webpart1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-5864690333589391356</id><published>2009-01-16T13:45:00.019-02:00</published><updated>2009-02-05T11:57:50.750-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AutoComplete'/><title type='text'>Artigo Nº 17: Usando AutoCompleteExtender do Ajax Control Toolkit</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;Opa.... Hoje um post de como se utiliza o AutoComplete, este recurso é usado agora pelo google para mostrar perguntas freqüentes. É nada mais nada menos que mostrar os possíveis complementos para uma palavra que esteja sendo digitada em um textbox.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;Para começo adicione os componentes ajax básicos (&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:85%;"  &gt;UpdatePanel &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;e &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:85%;"  &gt;ScriptManager&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;) e em seguida um &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:85%;"  &gt;textbox &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;e o componente &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:85%;"  &gt;AutoCompleteExtender&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;, feito isso vá para o aspx para adicionar uma coisa no componente &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:85%;"  &gt;AutoCompleteExtender, é&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul  style="text-align: justify;font-family:arial;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;servicemethod="AutoCompleta"&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;Entre a&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;s&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;pas duplas é a função que estará no .pas portanto vamos lá declara-la.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;font-family:arial;font-size:85%;"  &gt;&lt;br /&gt;[WebMethod]&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;font-family:arial;font-size:85%;"  &gt;class function AutoCompleta(prefixText: string; count: Integer): TStringArray; static;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;...isso mesmo tem sim um &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 153);font-family:arial;font-size:85%;"  &gt;[WebMethod]&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt; ali junto na declaração dela, e se tentar compilar vai dar erro, então adicione &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:85%;"  &gt;System.Web.Services&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt; nas suas uses. Outra coisa necessária a se fazer é logo depois do Type fazer esta declaração:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-family:arial;font-size:85%;"  &gt;TStringArray = array of string;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;Pois o delphi não aceita funções que retornem array of string, então se da uma enrolada nele. Agora vamos para o código da nossa função.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;font-family:arial;font-size:85%;"  &gt;  PESSOA := TuClassPessoa.create;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;font-family:arial;font-size:85%;"  &gt;   SetLength(Result, Count);&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;font-family:arial;font-size:85%;"  &gt;  for I := 1 to count do&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;font-family:arial;font-size:85%;"  &gt;      begin&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153); font-style: italic;font-family:arial;font-size:85%;"  &gt;Result[I - 1] := PESSOA.AutoComplete(&lt;span style="font-weight: bold;"&gt;prefixText&lt;/span&gt;,I);&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;font-family:arial;font-size:85%;"  &gt;&lt;br /&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;Bom, aqui foi o básico, tenho uma classe que retorna uma string com uma sql que faz o filtro por like, isso vocês mesmos podem fazer fácil fácil, e no final retorno uma &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:85%;"  &gt;array of string&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt; com o result (lembra pra enganar ele criamos um tipo chamado &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;font-size:85%;"  &gt;TStringArray. A variavel prefixText vem do componente AutoComplete que é o texto digitado no textbox. Bom, esta feito&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt; e agora vamos ao teste.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__oxyY_sm52I/SXRpr3DtQNI/AAAAAAAAAoU/mf2wd_QABo8/s1600-h/auto_complete.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 173px; height: 266px;" src="http://3.bp.blogspot.com/__oxyY_sm52I/SXRpr3DtQNI/AAAAAAAAAoU/mf2wd_QABo8/s400/auto_complete.JPG" alt="" id="BLOGGER_PHOTO_ID_5292971664301965522" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;Como podem ver comecei a digitar meu nome e já me trouxe vários Mauricio, e podem ver que cada uma dessas enormes linhas é uma string que ele retornou da minha função. Axo que era isso por hoje.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;Abração e Até&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-5864690333589391356?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/5864690333589391356/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=5864690333589391356' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/5864690333589391356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/5864690333589391356'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2009/01/artigo-n-17-usanco-autocompleteextender.html' title='Artigo Nº 17: Usando AutoCompleteExtender do Ajax Control Toolkit'/><author><name>Maurício C. Sipmann</name><uri>http://www.blogger.com/profile/10723965685027059811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/__oxyY_sm52I/SOGNkX_iyjI/AAAAAAAAAbs/h_aCVrxG_yM/S220/IMG_0298.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/__oxyY_sm52I/SXRpr3DtQNI/AAAAAAAAAoU/mf2wd_QABo8/s72-c/auto_complete.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-4174750263007034925</id><published>2009-01-16T11:19:00.036-02:00</published><updated>2009-01-16T22:00:32.807-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Prism'/><title type='text'>Delphi.net Nova Versão</title><content type='html'>&lt;span style=";font-family:arial;font-size:85%;"  &gt;Pois é.... Depois de um &lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;span style="font-weight: bold;"&gt;looongo&lt;/span&gt; &lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;tempo sem postar nada - compromissos com o trabalho - volto para mostrar para quem ainda não sabe da nova versão do delphi.net, o Delphi Prism, agora este não rodara mais na IDE do RAD Studio, agora ele será um plug-in do Visual Studio.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;Algumas das novidades em relação ao Delphi Prism...&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul  style="font-family:arial;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Não mais a VCL.NET&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;.NET Framework 3.5&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Não necessita uma nova licença do Visual Studio&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Produz executáveis compatíveis com o framework .NET Mono, para Linux e Mac&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Ainda não se pode desenvolver aplicativos .NET Compact Framework uma vez que a Microsoft fez o CF só para suas linguagens.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;A linguagem traz recursos avançados como nullable types e “future” types, generics, sequences e query expressions (LINQ)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Funcionará com as tecnologias WPF, Silverlight, ASP.NET and LINQ&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Não precisa instalar os outros pacotes do Visual Studio.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;Para quem quiser ver já ele em uso ta ai uma &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;a style="font-family: arial;" href="http://www.delphi.org/screencasts/3-DelphiPrismVideo1.html"&gt;PREVIEW&lt;/a&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt; em inglês por &lt;/span&gt;&lt;span class="entry-author-name" style=";font-family:arial;font-size:85%;"  &gt;Jim McKeeth.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Abração e até.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-4174750263007034925?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/4174750263007034925/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=4174750263007034925' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/4174750263007034925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/4174750263007034925'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2009/01/delphinet-nova-verso.html' title='Delphi.net Nova Versão'/><author><name>Maurício C. Sipmann</name><uri>http://www.blogger.com/profile/10723965685027059811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/__oxyY_sm52I/SOGNkX_iyjI/AAAAAAAAAbs/h_aCVrxG_yM/S220/IMG_0298.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-8294451952566761524</id><published>2008-10-23T19:43:00.025-02:00</published><updated>2008-11-14T10:46:37.484-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX  Control ToolKit'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Artigo Nº 16: Usando Validator Callout Extender do Ajax Control Toolkit em suas Aplicações com o  Rad Studio 2007</title><content type='html'>&lt;p class="MsoNormal" style="LINE-HEIGHT: 150%; TEXT-ALIGN: justify"&gt;&lt;span style="LINE-HEIGHT: 150%"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Nesse artigo, trabalharemos com mais um componente do Ajax Control Toolkit, o ValidatorCalloutExtender, cuja função é exibir as mensagens dos componentes da Web Validation (CompareValidator, RegularExpressionValidator, RequireFieldValidator, CustonValidator, RangeValidator).&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="LINE-HEIGHT: 150%; TEXT-ALIGN: justify"&gt;&lt;span style="LINE-HEIGHT: 150%"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Neste exemplo utilizaremos o RegularExpressionValidator, responsável por validar valores informados em um TextBox. Ex: Data e Hora.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="LINE-HEIGHT: 150%; TEXT-ALIGN: justify"&gt;&lt;span style="LINE-HEIGHT: 150%"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;Seguindo, arraste para sua página um TextBox, o RegularExpressionValidator, e o ValidatorCalloutExtender.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="LINE-HEIGHT: 150%; TEXT-ALIGN: justify"&gt;&lt;span style="LINE-HEIGHT: 150%"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;OBS: Para aprimorar sua aplicação, veja o Artigo Nº &lt;/span&gt;&lt;a href="http://geeksnet.blogspot.com/2008/09/artigo-n-05-usando-calendar-extender-e.html"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;5&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; e &lt;/span&gt;&lt;a href="http://geeksnet.blogspot.com/2008/09/artigo-n-08-customizando-calendar_09.html"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;8&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="LINE-HEIGHT: 150%; TEXT-ALIGN: justify"&gt;&lt;span style="LINE-HEIGHT: 150%"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;Aplique as&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;configurações no RegularExpressionValidator:&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="LINE-HEIGHT: 150%; TEXT-ALIGN: justify"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="LINE-HEIGHT: 150%"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;ID&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="LINE-HEIGHT: 150%"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: Coloque um nome mais simples(Ex: revData).&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="LINE-HEIGHT: 150%; TEXT-ALIGN: justify"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="LINE-HEIGHT: 150%"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;ErroMessage&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="LINE-HEIGHT: 150%"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: Uma mensagem de erro(Ex: D&lt;/span&gt;&lt;span class="Apple-style-span" style="LINE-HEIGHT: normal;font-family:Georgia;" &gt;&lt;span class="Apple-style-span" style="LINE-HEIGHT: 24px;font-family:arial;" &gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;ata Inválida).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="LINE-HEIGHT: 150%; TEXT-ALIGN: justify"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="LINE-HEIGHT: 150%"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Display&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="LINE-HEIGHT: 150%"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: Marque a opção None, ou seja, opção que não permitirá exibir a mensagem de erro no próprio componente.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="LINE-HEIGHT: 150%; TEXT-ALIGN: justify"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="LINE-HEIGHT: 150%"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;ControlToValidator&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="LINE-HEIGHT: 150%"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: Selecione o nome do TextBox para o controle.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="LINE-HEIGHT: 150%; TEXT-ALIGN: justify"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="LINE-HEIGHT: 150%"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;ValidationExpression&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="LINE-HEIGHT: 150%"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: Coloque a expressão seguinte para que seja feita a validação para o formato de data dd/MM/yyyy: &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="LINE-HEIGHT: 150%; TEXT-ALIGN: justify"&gt;&lt;span style="LINE-HEIGHT: 150%"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="COLOR: rgb(0,0,153)"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;^(((((0[1-9])(1\d)(2[0-8]))\/((0[1-9])(1[0-2])))((31\/((0[13578])(1[02])))((2930)\/((0[1,3-9])(1[0-2])))))\/((20[0-9][0-9])(19[0-9][0-9])))((29\/02\/(1920)(([02468][048])([13579][26]))))$&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="LINE-HEIGHT: 150%; TEXT-ALIGN: justify"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-mso-ansi-language: PT-BR; mso-fareast-language: EN-US; mso-bidi-language: AR-SAfont-family:Calibri;" &gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Para o componente ValidatorCalloutExtender, a única propriedade a ser configurada é a &lt;span class="Apple-style-span" style="FONT-WEIGHT: bold"&gt;TargetControlID&lt;/span&gt;, onde deve-se selecionar qual é o RegularExpressionValidator para o seu controle&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;br /&gt;OBS: Sempre lembrando que os componentes do Ajax Control Toolkit devem ficar dentro do UpdatePanel.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="LINE-HEIGHT: 150%; TEXT-ALIGN: justify"&gt;&lt;span style="LINE-HEIGHT: 150%"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;Compile e digite uma data&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;inválida e veja o resultado(Figura 1).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="LINE-HEIGHT: 150%; TEXT-ALIGN: justify"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;Figura 1:&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5260470064636962226" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 61px" alt="" src="http://1.bp.blogspot.com/_ZI-3GN42lGo/SQDxpxJDJbI/AAAAAAAAAho/AVbaRo1gt8g/s400/Untitled-1.gif" border="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="LINE-HEIGHT: 150%; TEXT-ALIGN: justify"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Show de Bola. No próximo post, customizando&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;com CSS esse componente.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="LINE-HEIGHT: 150%; TEXT-ALIGN: justify"&gt;&lt;span style="LINE-HEIGHT: 150%"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;Valeu. Até a próxima.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="LINE-HEIGHT: 150%; TEXT-ALIGN: justify"&gt;&lt;span style="LINE-HEIGHT: 150%"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-8294451952566761524?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/8294451952566761524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/8294451952566761524'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2008/10/artigo-n-16-usando-validator-callout.html' title='Artigo Nº 16: Usando Validator Callout Extender do Ajax Control Toolkit em suas Aplicações com o  Rad Studio 2007'/><author><name>Tiago José Pasieka</name><uri>http://www.blogger.com/profile/15442118935490129621</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_ZI-3GN42lGo/S54a_RKJ2pI/AAAAAAAAAnc/hsvvdJp6tPA/S220/65271.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ZI-3GN42lGo/SQDxpxJDJbI/AAAAAAAAAho/AVbaRo1gt8g/s72-c/Untitled-1.gif' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-3206808013996166544</id><published>2008-10-14T08:45:00.006-03:00</published><updated>2008-10-14T09:03:58.272-03:00</updated><title type='text'>Conclusão do Curso DELPHI for ASP.NET</title><content type='html'>Terminou sábado passado o curso de DELPHI 2007 for .NET em Três de Maio na SETREM, participaram do curso vários membros do Geeks .NET, são eles: Bolívar Arthur Butzke, Edinei Daniel Steffen, Eduardo Marcel Signori, Maikel Scheid, Maiquel Muller, Mateus André Chies, Maurício Camargo Sipmann e Tiago José Pasieka. O instrutor foi Eduardo Seganfredo da Aquasoft, empresa parceira Borland/CodeGear de Porto Alegre. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_VjhF_SEitUs/SPSJhPEa0eI/AAAAAAAAAEM/bg7mdsSZLvE/s1600-h/dotnetcurso.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_VjhF_SEitUs/SPSJhPEa0eI/AAAAAAAAAEM/bg7mdsSZLvE/s400/dotnetcurso.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5256977869121966562" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-3206808013996166544?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/3206808013996166544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/3206808013996166544'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2008/10/concluso-do-curso-delphi-for-aspnet.html' title='Conclusão do Curso DELPHI for ASP.NET'/><author><name>Bolívar Arthur Butzke</name><uri>https://profiles.google.com/115253865457720310323</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DKxFfFY7jkw/AAAAAAAAAAI/AAAAAAAACAc/L2U5KijlcQA/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_VjhF_SEitUs/SPSJhPEa0eI/AAAAAAAAAEM/bg7mdsSZLvE/s72-c/dotnetcurso.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-3916087674543492975</id><published>2008-10-03T12:30:00.012-03:00</published><updated>2008-10-10T07:39:59.658-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Programação'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Artigo Nº 15: Trabalhando com Diretórios e Arquivos</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Neste artigo veremos como criar diretórios, arquivos, listar os arquivos de um diretório em uma datagrid.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Primeiramente declare nas &lt;em&gt;uses &lt;/em&gt;a System.IO; para poder utilizar-se desta biblioteca.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Para lista os arquivos de um diretório em uma datagrid, basta no onclick de um buttom, criar uma variável "Caminho" do tipo String, atribuir a ela uma caminho, no exemplo 1, esta sendo atribuido o caminho da aplicação no servidor da seguinte maneira "&lt;em&gt;caminho := Server.MapPath('.');&lt;/em&gt;", após informado o diretório do qual se deseja listar os arquivos chamando a função no &lt;em&gt;"datagrid.datasource := System.IO.Directory.GetDirectories(caminho);" &lt;/em&gt;e logo após chamar o porcedimento &lt;em&gt;"DataGrid1.databind&lt;/em&gt;;".&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Exemplo 1:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="COLOR: rgb(0,0,153)"&gt;&lt;em&gt;procedure TWebForm1.btn_listar_Click(sender: System.Object; e: System.EventArgs);&lt;/em&gt;&lt;br /&gt;&lt;em&gt;var &lt;/em&gt;&lt;br /&gt;&lt;em&gt;caminho : string;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;begin &lt;/em&gt;&lt;br /&gt;&lt;em&gt;caminho := Server.MapPath('.'); &lt;/em&gt;&lt;br /&gt;&lt;em&gt;DataGrid1.DataSource := System.IO.Directory.GetFiles(caminho);&lt;/em&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;em&gt;&lt;span style="COLOR: rgb(0,0,153)"&gt;DataGrid1.databind&lt;/span&gt;;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,153)"&gt;end;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Também é possivel listar apenas os subdiretório de um diretório conforme exemplo 2. &lt;/span&gt;&lt;/div&gt;&lt;span style="font-family:arial;"&gt;&lt;div align="justify"&gt;&lt;br /&gt;Exemplo 2:&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="COLOR: rgb(0,0,153)"&gt;&lt;em&gt;procedure TWebForm1.btn_listar_1_Click(sender: System.Object; e: System.EventArgs);&lt;br /&gt;var&lt;br /&gt;caminho : string;&lt;br /&gt;begin&lt;br /&gt;caminho := Server.MapPath('.');&lt;br /&gt;DataGrid1.DataSource := System.IO.Directory.GetDirectories(caminho);&lt;br /&gt;DataGrid1.databind;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;end;&lt;/em&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Existe sim uma maneira de criar subdiretório no delphi, basta declara duas variáveis, a primeira deve ser com as informações do diretório, da seguinte maneira "pasta : System.IO.DirectoryInfo;" e a segunda uma variável String. Bom agora o procedimento de criação de diretório ou subdiretório pode ser feito de duas maneiras, veja o exemplo 3. &lt;/span&gt;&lt;/div&gt;&lt;span style="font-family:arial;"&gt;&lt;div align="justify"&gt;&lt;br /&gt;Exemplo 3:&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="COLOR: rgb(0,0,153)"&gt;&lt;em&gt;procedure TWebForm1.btn_criar_Click(sender: System.Object; e: System.EventArgs);&lt;/em&gt;&lt;br /&gt;&lt;em&gt;var &lt;/em&gt;&lt;br /&gt;&lt;em&gt;pasta : System.IO.DirectoryInfo;//Declare a uses System.IO &lt;/em&gt;&lt;br /&gt;&lt;em&gt;caminho : string;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;begin&lt;/em&gt;&lt;br /&gt;&lt;em&gt;caminho := Server.MapPath('.');&lt;/em&gt;&lt;br /&gt;&lt;em&gt;pasta := DirectoryInfo.Create('C:\');&lt;/em&gt;&lt;br /&gt;&lt;em&gt;pasta.CreateSubdirectory('temp\'+TextBox1.Text);&lt;/em&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="COLOR: rgb(0,0,153)"&gt;&lt;em&gt;Directory.CreateDirectory(caminho+'/'+TextBox1.Text);&lt;br /&gt;end;&lt;/em&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;É possivel verificar se um diretório já existe, quando se precisar dele, para não se tentar criar um diretório com o mesmo nome ,exemplo 4. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Exemplo 4:&lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,153);font-family:arial;" &gt;&lt;em&gt;procedure TWebForm1.btn_verificar_Click(sender: System.Object; e: System.EventArgs);&lt;br /&gt;var&lt;br /&gt;Caminho : String;&lt;br /&gt;begin&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,153);font-family:arial;" &gt;&lt;em&gt;Caminho := Server.MapPath('./teste');&lt;br /&gt;if Directory.Exists(Caminho) then&lt;br /&gt;Response.Write('Este Diretório ja Existe')&lt;br /&gt;else&lt;br /&gt;Response.Write('Este Diretório não Existe')&lt;br /&gt;end;&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Existem diversas outras funcionalidades dentro da biblioteca System.IO, basta implementar. Aqui vimos apenas 4 formas de se trabalhar com diretórios e arquivos. &lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Forte abraço e até a próxima.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-3916087674543492975?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/3916087674543492975/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=3916087674543492975' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/3916087674543492975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/3916087674543492975'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2008/10/trabalhando-com-diretrios-e-arquivos.html' title='Artigo Nº 15: Trabalhando com Diretórios e Arquivos'/><author><name>Mateus André Chies</name><uri>http://www.blogger.com/profile/06340833625311163500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-KqdzH3IuJy4/Tt_t14BsHkI/AAAAAAAAARI/Tz_2yKaNxKY/s220/CIMG7506.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-2025094467693008223</id><published>2008-10-02T16:10:00.005-03:00</published><updated>2008-10-02T16:16:50.566-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Erros'/><title type='text'>O DELPHI é um POETA 2!</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_ZI-3GN42lGo/SOUdTQPCckI/AAAAAAAAAhg/zy3BN-28SRc/s1600-h/errodelphi.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5252636757010313794" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_ZI-3GN42lGo/SOUdTQPCckI/AAAAAAAAAhg/zy3BN-28SRc/s400/errodelphi.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Aqui vai mais um verso do poeta DELPHI!!!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-2025094467693008223?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/2025094467693008223/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=2025094467693008223' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/2025094467693008223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/2025094467693008223'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2008/10/o-delphi-um-poeta-2.html' title='O DELPHI é um POETA 2!'/><author><name>Tiago José Pasieka</name><uri>http://www.blogger.com/profile/15442118935490129621</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_ZI-3GN42lGo/S54a_RKJ2pI/AAAAAAAAAnc/hsvvdJp6tPA/S220/65271.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ZI-3GN42lGo/SOUdTQPCckI/AAAAAAAAAhg/zy3BN-28SRc/s72-c/errodelphi.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-2793087013903201389</id><published>2008-09-30T15:53:00.003-03:00</published><updated>2008-09-30T15:58:15.947-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Programação'/><category scheme='http://www.blogger.com/atom/ns#' term='Erros'/><title type='text'>O DELPHI é um POETA.!</title><content type='html'>Erros inusitados que você nunca viu por ai... rsrs&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_FI_RvS3NzZs/SOJ2HO-hrwI/AAAAAAAAAGs/udCDzICuvGw/s1600-h/ErroDelphi.gif"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_FI_RvS3NzZs/SOJ2HO-hrwI/AAAAAAAAAGs/udCDzICuvGw/s400/ErroDelphi.gif" alt="" id="BLOGGER_PHOTO_ID_5251889982118932226" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;É gurizada no primeiro post, não saiu artigo por causa disso ai oh ...rsrsrs&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-2793087013903201389?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/2793087013903201389/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=2793087013903201389' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/2793087013903201389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/2793087013903201389'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2008/09/o-delphi-um-poeta.html' title='O DELPHI é um POETA.!'/><author><name>Maiquel Diêgo Müller</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_FI_RvS3NzZs/SOJ4NdrKSpI/AAAAAAAAAG4/0KzmiMoF_-U/S220/yo.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_FI_RvS3NzZs/SOJ2HO-hrwI/AAAAAAAAAGs/udCDzICuvGw/s72-c/ErroDelphi.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-8701422972626545138</id><published>2008-09-29T23:30:00.006-03:00</published><updated>2008-09-30T07:59:48.264-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Banco de Dados'/><title type='text'>Artigo Nº 14: Performance em consultas com Stored Procedures</title><content type='html'>Diante das necessidades de alta performance em aplicações WEB, um elemento que auxilia neste processo são as Stores Procedures(SP), procedimentos executados diretamente pelo BD, diminuindo significativamente o tempo para manipulação dos dados.&lt;br /&gt;Veremos um exemplo de utilização de cursores no Banco Firebird, cursores são normalmente utilizados para retornar mais de um registro em uma SP, entre outras funcionalidades.&lt;br /&gt;Criando nossa Stored Procedure:&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;CREATE PROCEDURE SP_CLIENTES (&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;cep integer)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;returns (&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;nome varchar(100),&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;endereco varchar(100))&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;as&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;begin&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;for select clientes.nome,clientes.endereco from clientes&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;where clientes.cep = :cep&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;into :nome, :endereco do&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;suspend;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;end^&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O uso do &lt;span style="color: rgb(0, 0, 153);"&gt;for/selec/do&lt;/span&gt; caracteriza o uso do cursor.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Após criada nossa S&lt;/span&gt;P, para chamá-la basta realizarmos um simples select passando o parâmetro:&lt;br /&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;select * from sp_clientes(98910000)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;Para consultas pesadas no BD, as SPs são uma ótima alternativa para aumentar a performance.&lt;br /&gt;&lt;br /&gt;Abraço e até a próxima.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PS: O post mais comentado do blog foi simplesmente excluído pelo nosso administrador...&lt;br /&gt;&lt;br /&gt;PS2: Tudo bem, a gente sabe que o blog não trata desse assunto, foi mesmo só pra tirar um pouco com o Azuis..., faz parte tb...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-8701422972626545138?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/8701422972626545138/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=8701422972626545138' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/8701422972626545138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/8701422972626545138'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2008/09/performance-em-consultas-com-stored.html' title='Artigo Nº 14: Performance em consultas com Stored Procedures'/><author><name>signori http://blogsignori.blogspot.com</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_L9LlVO2zDSU/Sgl9tAM19kI/AAAAAAAAAMs/3DpcDqNNDOo/S220/interguerreiro2j.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-8124542271794972929</id><published>2008-09-29T12:58:00.000-03:00</published><updated>2008-09-29T13:49:32.313-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>Artigo Nº 13: Carregar Lista de Dados em C#</title><content type='html'>Bom, estou voltando com um artigo sobre gridview com DataSet em C#. Como já foi dito no &lt;a href="http://geeksnet.blogspot.com/2008/09/cuidados-com-performance-em-aspnet.html"&gt;décimo artigo&lt;/a&gt; que fala sobre performance comparando DataReader e DataSet, o DataSet se torna mais lucrativo quando se trata de performance.  Bom, começando temos primeiramente que configurar uma conexão com o banco de dados, iremos usar o banco de dados SQLServer conectando através do driver de conexão com o Odbc.&lt;br /&gt;&lt;br /&gt;Cria-se uma nova classe com o nome de BancoDados e dentro desta um objeto de conexão Odbc ficando assim.&lt;br /&gt;&lt;br /&gt;public OdbcConnection sCon;&lt;br /&gt;sCon = new OdbcConnection("Driver={SQL Native Client}; Server=crack\\sqlexpress; Database=prop; Uid=sa; Pwd=123456;");&lt;br /&gt;&lt;br /&gt;Onde dentro dos parenteses seria a string de conexão no caso com SQL Server. Criado este objeto vamos criar duas funções, uma para abrir a conexão com o banco e outra para fechar a conexão com o banco. Vamos lá então. A primeira:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;// Publica para ser chamada de qualquer lugar e VOID por que não retorna nada&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;public void Conecta()  &lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;try &lt;span style="color: rgb(0, 153, 0);"&gt;// Tratamento de Erros&lt;/span&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;   &lt;br /&gt;{&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;       &lt;br /&gt;if (sCon.State == 0)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;// Se fechada a conexão, abre ela&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;       &lt;br /&gt;{&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;sCon.Open();&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;// Abre a conexão&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;catch (Exception e)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;   &lt;br /&gt;{&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;throw new Exception("Não Conectou: " + e.Message);&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pois então esta feito a primeira agora a segunda:&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;// Já foi explicado antes o por que do public e do void&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;      public void Desconecta()&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;try&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;            {&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;       &lt;br /&gt;sCon.Close(); &lt;span style="color: rgb(0, 153, 0);"&gt;// Fecha a conexão&lt;/span&gt;&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 153);"&gt;   &lt;br /&gt;}&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;   &lt;br /&gt;catch (Exception e)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;   &lt;br /&gt;{&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;       &lt;br /&gt;t&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;hrow new Exception("Erro: " + e.Message);&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;Bom, nossa primeira classe está pronta, agora vamos para a classe que retornará dados do banco de dados para uma GridView. Cria-se uma nova classe com o nome de usuarios.  Nesta vamos criar uma function apenas.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;// Publica e retorna um DataSet.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;public DataSet Usuarios()&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;{&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;   &lt;br /&gt;&lt;/span&gt;Bom, nossa primeira classe está pronta, agora vamos para a classe que retornará dados do banco de dados para uma GridView. Cria-se uma nova classe com o nome de usuarios. Nesta vamos criar uma function apenas.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;// Publica e retorna um DataSet.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Muito bom, criamos as 2 classes que vamos utilizar. Cria-se uma nova página .aspx para que assim possamos buscar os dados com a nossa classe. Adicione nesta página aspx uma gridview e nomeie ela como desejar, aqui usaremos GVUsuarios como nome dela. Agora vamos no evento OnLoad da página aspx e lá vamos chamar a nossa classe.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;// Define novamente uma variável para uma classe&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;usuarios User = new usuarios();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;// Agora diz que o DataSource da GridView é o nosso DataSet&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;GVUsuarios.DataSource = User.Usuarios();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;// Atualiza a tabela&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;GVUsuarios.DataBind();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agora abaixo vocês podem ver o resultado final, mas é claro que vocês devem definir os campos que vocês querem trazer na GridView&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__oxyY_sm52I/SN505a4CkoI/AAAAAAAAAbk/MxRJZ-5a83s/s1600-h/imagem.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/__oxyY_sm52I/SN505a4CkoI/AAAAAAAAAbk/MxRJZ-5a83s/s320/imagem.JPG" alt="" id="BLOGGER_PHOTO_ID_5250762745376313986" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-8124542271794972929?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/8124542271794972929/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=8124542271794972929' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/8124542271794972929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/8124542271794972929'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2008/09/artigo-n-13-carregar-lista-de-dados-em.html' title='Artigo Nº 13: Carregar Lista de Dados em C#'/><author><name>Maurício C. Sipmann</name><uri>http://www.blogger.com/profile/10723965685027059811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/__oxyY_sm52I/SOGNkX_iyjI/AAAAAAAAAbs/h_aCVrxG_yM/S220/IMG_0298.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/__oxyY_sm52I/SN505a4CkoI/AAAAAAAAAbk/MxRJZ-5a83s/s72-c/imagem.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-4657905573763655749</id><published>2008-09-29T02:30:00.000-03:00</published><updated>2008-09-29T09:59:16.161-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><title type='text'>Teclas de Atalho Delphi</title><content type='html'>F5: Adiciona um break-point na linha selecionada&lt;br /&gt;&lt;br /&gt;Ctrl+F7: Executa a opção de debug Evaluate/Modify para verificar o conteúdo da variável selecionada em tempo de debug.&lt;br /&gt;&lt;br /&gt;Ctrl+F5: Adiciona um Watch para a variável selecionada em tempo de debug.&lt;br /&gt;&lt;br /&gt;Ctrl+Shift+F11: Chama as opções do projeto.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Ctrl+Shift+I&lt;/span&gt;: Indentar multiplas linhas de código de uma única vez em "n" espaços (conforme o que estiver especificado em Tools/Editor Options/General/Block Indent).&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Ctrl+Shift+U&lt;/span&gt;: Recuar indentação em "n" espaços (ídem acima).&lt;br /&gt;&lt;br /&gt;Ctrl+Shift+0 a 9: Inserir um Bookmark no editor de código.&lt;br /&gt;&lt;br /&gt;Ctrl+: troque n pelo número do Bookmark.&lt;br /&gt;&lt;br /&gt;Ctrl+Shift+0: para desmarcar um Bookmark.&lt;br /&gt;&lt;br /&gt;Alt+G: Ir para uma determinada linha.&lt;br /&gt;&lt;br /&gt;Ctrl+Shift+Seta (cima/baixo): Intercala entre o cabeçalho da procedure/função e a implementação da mesma.&lt;br /&gt;&lt;br /&gt;Ctrl+Shift+C: Complementacao de Classes.&lt;br /&gt;&lt;br /&gt;Ctrl+Shift+Up: Vai para a seção interface.&lt;br /&gt;&lt;br /&gt;Ctrl+Shift+Down: Vai para a seção implementation.&lt;br /&gt;&lt;br /&gt;Ctrl+Mouse: Clique com o botão esquerdo do mouse mantendo pressionada a tecla Ctrl sobre a chamada a uma procedure/function/variável para localizá-la na unit atual ou em outra unit.&lt;br /&gt;&lt;br /&gt;Ctrl+J (Code Templates): Exibi templates de códigos.&lt;br /&gt;&lt;br /&gt;Ctrl+Shift+J (Delphi 2006): Executar o SyncEdit para alterar variáveis com mesmo nome de uma só vez após a seleção de um bloco de código.&lt;br /&gt;&lt;br /&gt;Ctrl+O+U: Alterna a caixa (maiúscula/minúscula) do código selecionado.&lt;br /&gt;&lt;br /&gt;Ctrl+K+E: Converter o código selecionado para minúsculas.&lt;br /&gt;&lt;br /&gt;Ctrl+K+F: Converter o código selecionado para maiúsculas.&lt;br /&gt;&lt;br /&gt;Ctrl+E: Ativa a busca incremental. Sem a necessidade de teclar (Ctrl+F).&lt;br /&gt;&lt;br /&gt;Ctrl+Shift+Setas: Mover o(s) componente(s) selecionado(s) rapidamente no form.&lt;br /&gt;&lt;br /&gt;Ctrl+Setas: Move o componente pixel a pixel.&lt;br /&gt;&lt;br /&gt;Shift+Setas: Redimensiona o componente pixel a pixel.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Ctrl+Alt+P&lt;/span&gt; (Delphi 2006...): Seleciona a Paleta de Ferramentas possibilitando a filtragem dos componentes ao se digitar seus nomes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Ctrl+Shift+E&lt;/span&gt; (Delphi 2006...): Executa o Refactoring de modificação de nomes de variáveis, procedures/functions e propriedades.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Ctrl+Shift+A&lt;/span&gt; (Delphi 2006...): Executa o Refactoring Find Unit, que localiza as units onde as variáveis são declaradas e as coloca na seção uses automaticamente.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Ctrl+Shift+V&lt;/span&gt; (Delphi 2006...): Refactoring de declaração de variável, pressiona-se este atalho para declará-la localmente.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Ctrl+Shift+D&lt;/span&gt; (Delphi 2006...): Refactoring de declaração de atributo, pressiona-se este atalho para declará-lo na classe.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Ctrl+Shift+F9&lt;/span&gt; (Delphi 2006...): Executa a aplicação sem a opção de depuração (Debug). A execução fica mais rápida.&lt;br /&gt;&lt;br /&gt;Referências: &lt;a href="http://forum.imasters.uol.com.br/index.php?showtopic=204065 "&gt;Imasters&lt;/a&gt;, &lt;a href="http://waquim.blogspot.com/2007/03/teclas-de-atalhos-do-delphi.html"&gt;Marlos Waquim&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-4657905573763655749?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/4657905573763655749/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=4657905573763655749' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/4657905573763655749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/4657905573763655749'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2008/09/teclas-de-atalho-delphi.html' title='Teclas de Atalho Delphi'/><author><name>Bolívar Arthur Butzke</name><uri>https://profiles.google.com/115253865457720310323</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DKxFfFY7jkw/AAAAAAAAAAI/AAAAAAAACAc/L2U5KijlcQA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-7885190405698970155</id><published>2008-09-26T13:13:00.068-03:00</published><updated>2009-03-05T07:56:00.085-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>Artigo Nº 12: JavaScript Limitador e Contador de Caracteres</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;Bem, neste artigo mostraremos como aplicar um contador e limitador de caracteres para o componente TextBox, onde a cada caractere digitado  irá informar quantos ainda faltam para atingir o limite e depois que atingido não permite digitar mais.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;Montando o layout&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;Com a sua aplicação já criada, coloque um TextBox e logo abaixo coloque a seguinte frase:&lt;br /&gt;Faltam ainda 99 caracteres.&lt;br /&gt;&lt;br /&gt;Depois vá para o código .aspx da sua página, e procure o número da frase acima (esse número pode ser quanto a sua necessidade) e o substitua pelo seguinte código HTML:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre name="code" class="html"&gt;&lt;span id="ContaCaractere"  style="font-size:85%;"&gt;&lt;strong&gt;99&lt;/strong&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-size:85%;"&gt;É nessa tag span é que vai mostrar o número de caracteres que faltam.&lt;br /&gt;&lt;br /&gt;Aproveitando, dentro da tag do componente TextBox, coloque o código HTML abaixo, o evento onkeyup, evento acionado depois que clicar e voltar qualquer tecla do teclado.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre name="code" class="html"&gt;&lt;span style="font-size:85%;"&gt;onkeyup="LimitarCaracter(TextBox1, ContaCaractere,'99');"&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-size:85%;"&gt;Então, quando soltar qualquer tecla, será acionado o evento e executará a função “LimitarCaracter”, passando alguns parâmetros, como por exemplo: “TextBox1” id do TextBox, “ContaCaractere” id do SPAN e “99”, número máximo de caracteres e esse número tenque ser o mesmo a do SPAN.&lt;br /&gt;&lt;br /&gt;Caso seja necessário colocar a mesma função em outro evento, sinta-se a vontade. Ex.: onmousemove, evento quando passar o mouse sobre o TextBox.&lt;br /&gt;&lt;br /&gt;Veja a figura 01 como que fica o código .aspx.&lt;br /&gt;&lt;br /&gt;Figura 01: Codigo .aspx&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ZI-3GN42lGo/SZBGHbMeSQI/AAAAAAAAAhw/2l3Yrb12lZs/s1600-h/fig+1.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 70px;" src="http://2.bp.blogspot.com/_ZI-3GN42lGo/SZBGHbMeSQI/AAAAAAAAAhw/2l3Yrb12lZs/s400/fig+1.jpg" alt="" id="BLOGGER_PHOTO_ID_5300813854788176130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;Escrevendo a Função&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;Agora vamos criar a função JavaScript, para contar e limitar os caracteres. Abra o  bloco de notas e salve dentro do diretório do projeto com o nome de Funcoes.js, arquivo responsável por armazenar todas as funções JavaScript do seu projeto. É uma maneira de deixar seus códigos mais organizados.&lt;br /&gt;&lt;br /&gt;Feito isso, copie a função abaixo e salve:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre name="code" class="js"&gt;function LimitarCaracter(idCampo, idContador, TamMax)&lt;br /&gt;{&lt;br /&gt;Caracteres = TamMax - document.getElementById(idCampo).value.length;&lt;br /&gt;document.getElementById(idContador).innerHTML = Caracteres;&lt;br /&gt;if(document.getElementById(idCampo).value.length &gt;= TamMax)&lt;br /&gt;{&lt;br /&gt;document.getElementById(idCampo).value = document.getElementById(idCampo).value.substring(0, TamMax);&lt;br /&gt;document.getElementById(idContador).innerHTML = "0";&lt;br /&gt;}&lt;br /&gt;}&lt;/pre&gt;&lt;span style="font-size:85%;"&gt;Na linha 1, é declarado a função com o mesmo nome que foi definido no evento do TextBox, com as respectivas variáveis.&lt;br /&gt;&lt;br /&gt;Linha 3 , aplica na variável, a subtração do número máximo pela quantidade de caracteres que já possui no TextBox, resultando no número de caracteres que ainda faltam para chegar no máximo.&lt;br /&gt;&lt;br /&gt;Linha 4, escrever na tag SPAN, o resultado.&lt;br /&gt;&lt;br /&gt;Linha 5, verifica se número de caracteres que já tem no TextBox é maior ou igual ao número máximo permitido.&lt;br /&gt;&lt;br /&gt;Se for verdadeira a condição, na linha 7, escreve no TextBox somente os caracteres que não ultrapassam o número máximo, caso passa da quantidade, apaga-se todos os caracteres a partir desse. E na linha 8, escreve na tag SPAN, o número zero.&lt;br /&gt;&lt;br /&gt;Agora vá novamente no código .aspx da sua página e dentro da tag , localizada no início do código,  coloque o script abaixo, responsável por linka a página  com o arquivo das funções.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre name="code" class="html"&gt;&lt;script type="text/javascript" src="Funcoes.js"&gt;&lt;/script&gt;&lt;/pre&gt;&lt;span style="font-size:85%;"&gt;Feito tudo isso, compilando o resultado é de acordo com a figura 2.&lt;br /&gt;&lt;br /&gt;Figura 02: Resultado&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ZI-3GN42lGo/SZBHCmvT9cI/AAAAAAAAAiA/KlgJfQO3pPg/s1600-h/fig2.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 139px;" src="http://4.bp.blogspot.com/_ZI-3GN42lGo/SZBHCmvT9cI/AAAAAAAAAiA/KlgJfQO3pPg/s400/fig2.jpg" alt="" id="BLOGGER_PHOTO_ID_5300814871499371970" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Caso tenha mais de um TextBox por página para realizar esse procedimento, faça tudo da mesma maneira, mas só substitui o id do TextBox e do SPAN, por outro qualquer e coloque-os na função do evento.&lt;br /&gt;&lt;br /&gt;Ex:&lt;br /&gt;&lt;/span&gt;&lt;pre name="code" class="html"&gt;&lt;span style="font-size:85%;"&gt;onkeyup="LimitarCaracter(TextBox2, ContaCaractere2,'999');"&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-size:85%;"&gt;Um abraço e até o próximo post. Obrigado.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-7885190405698970155?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/7885190405698970155/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=7885190405698970155' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/7885190405698970155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/7885190405698970155'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2008/09/artigo-n-12-java-script-limitador-de.html' title='Artigo Nº 12: JavaScript Limitador e Contador de Caracteres'/><author><name>Tiago José Pasieka</name><uri>http://www.blogger.com/profile/15442118935490129621</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_ZI-3GN42lGo/S54a_RKJ2pI/AAAAAAAAAnc/hsvvdJp6tPA/S220/65271.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ZI-3GN42lGo/SZBGHbMeSQI/AAAAAAAAAhw/2l3Yrb12lZs/s72-c/fig+1.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-4335187327187727190</id><published>2008-09-24T11:55:00.007-03:00</published><updated>2008-09-24T22:18:07.467-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Programação'/><category scheme='http://www.blogger.com/atom/ns#' term='Delphi Tour POA'/><title type='text'>Delphi Tour em Porto Alegre</title><content type='html'>&lt;div  align="justify" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;A Borland Latin America, distribuidora exclusiva da Embarcadero para a linha CodeGear no Brasil, realizou na terça-feira, 23, em Porto Alegre, o Delphi Tour. &lt;/span&gt;&lt;/div&gt;&lt;div  align="justify" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;O evento aconteceu na PUC-RS, das 9h às 12h45, contando com a presença do Sr. Andreano Lanusse (CodeGear/Embarcadero Evangelist Leader for Latin America), que vive atualmente na California USA e é responsável pela ferramenta de desenvolvimento de sistemas Delphi em toda &lt;span style="font-family:arial;"&gt;a América Latina.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;img id="BLOGGER_PHOTO_ID_5249596097949664418" style="margin: 0px auto 10px; display: block; text-align: center;" alt="" src="http://4.bp.blogspot.com/_yoLjCR1I8Sg/SNpP1miRBKI/AAAAAAAAAAo/bVL30QIPQyU/s320/Delphi_Tour.jpg" border="0" /&gt; &lt;/span&gt;&lt;div  align="justify" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;Andreano Lanusse, Fauzi Shubeita e Eu(Edinei Steffen)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;O evento foi voltado a desenvolvedores de software, arquitetos de sistemas, líderes de projetos de software e gerentes de desenvolvimento, onde tiveram a oportunidade de conhecer os novos recursos do Delphi 2009, tais como: globalização de aplicações, criação de interfaces ricas para desktop, escalabilidade de aplicações e muito mais. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div  align="justify" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Entre as novas funcionalidades da ferramenta de desenvolvimento, o Delphi 2009 traz diversos avanços na VCL (Visual Component Library, ou Biblioteca de Componentes Visuais), permitindo a criação de aplicações com interface Ribbon (Recursos presentes no Office 2007), suporte a UNICODE (suporte a código de padrão mundial) e tradução de aplicações. Além disso, vem com o novo DataSnap framework, integrado ao dbExpress e sem dependência da tecnologia COM (Component Object Model).&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div  align="justify" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;E para aqueles que acreditavam que a partir da versão 2009 o Delphi não trabalharia mais com o .NET, não se preocupem segundo Andreano, no final do mês de novembro deste ano (2008) será lançado também o Delphi 2009 for .NET, incorporando as funcionalidades do Framework 3.5 da microsoft.&lt;br /&gt;&lt;br /&gt;A empresa Embarcadero Technologies é a nova "dona" de ferramenta Delphi, onde a ferramenta só tende a crescer com mais força, pois a empresa dispõe de uma equipe com mais de 120 pessoas trabalhando no desenvolvimento e melhoramentos da ferramenta. Segundo Andreano, o Brasil ainda é considerado pequeno frente a outros países, como por exemplo a Rússia investiu neste ano, 1 milhão de licenças para distribuir entre escolas de Ensino Fundamental e Médio.&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div  align="justify" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;A Embarcadero Technologies Inc. auxilia desenvolvedores de aplicações e profissionais de bancos de dados fornecendo ferramentas para o design, construção e execução de aplicações de software no ambiente de preferência do cliente. Uma comunidade de mais de três milhões de pessoas ao redor do mundo e 90 empresas da Fortune 100 confiam nas linhas de produtos da CodeGear™ e da DatabaseGear™ da Embarcadero para aumentar a produtividade, a abertura da colaboração e a liberdade de inovar. Fundada em 1993 a Embarcadero tem sua sede em São Francisco, com escritórios espalhados pelo mundo. &lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div  align="justify" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;t+&lt;/span&gt;&lt;/div&gt;&lt;div  align="justify" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Edinei&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-4335187327187727190?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/4335187327187727190/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=4335187327187727190' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/4335187327187727190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/4335187327187727190'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2008/09/delphi-tour-em-porto-alegre.html' title='Delphi Tour em Porto Alegre'/><author><name>Edinei D. Steffen</name><uri>http://www.blogger.com/profile/06586806443444790022</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_yoLjCR1I8Sg/SLLCeGWkH9I/AAAAAAAAAAM/MGiHeePMJ28/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_yoLjCR1I8Sg/SNpP1miRBKI/AAAAAAAAAAo/bVL30QIPQyU/s72-c/Delphi_Tour.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-2723261616609577786</id><published>2008-09-23T12:12:00.004-03:00</published><updated>2009-03-09T08:48:32.830-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Artigo Nº 11: Resolvendo o erro de acesso negado no Delphi 2007 após instalar IE 7</title><content type='html'>Quando é instalado ou atualizado e IE para a versão 7 após ter instalado o Delphi for .NET 2007 começa a dar erro de acesso negado para ver o Design, para resolver este problema é necessário adicionar uma chave nos registros do Windows.&lt;br /&gt;Para abrir o arquivo de registro do Windows vá a &lt;span style="FONT-WEIGHT: bold"&gt;executar-&gt;regedit&lt;/span&gt;, vai abrir a janela do editor de registro, vá para &lt;span style="FONT-WEIGHT: bold"&gt;Meu Computador-&gt;HKEY_LOCAL_MACHINE-&gt;SOFTWARE-&gt;Microsoft-&gt;Internet Explorer-&gt;Main-&gt;FeatureControl-&gt;FEATURE_OBJECT_CACHING&lt;/span&gt; e clique em &lt;span style="FONT-WEIGHT: bold"&gt;Novo-&gt;Valor DWORD&lt;/span&gt;, nomeie de bds.exe e atribua valor 0. Veja imagem abaixo.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VjhF_SEitUs/SNj3H0qBCNI/AAAAAAAAAD0/ZYDwaCiVvdg/s1600-h/registro.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5249217079466330322" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_VjhF_SEitUs/SNj3H0qBCNI/AAAAAAAAAD0/ZYDwaCiVvdg/s400/registro.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Feito isso, feche o editor, reinicie o computador e pronto.&lt;br /&gt;&lt;br /&gt;Também existe uma solução pronta, basta baixar o arquivo deste link(http://www.stevetrefethen.com/files/FEATURE_OBJECT_CACHING.reg) e executar que faz a mesma coisa.&lt;br /&gt;&lt;br /&gt;Até.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-2723261616609577786?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/2723261616609577786/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=2723261616609577786' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/2723261616609577786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/2723261616609577786'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2008/09/artigo-11-resolvendo-o-erro-de-acesso.html' title='Artigo Nº 11: Resolvendo o erro de acesso negado no Delphi 2007 após instalar IE 7'/><author><name>Bolívar Arthur Butzke</name><uri>https://profiles.google.com/115253865457720310323</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DKxFfFY7jkw/AAAAAAAAAAI/AAAAAAAACAc/L2U5KijlcQA/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_VjhF_SEitUs/SNj3H0qBCNI/AAAAAAAAAD0/ZYDwaCiVvdg/s72-c/registro.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-4946603823375631946</id><published>2008-09-19T12:50:00.002-03:00</published><updated>2008-09-23T10:56:42.385-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Programação'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Artigo Nº 10: Cuidados com Performance em ASP.NET</title><content type='html'>&lt;span style="color: rgb(0, 102, 0);font-family:trebuchet ms;" &gt;Olá a todos...&lt;/span&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;Devido a alguns problemas nesse sentido andei pesquisando sobre o assunto, e objetivo aqui não é comparar qual a melhor maneira de utilizar os dois métodos, mas apenas alertar para possíveis esquecimentos que podem trazer sério problemas de performance às aplicações .NET.&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;strong&gt;DataReader x DataSet&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Trebuchet MS;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:trebuchet ms;font-size:85%;"  &gt;&lt;strong&gt;DataReader&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:trebuchet ms;"&gt;- É um objeto somente leitura e adiante, ou seja, não podemos navegar aleatoriamente utilizando este objeto; &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:trebuchet ms;"&gt;- Trabalha conectado ao banco, deste modo, enquanto estivermos utilizando-o para extração de dados do banco, estaremos "pendurados" em uma conexão; &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:trebuchet ms;"&gt;- Trabalha apenas com uma tabela por vez, ou seja, você deve configurar a string sql para a primeira tabela, conectar no banco, coletar suas informações e desconectar do banco. Para a segunda tabela você deverá fazer tudo novamente.&lt;br /&gt;&lt;em&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;Observação importante: A conexão utilizada pelo DataReader deve ser aberta e fechada manualmente (exceto quando você informa que ela deverá ser fechada automaticamente)&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;em&gt; &lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;span style="font-family:trebuchet ms;"&gt;DataSet &lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:trebuchet ms;"&gt;- Funciona como um cache in-memory, ou seja, você terá sua tabela totalmente disponível para uso, podendo fazer acesso aleatório às rows, inserir, alterar e deletar registros à tabela; &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:trebuchet ms;"&gt;- Trabalha desconectado do banco, deste modo, trabalharemos com os registros sem ocupar uma conexão do banco; &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:trebuchet ms;"&gt;- Trabalha com n tabelas por vez, disponibilizando, inclusive, a possibilidade de relacionamento entre as mesmas, dentre outras funcionalidades.&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;em&gt;Observação importante: A conexão utilizada pelo DataSet não necessita ser aberta e/ou fechada manualmente. Ao chamar o método Fill do DataAdapter a conexão é aberta, são coletados os dados solicitados e a conexão é fechada.&lt;/em&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color: rgb(51, 102, 255);font-family:trebuchet ms;" &gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color: rgb(51, 102, 255);font-family:trebuchet ms;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Observação sobre os objetos Connection&lt;/strong&gt;: É importante ressaltar que todas as conexões abertas manualmente devem ser fechadas manualmente (exceto quando chamar o ExecuteReader utilizando o CommandBehavior.CloseConnection). As conexões abertas e não fechadas, permanecerão abertas mesmo quando seu código estiver fora de escopo. As mesmas não serão fechadas automaticamente, e nem mesmo destruídas pelo Garbage Collector.&lt;/span&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;t+&lt;/div&gt;&lt;div align="justify"&gt;Edinei&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-4946603823375631946?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/4946603823375631946/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=4946603823375631946' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/4946603823375631946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/4946603823375631946'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2008/09/cuidados-com-performance-em-aspnet.html' title='Artigo Nº 10: Cuidados com Performance em ASP.NET'/><author><name>Edinei D. Steffen</name><uri>http://www.blogger.com/profile/06586806443444790022</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_yoLjCR1I8Sg/SLLCeGWkH9I/AAAAAAAAAAM/MGiHeePMJ28/S220/eu.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-5971050161680981332</id><published>2008-09-12T03:57:00.008-03:00</published><updated>2008-09-25T20:55:16.243-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>Artigo Nº 09: CPF Válido - Javascript</title><content type='html'>&lt;span style=";font-family:arial;font-size:100%;"  &gt;Achei na net e achei interessante o algorítmo...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//***********************************SCRIPT 100% DEVELOPED BY GABOWS#888***********************************\\&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//if you're going to change or use this code, do not cut off these lines!&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//se você vai alterar ou utilizar este codigo, não retire estas linhas!&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//***********************************gabows888@yahoo.com.br***********************************\\&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;function criar(){&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;var cnpj=document.getElementById('cpf').value;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;if(cnpj.length!=9){&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; alert("Preencha os nove campos!");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;return false;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;if(isNaN(cnpj)){&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; alert("Preencha somente com dados numéricos!");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;return false;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;if(cnpj!=!isNaN){&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;for(i=0;i&lt;=cnpj.length;i++) total=cnpj.length; campo01=0; campo02=0; n1=cnpj.substring(0,total-8); n2=cnpj.substring(1,total-7); n3=cnpj.substring(2,total-6); n4=cnpj.substring(3,total-5); n5=cnpj.substring(4,total-4); n6=cnpj.substring(5,total-3); n7=cnpj.substring(6,total-2); n8=cnpj.substring(7,total-1); n9=cnpj.substring(8,total); tt1=parseFloat((n1*10)+(n2*9)+(n3*8)+(n4*7)+(n5*6)+(n6*5)+(n7*4)+(n8*3)+(n9*2)); div1=(tt1%11); if(div1&lt;2){&gt;=2){&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; campo01+=parseFloat(11-div1);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;tt2=parseFloat((n1*11)+(n2*10)+(n3*9)+(n4*8)+(n5*7)+(n6*6)+(n7*5)+(n8*4)+(n9*3)+(campo01*2));&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;div2=(tt2%11);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;if(div2&lt;2){&gt;=2){&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; campo02+=parseFloat(11-div2);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;alert(n1+''+n2+''+n3+''+n4+''+n5+''+n6+''+n7+''+n8+''+n9+'-'+campo01+''+campo02);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;return;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-5971050161680981332?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/5971050161680981332/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=5971050161680981332' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/5971050161680981332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/5971050161680981332'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2008/09/cpf-vlido-javascript.html' title='Artigo Nº 09: CPF Válido - Javascript'/><author><name>Bolívar Arthur Butzke</name><uri>https://profiles.google.com/115253865457720310323</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DKxFfFY7jkw/AAAAAAAAAAI/AAAAAAAACAc/L2U5KijlcQA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-6662335285333475648</id><published>2008-09-09T19:55:00.018-03:00</published><updated>2009-02-04T08:44:51.298-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX  Control ToolKit'/><category scheme='http://www.blogger.com/atom/ns#' term='Programação'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>Artigo Nº 08: Customizando Calendar Extender  com CSS no Rad Studio 2007</title><content type='html'>&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:hyphenationzone&gt;21&lt;/w:HyphenationZone&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;PT-BR&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="--"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face  {font-family:"Cambria Math";  panose-1:2 4 5 3 5 4 6 3 2 4;  mso-font-charset:0;  mso-generic-font-family:roman;  mso-font-pitch:variable;  mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face  {font-family:Calibri;  panose-1:2 15 5 2 2 2 4 3 2 4;  mso-font-charset:0;  mso-generic-font-family:swiss;  mso-font-pitch:variable;  mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-unhide:no;  mso-style-qformat:yes;  mso-style-parent:"";  margin-top:0cm;  margin-right:0cm;  margin-bottom:10.0pt;  margin-left:0cm;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-fareast-font-family:Calibri;  mso-bidi-font-family:"Times New Roman";  mso-fareast-language:EN-US;} .MsoChpDefault  {mso-style-type:export-only;  mso-default-props:yes;  font-size:10.0pt;  mso-ansi-font-size:10.0pt;  mso-bidi-font-size:10.0pt;  mso-ascii-font-family:Calibri;  mso-fareast-font-family:Calibri;  mso-hansi-font-family:Calibri;} @page Section1  {size:595.3pt 841.9pt;  margin:70.85pt 3.0cm 70.85pt 3.0cm;  mso-header-margin:35.4pt;  mso-footer-margin:35.4pt;  mso-paper-source:0;} div.Section1  {page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Tabela normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-qformat:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin:0cm;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:"Times New Roman";  mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;No Artigo Nº 05, foi comentado como aplicar o componente Calendar Extender do pacote Ajax Control Toolkit, agora vamos customizar o layout&lt;/span&gt;&lt;span style="font-size:85%;"&gt;  &lt;/span&gt;&lt;span style="font-size:85%;"&gt;dele com estilo CSS.&lt;u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;Para começar, crie uma nova pasta chamada "estilos", dentro da pasta do projeto da aplicação. Depois, abra o bloco de notas ou notepad++&lt;/span&gt;&lt;span style="font-size:85%;"&gt;  &lt;/span&gt;&lt;span style="font-size:85%;"&gt;e salve esse arquivo dentro dessa pasta com o nome de "estilos.css", depois copie o código abaixo e cole no arquivo.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"  &gt;.calendario .ajax__calendar_container&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;/*formatação da parte externa de onde encontra-se o corpo do calendário */&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"   lang="EN-US"&gt;{background-color:#8080FF; border:solid 1px #004000;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"  &gt;.calendario .ajax__cale&lt;/span&gt;&lt;span style=";font-size:85%;color:red;"  &gt;ndar_heade&lt;/span&gt;&lt;span style=";font-size:85%;color:red;"  &gt;r &lt;span style="color: rgb(0, 153, 0);"&gt;/*formatação do cabeçalho*/&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"   lang="EN-US"&gt;{background-color:#ffffff; margin-bottom:3px; border:solid 1px #004000; width:170px;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"  &gt;.calendario .ajax__calendar_title&lt;span style="color: rgb(0, 153, 0);"&gt; /*formatação do texto que encontra-se no cabeçalho*/&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"  &gt;{color:black;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"  &gt;.calendario .ajax__cal&lt;/span&gt;&lt;span style=";font-size:85%;color:red;"  &gt;endar_body&lt;span style="color: rgb(0, 153, 0);"&gt; /*formatação interna de onde se encontra o calendário(onde estão os dias do respectivo mês)*/&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"   lang="EN-US"&gt;{background-color : white ;border : solid 1px #004000 ;}&lt;span style=""&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"  &gt;.calendario .ajax__calendar_dayname&lt;span style=""&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;/*formatação da descrição dos dias da semana*/&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"   lang="EN-US"&gt;{text-align : center ; font-weight : bold ; margin-bottom : 4px ;margin-top : 2px ;color : blue;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"  &gt;.calendario .ajax__calendar_day &lt;span style="color: rgb(0, 153, 0);"&gt;/*formatação dos dias do mês*/&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"   lang="EN-US"&gt;{text-align : center ;c&lt;/span&gt;&lt;span style=";font-size:85%;color:red;"   lang="EN-US"&gt;olor: bl&lt;/span&gt;&lt;span style=";font-size:85%;color:red;"   lang="EN-US"&gt;ack;} &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"  &gt;.calendario .ajax__calendar_hover .ajax__calendar_day&lt;span style=""&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;/*formatação para quando passar o mause sobre um determinado dia*/&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"  &gt;{color: red;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"  &gt;.calendario .ajax__calendar_hover .ajax__calendar_month&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;/*formatação para quando passar mause sobre um determinado mês*/&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"  &gt;{color: red;}&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"  &gt;.calendario .ajax__calendar_hover .ajax__calendar_year&lt;span style=""&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;/*formatação para quando passar o mause sobre um determinado ano*/&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"  &gt;{color: red;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"  &gt;.calendario .ajax__calendar_active &lt;span style="color: rgb(0, 153, 0);"&gt;/*formatação do dia, quando já possui uma data no textbox de controle*/&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"   lang="EN-US"&gt;{background-color: #D4D0C8 ;font-weight : bold ; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"  &gt;.calendario .ajax__ca&lt;/span&gt;&lt;span style=";font-size:85%;color:red;"  &gt;lendar_toda&lt;/span&gt;&lt;span style=";font-size:85%;color:red;"  &gt;y&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;/*destaque para a data atual(Today)*/&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"   lang="EN-US"&gt;{ font-weight : bold ; color : black;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"  &gt;.calendario .ajax__calendar_other .ajax__calendar_day&lt;span style="color: rgb(0, 153, 0);"&gt;/*formatação dos dias que não pertencem ao mês selecionado*/&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"  &gt;&lt;span style=""&gt; &lt;/span&gt;{color:#6A5ACD;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"  &gt;.calendario .ajax__calendar_hover .ajax__calendar_today &lt;span style="color: rgb(0, 153, 0);"&gt;/*formatação para quando passar o mouse sobre a data atual(Today)*/&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"  &gt;{color: #FFFFFF}&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"  &gt;.calendario .ajax__calendar_hover .ajax__calendar_title&lt;span style=""&gt; &lt;span style="color: rgb(0, 153, 0);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;/*formatação para quando passar o mouse sobre o texto do título*/&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-size:85%;color:red;"  &gt;{color : red ; }&lt;span style=""&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;Salve e depois &lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;"&gt;vá para o .aspx da página que você está utilizando o componente &lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;"&gt;e dentro da tag HEAD, coloque o código seguinte logo abaixo da tag TITLE. Esse é o código responsável por buscar os estilos e aplicar na sua página.&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt;&lt;a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ZI-3GN42lGo/SMcBLm_LOzI/AAAAAAAAAeU/mUUHdmKKzd0/s1600-h/Untitled-1.jpg"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_ZI-3GN42lGo/SMcBLm_LOzI/AAAAAAAAAeU/mUUHdmKKzd0/s400/Untitled-1.jpg" alt="" id="BLOGGER_PHOTO_ID_5244161590051945266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Tabela normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-qformat:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin:0cm;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:"Times New Roman";  mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;span style="color: rgb(31, 73, 125);font-family:arial;font-size:85%;"   lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ZI-3GN42lGo/SMb_J339igI/AAAAAAAAAeE/ZW6eTduSQK0/s1600-h/Untitled-1.png"&gt;  &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;Agora no design da página, selecione o componente CalendarExtender e na propriedade CssClass digite calendario, nome dado ao estilo. Daí só compilar e ver o resultado.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;Mais detalhes, veja a edição 99 da revista ClubeDelphi.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-6662335285333475648?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/6662335285333475648/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=6662335285333475648' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/6662335285333475648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/6662335285333475648'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2008/09/artigo-n-08-customizando-calendar_09.html' title='Artigo Nº 08: Customizando Calendar Extender  com CSS no Rad Studio 2007'/><author><name>Tiago José Pasieka</name><uri>http://www.blogger.com/profile/15442118935490129621</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_ZI-3GN42lGo/S54a_RKJ2pI/AAAAAAAAAnc/hsvvdJp6tPA/S220/65271.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ZI-3GN42lGo/SMcBLm_LOzI/AAAAAAAAAeU/mUUHdmKKzd0/s72-c/Untitled-1.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-379546060661477766</id><published>2008-09-09T06:30:00.005-03:00</published><updated>2008-09-10T17:29:57.079-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Programação'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Artigo Nº 07: Exemplo de Paginação GridView</title><content type='html'>Para criar uma paginação em uma GridView, adaptar o código abaixo:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VjhF_SEitUs/SMgtfG8UYXI/AAAAAAAAADs/ShNYF7x7rlc/s1600-h/paginacao.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_VjhF_SEitUs/SMgtfG8UYXI/AAAAAAAAADs/ShNYF7x7rlc/s400/paginacao.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5244491778535743858" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-379546060661477766?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/379546060661477766/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=379546060661477766' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/379546060661477766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/379546060661477766'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2008/09/exemplo-de-paginao.html' title='Artigo Nº 07: Exemplo de Paginação GridView'/><author><name>Bolívar Arthur Butzke</name><uri>https://profiles.google.com/115253865457720310323</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DKxFfFY7jkw/AAAAAAAAAAI/AAAAAAAACAc/L2U5KijlcQA/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_VjhF_SEitUs/SMgtfG8UYXI/AAAAAAAAADs/ShNYF7x7rlc/s72-c/paginacao.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-4766405031981926422</id><published>2008-09-08T12:30:00.006-03:00</published><updated>2008-09-10T08:03:59.382-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>Artigo Nº 06: Função Javascript para ver Elefantes</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VjhF_SEitUs/SMepkw8NtsI/AAAAAAAAADk/ycIspuCAPao/s1600-h/elefate.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_VjhF_SEitUs/SMepkw8NtsI/AAAAAAAAADk/ycIspuCAPao/s400/elefate.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5244346740174075586" /&gt;&lt;/a&gt;&lt;br /&gt;Só pra ter uma noção de como é fácil ver elefantes... :]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-4766405031981926422?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/4766405031981926422/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=4766405031981926422' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/4766405031981926422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/4766405031981926422'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2008/09/funo-javascript-para-ver-elefantes.html' title='Artigo Nº 06: Função Javascript para ver Elefantes'/><author><name>Bolívar Arthur Butzke</name><uri>https://profiles.google.com/115253865457720310323</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DKxFfFY7jkw/AAAAAAAAAAI/AAAAAAAACAc/L2U5KijlcQA/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_VjhF_SEitUs/SMepkw8NtsI/AAAAAAAAADk/ycIspuCAPao/s72-c/elefate.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-632013685635326050</id><published>2008-09-03T20:32:00.019-03:00</published><updated>2009-03-19T14:37:12.709-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX  Control ToolKit'/><category scheme='http://www.blogger.com/atom/ns#' term='Programação'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Artigo Nº 05: Usando Calendar Extender e Mask Edit do Ajax Control Toolkit no Rad Studio 2007</title><content type='html'>&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:hyphenationzone&gt;21&lt;/w:HyphenationZone&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;PT-BR&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="--"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face  {font-family:"Cambria Math";  panose-1:2 4 5 3 5 4 6 3 2 4;  mso-font-charset:0;  mso-generic-font-family:roman;  mso-font-pitch:variable;  mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face  {font-family:Calibri;  panose-1:2 15 5 2 2 2 4 3 2 4;  mso-font-charset:0;  mso-generic-font-family:swiss;  mso-font-pitch:variable;  mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal  {mso-style-unhide:no;  mso-style-qformat:yes;  mso-style-parent:"";  margin-top:0cm;  margin-right:0cm;  margin-bottom:10.0pt;  margin-left:0cm;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-fareast-font-family:Calibri;  mso-bidi-font-family:"Times New Roman";  mso-fareast-language:EN-US;} .MsoChpDefault  {mso-style-type:export-only;  mso-default-props:yes;  font-size:10.0pt;  mso-ansi-font-size:10.0pt;  mso-bidi-font-size:10.0pt;  mso-ascii-font-family:Calibri;  mso-fareast-font-family:Calibri;  mso-hansi-font-family:Calibri;} @page Section1  {size:612.0pt 792.0pt;  margin:70.85pt 3.0cm 70.85pt 3.0cm;  mso-header-margin:36.0pt;  mso-footer-margin:36.0pt;  mso-paper-source:0;} div.Section1  {page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Tabela normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-qformat:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin:0cm;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:"Times New Roman";  mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:"Times New Roman";  mso-bidi-theme-font:minor-bidi;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;Adicionar os componentes &lt;i style=""&gt;ScriptManager&lt;/i&gt; e &lt;i style=""&gt;UpdatePanel&lt;/i&gt; na página.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;Selecionar o &lt;i style=""&gt;ScritManager&lt;/i&gt; e alterar para &lt;i style=""&gt;True&lt;/i&gt; as propriedades &lt;i style=""&gt;EnableScriptGlobalization&lt;/i&gt; e &lt;i style=""&gt;EnableScriptLocalization&lt;/i&gt; no Object &lt;i style=""&gt;Inspector&lt;/i&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;Alterar ou adicionar na&lt;span style=""&gt;  &lt;/span&gt;&lt;i style=""&gt;Web.config&lt;/i&gt; o termo "&lt;i style=""&gt;GLOBALIZATION&lt;/i&gt;" por "&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;&lt;/span&gt;&lt;i style="color: rgb(0, 0, 153);"&gt;globalization culture="pt-BR" uiCulture="pt-BR"/&gt;&lt;/i&gt;" (para traduzir o calendário em português).&lt;u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;Abrir o arquivo .aspx &lt;span style=""&gt; &lt;/span&gt;verifique se a tag "&lt;i style=""&gt;head&lt;/i&gt;" está como &lt;span style="color: rgb(0, 0, 153);"&gt;runat="server"&lt;/span&gt;, caso não e&lt;/span&gt;&lt;span style="font-size:85%;"&gt;steja, coloque-a.&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;OBS: o código do &lt;i style=""&gt;head&lt;/i&gt; deve ser alterado para todas as páginas, indiferente se terá ou não &lt;i style=""&gt;CalendarExtender&lt;/i&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b style=""&gt;&lt;span style="line-height: 115%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b style=""&gt;&lt;span style="line-height: 115%;"&gt;CALENDÁRIO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b style=""&gt;&lt;span style="line-height: 115%;"&gt;Quando clicar no &lt;i style=""&gt;textbox&lt;/i&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;Adicionar um TextBox, depois o componente &lt;i style=""&gt;CalendarExtender&lt;/i&gt;(para isso deve estar instalado o &lt;i style=""&gt;Ajax&lt;/i&gt; &lt;i style=""&gt;Control&lt;/i&gt; &lt;i style=""&gt;Toolkit&lt;/i&gt;), não precisa ser necessariamente ao lado do &lt;i style=""&gt;textbox&lt;/i&gt;, e sim no fim dos &lt;i style=""&gt;layout&lt;/i&gt;, mas dentro do &lt;i style=""&gt;UpdatePanel&lt;/i&gt;, isso porque o componente, no Delphi não no navegador, ocupa um espaço e assim desconfigurando o visual&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;Selecione o CalendarExtender e altere as seguintes propriedades:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;targetcontrolid=(nome do textbox que receberá a data selecionada)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;format=dd/MM/yyyy (formato da data)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;firstdayofweek=Sunday (qual será o primeiro dia da semana que exibirá no calendário)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;popupPosition = Rigth (como o calendário será exibido) &lt;u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b style=""&gt;&lt;span style="line-height: 115%;"&gt;Quando quer colocar uma imagem para exibir o calendário:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;Faça tudo da mesma forma que a de anterior&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;Coloque o componente ImageButton e o nome do ImageButton, colocar na propriedade PopupButtonID do "CalendarExtender".&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;u&gt;&lt;span style="line-height: 115%;"&gt;&lt;o:p&gt;&lt;span style="text-decoration: none;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b style=""&gt;&lt;span style="line-height: 115%;"&gt;MÁSCARA&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;Adicionar&lt;span style=""&gt;  &lt;/span&gt;o componente "MaskEditExtender" da mesma forma que o "CalendarExtender" e alterar as seguintes propriedades:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;TargetControlID= selecionar o textbox de controle&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;Selecione o TextBox e no objector Inspector procure as propriedade Extenders e altere as seguintes propriedades:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;mask="99/99/9999" &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;masktype="Date"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  class="MsoNormal" style="font-family:arial;"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;No próximo artigo estaremos mostrando estilos CSS para o componente CalendarExtender;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-632013685635326050?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/632013685635326050/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=632013685635326050' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/632013685635326050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/632013685635326050'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2008/09/artigo-n-05-usando-calendar-extender-e.html' title='Artigo Nº 05: Usando Calendar Extender e Mask Edit do Ajax Control Toolkit no Rad Studio 2007'/><author><name>Tiago José Pasieka</name><uri>http://www.blogger.com/profile/15442118935490129621</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_ZI-3GN42lGo/S54a_RKJ2pI/AAAAAAAAAnc/hsvvdJp6tPA/S220/65271.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-1695714010932288795</id><published>2008-09-02T01:14:00.004-03:00</published><updated>2008-09-03T20:30:12.012-03:00</updated><title type='text'>Artigo Nº 04: Trabalhando com datas no Delphi .NET usando DateUtils</title><content type='html'>Uma dica muito útil para quem precisa realizar diversos cálculos com datas, seja de dias, semanas e demais.&lt;br /&gt;De início declare na uses a biblioteca: DateUtils, esta possibilita várias funções de cálculo de datas, segue um exemplo de cálculo de dias, onde temos a data atual e queremos somar a mesma com determinado valor de dias:&lt;br /&gt;No load da página, preencho o label com a data atual:&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;span style="font-family:verdana;"&gt;Label3.Text := DateTime.Now.ToString('dd/MM/yyyy');&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Coloco um TextBox e outro Label onde visualizarei o resultado do cálculo, e tb um button. No click do Button vai o seguinte:&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;span style="font-family:verdana;"&gt;Label4.Text := IncDay(convert.ToDateTime(Label3.Text),Convert. ToInt16(TextBox1.Text)).ToString;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Existem diversas outras funções desta biblioteca, que com certeza serão uteis algum dia.&lt;br /&gt;&lt;br /&gt;Abraço e até a próxima!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-1695714010932288795?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/1695714010932288795/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=1695714010932288795' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/1695714010932288795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/1695714010932288795'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2008/09/trabalhando-com-datas-no-delphi-net.html' title='Artigo Nº 04: Trabalhando com datas no Delphi .NET usando DateUtils'/><author><name>signori http://blogsignori.blogspot.com</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_L9LlVO2zDSU/Sgl9tAM19kI/AAAAAAAAAMs/3DpcDqNNDOo/S220/interguerreiro2j.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-4453291771682898030</id><published>2008-09-01T21:25:00.011-03:00</published><updated>2008-09-03T20:29:49.142-03:00</updated><title type='text'>Artigo Nº 03: Exibir um somatório no rodapé da datagrid</title><content type='html'>&lt;span style="font-size:85%;"&gt;                &lt;span style="font-family:arial;"&gt;Bom... No meu primeiro post estarei disponibilizando um tutorial de como exibir o somatório de um campo do banco de dados no rodapé de uma DATAGRID, como por exemplo um campo salário. Para começo deve-se criar uma função do tipo String por exemplo :&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;  &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b style="font-family: arial;"&gt;Soma : String; &lt;/b&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt; &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;E nela adicionar o seguinte os comandos para realizar uma função de consulta com um command no nosso caso bdpComman e nele especificar a conexão que será utilizada para acessar o banco de dados. Segue-se o código.&lt;/span&gt;&lt;/span&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; text-indent: 35.4pt; line-height: normal;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; text-indent: 35.4pt; line-height: normal;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;              &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b style=""&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; color: rgb(0, 0, 153);font-family:arial;"&gt;&lt;span  lang="EN-US" style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;        &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; color: rgb(0, 0, 153);font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;bdpCom := BdpCommand.Create('SELECT&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;SUM(HORAS) AS FEITAS FROM HORAS WHERE BOLSA = ?', Dados.CONEXAO);&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;                &lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;try&lt;br /&gt;&lt;/span&gt;                                &lt;span  lang="EN-US" style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;bdpCom&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b style=""&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span  lang="EN-US" style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Parameters&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b style=""&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span  lang="EN-US" style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;clear&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b style=""&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:85%;"  lang="EN-US"&gt;// Limpa os parâmetros.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b style="color: rgb(0, 153, 0);"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;                             &lt;span style="color: rgb(0, 0, 153);font-size:85%;"  lang="EN-US"&gt;bdpCom.Parameters.Add('BOLSA', BdpType.&amp;amp;String);&lt;span style="color: rgb(0, 153, 0);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:85%;"  lang="EN-US"&gt;//Adiciona um parâmetro.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;                             &lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;b style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;//====================================&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;                                &lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;bdpCom.Parameters['BOLSA'].Value&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;:= BOLSA;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;"  lang="EN-US"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:85%;"  lang="EN-US"&gt;//Da um valor para o parâmetro criado.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;                             &lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;span style="" lang="EN-US"&gt;bdpRead :=bdpCom.ExecuteReader;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b style="color: rgb(0, 0, 153); font-weight: bold;"&gt;&lt;span style="" lang="EN-US"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;"  lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;                                &lt;span style="color: rgb(0, 0, 153);font-size:85%;"  lang="EN-US"&gt;if bdpRead.read then&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);font-size:85%;"  lang="EN-US"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//Se o reader tiver algo nele, retorna o seu valor se não retorna 0.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;"  lang="EN-US"&gt;   Result := bdpRead['FEITAS'].ToString&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;                             &lt;span style="color: rgb(0, 0, 153);font-size:85%;"  lang="EN-US"&gt;else&lt;br /&gt;&lt;/span&gt;&lt;span  lang="EN-US" style="font-size:85%;"&gt;  Result := '0';&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;             &lt;span style="color: rgb(0, 0, 153);font-size:85%;"  lang="EN-US"&gt;finally&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b style=""&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;"  lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 153);font-size:85%;"  lang="EN-US"&gt;bdpCom.free; &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b style=""&gt;&lt;span style="" lang="EN-US"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:85%;"  lang="EN-US"&gt;// Libera da memória&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;                                 &lt;span style="color: rgb(0, 0, 153);font-size:85%;"  lang="EN-US"&gt;bdpRead.free;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span style="font-size:85%;"&gt;end;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal;font-family:arial;"&gt;                         &lt;span style="font-size:85%;"&gt;                Onde o deve-se utilizar o comando ExecuteReader do bdpCommand&lt;/span&gt;&lt;span style="font-size:85%;"&gt;  &lt;/span&gt;&lt;span style="font-size:85%;"&gt;no componente bdpRead, e após isto uma simples verificação para ver se retornou algo da consulta onde foi realizada um SUM(CAMPO), &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;font-size:85%;" &gt;sempre é claro lembrando de liberar da memória os componentes &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b style="color: rgb(0, 0, 0); font-weight: bold;"&gt;(após o finally)&lt;/b&gt;. E retornando no Result a variavel &lt;span style="font-style: italic;"&gt;dbpRead[‘FEITAS’]&lt;/span&gt; que é o nosso &lt;span style="font-style: italic;"&gt;dbpReader&lt;/span&gt;.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;  Após isto, vá na DataGrid e habilite a opção ShowFooter para exibir o rodapé. Agora adicione o evento ItemDataBound na DataGrid para que quando esteja sendo desenhado cada linha ele efetue o comando desejado.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;                &lt;/span&gt;&lt;span style="font-size:85%;"&gt;                Neste evento deve-se adicionar o seguinte comando:&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal; color: rgb(0, 0, 153);font-family:arial;"&gt;&lt;span  lang="EN-US" style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;if e.Item.ItemType = ListItemType.Footer then &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:85%;"  lang="EN-US"&gt;// Se estiver no rodapé executa&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span style="font-size:85%;"&gt;e.Item.Cells[7].Text := Soma (Session['BOLSA'].ToString);&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b style=""&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;                Primeiro se verifica se na hora de desenhar ele esta no rodapé, se sim ele joga para a coluna 7 o valor retornado pela nossa função, abaixo esta a foto do resultado final, é claro que o resto dos campos espera-se que sejam criados manualmente, alias uma ultima coisa.... Isto não funcionará caso exista paginação na datagrid pois na função ele trás logo o total e não o total das linhas que estão aparecendo. &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__oxyY_sm52I/SLyIhyB4p5I/AAAAAAAAAak/BK1PoQ_AIZ0/s1600-h/imagem.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/__oxyY_sm52I/SLyIhyB4p5I/AAAAAAAAAak/BK1PoQ_AIZ0/s320/imagem.JPG" alt="" id="BLOGGER_PHOTO_ID_5241214180299155346" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;                Bom, creio que seja isto....&lt;/span&gt;&lt;span style="font-size:85%;"&gt;  &lt;/span&gt;&lt;span style="font-size:85%;"&gt;Até mais!&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-bottom: 0.0001pt; line-height: normal;font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-4453291771682898030?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/4453291771682898030/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=4453291771682898030' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/4453291771682898030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/4453291771682898030'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2008/09/exibir-um-somatrio-no-rodap-da-datagrid.html' title='Artigo Nº 03: Exibir um somatório no rodapé da datagrid'/><author><name>Maurício C. Sipmann</name><uri>http://www.blogger.com/profile/10723965685027059811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/__oxyY_sm52I/SOGNkX_iyjI/AAAAAAAAAbs/h_aCVrxG_yM/S220/IMG_0298.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/__oxyY_sm52I/SLyIhyB4p5I/AAAAAAAAAak/BK1PoQ_AIZ0/s72-c/imagem.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-5562086441836165593</id><published>2008-09-01T18:43:00.010-03:00</published><updated>2009-10-22T15:13:17.235-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Artigo Nº 02: GridView em DELPHI .NET</title><content type='html'>&lt;p align="justify"&gt;Olá a todos!&lt;br /&gt;&lt;br /&gt;Este tutorial é sobre GridView em RAD Studio .NET, ASP.NET.&lt;br /&gt;&lt;br /&gt;- Adicionar Colunas em Tempo de Execução&lt;br /&gt;&lt;br /&gt;Em alguns casos é necessário adicionar colunas em tempo de execução em uma GridView, isso pode ser feito adicionando um código parecido com este no evento que desejar:&lt;br /&gt;&lt;pre class="delphi" name="code"&gt;var&lt;br /&gt;CAMPO1, CAMPO2, CAMPO3, CAMPO4 : BoundField;&lt;br /&gt;begin&lt;br /&gt;  CAMPO1 := BoundField.Create;&lt;br /&gt;  CAMPO2 := BoundField.Create;&lt;br /&gt;  CAMPO3 := BoundField.Create;&lt;br /&gt;  CAMPO4 := BoundField.Create;&lt;br /&gt;  try&lt;br /&gt;    CAMPO1.HeaderText := 'Código';&lt;br /&gt;    CAMPO1.DataField := 'CODIGO';&lt;br /&gt;    CAMPO2.HeaderText := 'Nome';&lt;br /&gt;    CAMPO2.DataField := 'NOME';&lt;br /&gt;    CAMPO3.HeaderText := 'Idade';&lt;br /&gt;    CAMPO3.DataField := 'IDADE';&lt;br /&gt;    CAMPO4.HeaderText := 'Telefone';&lt;br /&gt;    CAMPO4.DataField := 'TELEFONE';&lt;br /&gt;    GridView1.Columns.Insert(0,CAMPO1);&lt;br /&gt;    GridView1.Columns.Insert(1,CAMPO2);&lt;br /&gt;    GridView1.Columns.Insert(2,CAMPO3);&lt;br /&gt;    GridView1.Columns.Insert(3,CAMPO4);&lt;br /&gt;  finally&lt;br /&gt;    CAMPO1.Free;&lt;br /&gt;    CAMPO2.Free;&lt;br /&gt;    CAMPO3.Free;&lt;br /&gt;    CAMPO4.Free;&lt;br /&gt;  end;&lt;br /&gt;end;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Obs: Pode ser adicionado outros tipos de colunas também como ButtonColumn e definir outras propriedades.&lt;br /&gt;&lt;br /&gt;- Recuperar Valores&lt;br /&gt;&lt;br /&gt;Tive alguns problemas para recuperar os valores de uma gridview no começo porque quando você define que a coluna código, por exemplo, é visible=false, ele não permite pegar o conteúdo daquela coluna facilmente, mas com DataKeys é tranquilo, os códigos abaixo:&lt;br /&gt;&lt;pre class="delphi" name="code"&gt;GridView1.DataKeys[Convert.ToInt32(e.CommandArgument)].Item[0].ToString;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;ou&lt;br /&gt;&lt;pre class="delphi" name="code"&gt;GridView1.DataKeys[Convert.ToInt32(e.CommandArgument)].Values[0].ToString;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Na gridview precisa ser preenchido a propriedade DataKeysNames, pode ir direto no código ou configurar na paleta propriedades mesmo, coloque o nome do campo que busca no BD, se quiser pode colocar mais de um(array), desde que separe com vírgula, se colocar mais de um, muda o valor -&gt; Values[array], por exemplo, se quiser pegar o valor NOME, ficaria assim:&lt;br /&gt;&lt;br /&gt;Ex: datakeynames="CODIGO, NOME"&lt;br /&gt;&lt;pre class="delphi" name="code"&gt;//pega o código&lt;br /&gt;GridView1.DataKeys[Convert.ToInt32(e.CommandArgument)].Values[0].ToString; &lt;br /&gt;//pega o nome&lt;br /&gt;GridView1.DataKeys[Convert.ToInt32(e.CommandArgument)].Values[1].ToString; &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;O evento para pegar os valores é o RowCommand, fica no mesmo estilo que datagrid, coloca um buttonfield e atribui um commandname pra ele, no evento rowcommand pode-se implementar um codigo parecido com esse:&lt;br /&gt;&lt;pre class="delphi" name="code"&gt;if e.CommandName = 'EXCLUIR' then&lt;br /&gt;begin&lt;br /&gt;lblcontrole.text := GrVwComponentes.DataKeys[Convert.ToInt32(e.CommandArgument)].Values[0].ToString;&lt;br /&gt;Excluir;&lt;br /&gt;end;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Qualquer dúvida postem ai!!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-5562086441836165593?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/5562086441836165593/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=5562086441836165593' title='6 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/5562086441836165593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/5562086441836165593'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2008/09/ol-todos-este-tutorial-sobre-gridview.html' title='Artigo Nº 02: GridView em DELPHI .NET'/><author><name>Bolívar Arthur Butzke</name><uri>https://profiles.google.com/115253865457720310323</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-DKxFfFY7jkw/AAAAAAAAAAI/AAAAAAAACAc/L2U5KijlcQA/s512-c/photo.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3353627314616136057.post-3388540257156917412</id><published>2008-09-01T14:13:00.003-03:00</published><updated>2009-03-19T14:36:21.656-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>Artigo Nº 01: Estilo para deixar um texto na vertical em uma célula</title><content type='html'>Aqui vai um estilo para deixar o seu texto de uma célula da tabela no sentido vertical. Copie o código seguinte e cole no seu arquivo de estilo (CSS);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;span style="color: rgb(255, 0, 0);"&gt;.textovertical&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; {&lt;span style="color: rgb(0, 0, 153);"&gt;writing-mode: tb-rl;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  filter: flipv fliph;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  font-size: 9pt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  font-family:Arial,Helvetica;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  color:#330066;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;strong&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;Depois clique dentro da célula que desejas aplicar o estilo e na propriedade css escreva o nome do estilo(textovertical). Pronto, só executar.&lt;br /&gt;&lt;br /&gt;Valeu! E que esse código seja útil para você.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3353627314616136057-3388540257156917412?l=geeksnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksnet.blogspot.com/feeds/3388540257156917412/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3353627314616136057&amp;postID=3388540257156917412' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/3388540257156917412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3353627314616136057/posts/default/3388540257156917412'/><link rel='alternate' type='text/html' href='http://geeksnet.blogspot.com/2008/09/estilo-para-deixar-um-texto-na-vertical.html' title='Artigo Nº 01: Estilo para deixar um texto na vertical em uma célula'/><author><name>Tiago José Pasieka</name><uri>http://www.blogger.com/profile/15442118935490129621</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/_ZI-3GN42lGo/S54a_RKJ2pI/AAAAAAAAAnc/hsvvdJp6tPA/S220/65271.JPG'/></author><thr:total>2</thr:total></entry></feed>
