<?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:blogger='http://schemas.google.com/blogger/2008' 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-7914785733761945904</id><updated>2026-07-09T08:37:10.120-03:00</updated><category term="Programação"/><category term="Delphi"/><category term="Curiosidades"/><category term="Hardware"/><category term="Tutoriais"/><category term="SO"/><category term="Vídeo Aula"/><category term="Software"/><category term="Java"/><category term="Quick Tips"/><category term="Redes"/><category term="Banco de dados"/><category term="FAQ"/><category term="What Is It?"/><category term="Análise"/><category term="Edição de Imagens"/><category term="Outros"/><category term="Download"/><category term="Segurança"/><category term="Gerencia de Projetos"/><category term="Internet"/><category term="SEO"/><category term="SQL"/><title type='text'>ClipaTec Informática</title><subtitle type='html'>A Internet à serviço do conhecimento e aprendizado.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>326</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-4789485868789765927</id><published>2025-05-15T12:32:00.000-03:00</published><updated>2025-05-15T12:32:22.748-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Curiosidades"/><category scheme="http://www.blogger.com/atom/ns#" term="Programação"/><category scheme="http://www.blogger.com/atom/ns#" term="What Is It?"/><title type='text'>O que é Markdown?</title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj5afad-HZ1sIPhAMpKAD6QkAP5bTnrjedUkJgZ7LC82pegwgGFVXW3ICKu1YWka-c7oGxf3QB9yK-SGHT19CEaVcKAxj0zGWmCP1POp8PiqtZqXT_E_ATmCgUflLAXKUIHnjA3NVBpAL5pMzRinMVtLJ2q0qQxWWJFc63ha_nNpwCkc9jPcK4QBJaxSLds&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Markdown&quot; data-original-height=&quot;256&quot; data-original-width=&quot;256&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj5afad-HZ1sIPhAMpKAD6QkAP5bTnrjedUkJgZ7LC82pegwgGFVXW3ICKu1YWka-c7oGxf3QB9yK-SGHT19CEaVcKAxj0zGWmCP1POp8PiqtZqXT_E_ATmCgUflLAXKUIHnjA3NVBpAL5pMzRinMVtLJ2q0qQxWWJFc63ha_nNpwCkc9jPcK4QBJaxSLds=w200-h200&quot; title=&quot;Markdown&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Olá meus caros, já ouviram falar sobre&amp;nbsp;Markdown? O que é? Para que serve? Qual a relação com o HTML?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Neste post, vamos responder essas dúvidas, então vem comigo.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;1 -&amp;nbsp;O que é Markdown?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Em síntese, &lt;b&gt;é uma linguagem de marcação leve com sintaxe de formatação de texto plano simples,&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;criada por John Gruber em 2004&lt;/span&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;.&lt;b&gt; É fácil de aprender e ler,&lt;/b&gt; visto que, o foco está na escrita e não na formatação complexa &lt;b&gt;e tem a capacidade de ser convertida para HTML&lt;/b&gt; e outros formatos para que seja exibido de forma formatada em navegadores e outras plataformas.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Podemos dizer que, a Markdown &lt;b&gt;é uma forma de estilizar textos usando caracteres comuns ao invés de usar tags complexas como no HTML.&lt;/b&gt; Com ele, podemos usar símbolos simples para criar títulos, listas, negrito, itálico, links, imagens, etc.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Abaixo, temos alguns exemplos simples de&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Markdown:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Título de nível 1: &lt;b&gt;# Meu Título&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Título de nível 2: &lt;b&gt;## Subtítulo&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Texto em negrito: &lt;b&gt;**Texto em negrito** ou _ _Texto em negrito_ _&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Texto em itálico: &lt;b&gt;*Texto em itálico* ou _Texto em itálico_&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Lista não ordenada:&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;- Item 1&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;- Item 2&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;- Item 3&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Lista ordenada:&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;1. Primeiro item&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;2. Segundo item&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;3. Terceiro item&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Link: &lt;b&gt;[Texto do link](https://www.clipatecinformatica.com.br)&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Imagem: &lt;b&gt;![Texto alternativo da imagem](caminho/da/imagem.jpg)&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;2 - Para que serve?&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Podemos dizer então, que o Markdown serve &lt;b&gt;para simplificar o processo de escrita de conteúdo formatado, especialmente para a web.&lt;/b&gt; Existem algumas vantagens em usar o Markdown, por exemplo:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span style=&quot;color: #073763;&quot;&gt;&lt;b&gt;Facilidade de escrita:&lt;/b&gt;&lt;/span&gt; &lt;b&gt;A sintaxe do Markdown é&lt;/b&gt; muito&amp;nbsp;&lt;b&gt;mais leve e intuitiva do que o HTML,&lt;/b&gt; o que torna a escrita&amp;nbsp;mais rápida&amp;nbsp;e &lt;b&gt;focada no conteúdo.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #073763;&quot;&gt;Legibilidade:&lt;/span&gt;&lt;/b&gt; Textos em Markdown &lt;b&gt;são mais fáceis de ler,&lt;/b&gt; mesmo em sua forma original, &lt;b&gt;dispensando a necessidade de interpretar várias tags HTML.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #073763;&quot;&gt;Portabilidade:&lt;/span&gt;&lt;/b&gt; Por ser &lt;b&gt;texto plano,&lt;/b&gt; isso o torna &lt;b&gt;altamente portável e compatível com diversos editores&lt;/b&gt; de textos e plataformas.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #073763;&quot;&gt;Conversão fácil:&lt;/span&gt;&lt;/b&gt; Existem &lt;b&gt;inúmeras ferramentas e bibliotecas&lt;/b&gt; disponíveis &lt;b&gt;para converter Markdown para HTML e outros formatos&lt;/b&gt; como, PDF, ePub, etc.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #073763;&quot;&gt;Popularidade:&lt;/span&gt;&lt;/b&gt; É amplamente &lt;b&gt;utilizado em diversas plataformas como GitHub&lt;/b&gt; (para arquivos README, comentários, issues), Reddit, Stack Overflow, editores de texto e aplicativos de anotação.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;3 - Qual a relação com o HTML?&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;É importante ressaltar que, &lt;b&gt;o Markdown não é um concorrente do HTML,&lt;/b&gt; mas sim, &lt;b&gt;um facilitador para a criação de HTML.&lt;/b&gt; A principal relação entre eles é que o texto formatado em Markdown é geralmente convertido para HTML através de um software denominado &quot;processador de Markdown&quot; ou &quot;parser&quot;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Ao escrever &lt;b&gt;um arquivo em Markdown&lt;/b&gt; (geralmente com a extensão &quot;.md&quot;), ele &lt;b&gt;é um arquivo de texto simples.&lt;/b&gt; Para que essa formatação seja exibida corretamente em um navegador web ou outro aplicativo que interprete HTML, &lt;b&gt;o texto Markdown precisa ser processado e transformado nas tags HTML correspondentes.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Vamos a um exemplo de texto em Markdown e sua conversão para HTML:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #073763; font-family: helvetica;&quot;&gt;&lt;b&gt;Texto em Markdown:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;# Este é um título&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Isto é um &lt;b&gt;**texto em negrito**&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;- Item&lt;/b&gt; de uma &lt;b&gt;lista não ordenada&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #073763; font-family: helvetica;&quot;&gt;&lt;b&gt;Convertido para HTML:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;lt;h1&amp;gt;&lt;/b&gt;Este é um título&lt;b&gt;&amp;lt;/h1&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;lt;p&amp;gt;&lt;/b&gt;Isto é um &lt;b&gt;&amp;lt;strong&amp;gt;&lt;/b&gt;texto em negrito&lt;b&gt;&amp;lt;/strong&amp;gt;.&amp;lt;/p&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;lt;ul&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;b&gt;&amp;lt;li&amp;gt;&lt;/b&gt;Item de uma lista não ordenada&lt;b&gt;&amp;lt;/li&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span&gt;&lt;b&gt;&amp;lt;/ul&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span&gt;Podemos concluir então que, &lt;b&gt;o Markdown não substitui o HTML&lt;/b&gt; em sua totalidade. &lt;b&gt;O HTML é uma linguagem de marcação muito mais poderosa e expressiva,&lt;/b&gt; capaz de escrever a estrutura e conteúdo de páginas web complexas, incluindo elementos interativos, scripts, estilos avançados, etc.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span&gt;&lt;b&gt;O Markdown concentra-se em fornecedor uma sintaxe simples para&lt;/b&gt; as necessidades de &lt;b&gt;formatação mais comuns de texto.&lt;/b&gt; Para layouts complexos e funcionalidades avançadas na web, o HTML combinado com CSS e JavaScript continua sendo essencial.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span&gt;&lt;b&gt;4 - Curiosidade&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span&gt;&lt;b&gt;O WhatsApp implementa um subconjunto de sintaxe do Markdown para&lt;/b&gt; permitir a &lt;b&gt;formatação básica&lt;/b&gt; de texto &lt;b&gt;diretamente nas mensagens.&lt;/b&gt; Por exemplo:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;*teste*&lt;/b&gt; é a sintaxe padrão do Markdown &lt;b&gt;para negrito&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;_teste_&lt;/b&gt; é uma das sintaxes padrão do Markdown &lt;b&gt;para itálico&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;~tachado~&lt;/b&gt; é uma sintaxe &lt;b&gt;para tachar texto&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;* Item&lt;/b&gt; ou &lt;b&gt;- Item&lt;/b&gt; para &lt;b&gt;lista não ordenada&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;1 .&lt;/b&gt; &lt;b&gt;Lista ordenada&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;gt;&lt;/b&gt; Texto de &lt;b&gt;citação&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Obviamente &lt;b&gt;o WhatsApp não implementa todos os caracteres do Markdown,&lt;/b&gt; mas &lt;b&gt;temos alguns deles disponíveis para formatar textos de mensagens de maneira intuitiva e rápida,&lt;/b&gt; sem a necessidade de interfaces de edição ricas ou botões de formatação complexos.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;Isso permite que a formatação seja feita diretamente no fluxo da digitação,&lt;/b&gt; usando caracteres que já estão presentes nos teclados dos dispositivos móveis, tornando mais prático com essa abordagem, ao invés de ter que selecionar texto e escolher opções de formatação em um menu.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span&gt;&lt;b&gt;5 - Conclusão&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;Resumindo tudo&lt;/b&gt; o que vimos até aqui, podemos dizer que &lt;b&gt;o Markdown é uma linguagem de marcação leve e simples para formatar texto plano,&lt;/b&gt; onde, sua principal função é ser &lt;b&gt;facilmente convertido para HTML&lt;/b&gt; para exibição formatada. Ele &lt;b&gt;não é um concorrente do HTML,&lt;/b&gt; mas sim, uma ferramente que &lt;b&gt;facilita a criação de conteúdo HTML&lt;/b&gt; para as necessidades mais comuns. É &lt;b&gt;amplamente utilizado devido à sua facilidade de uso e legibilidade.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Para quem está começando no desenvolvimento web, &lt;b&gt;aprender Markdown é uma habilidade valiosa,&lt;/b&gt; especialmente &lt;b&gt;para criar documentação, arquivos README e conteúdo simples&lt;/b&gt; para web &lt;b&gt;de forma rápida e eficiente.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: right;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;(Por ClipaTec Informática)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/4789485868789765927/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2025/05/o-que-e-markdown.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/4789485868789765927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/4789485868789765927'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2025/05/o-que-e-markdown.html' title='O que é Markdown?'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEj5afad-HZ1sIPhAMpKAD6QkAP5bTnrjedUkJgZ7LC82pegwgGFVXW3ICKu1YWka-c7oGxf3QB9yK-SGHT19CEaVcKAxj0zGWmCP1POp8PiqtZqXT_E_ATmCgUflLAXKUIHnjA3NVBpAL5pMzRinMVtLJ2q0qQxWWJFc63ha_nNpwCkc9jPcK4QBJaxSLds=s72-w200-h200-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-7067215568958135073</id><published>2024-06-19T12:52:00.049-03:00</published><updated>2024-06-19T13:25:21.273-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programação"/><category scheme="http://www.blogger.com/atom/ns#" term="What Is It?"/><title type='text'>Regex - Introdução às Expressões Regulares</title><content type='html'>&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRbL-uy44ajSBcce878rSJhc_1TN7y5WdY2z2qk07NJTR81_9QvT_Gx4m8AN-B_RAlXczyaK-A_LmDhn3RkLi0i65qP-8j_Js9j65PdfU9izoyWRBqOUSNyKpRzlr6vVZINMMKSsfbBCeJOnCUYw_r1I_Bb5rreDSrYdJUo7IVDkxWhtjkQiLPVmtRWUEW/s1074/1668899245266.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;expressões regulares - regex&quot; border=&quot;0&quot; data-original-height=&quot;720&quot; data-original-width=&quot;1074&quot; height=&quot;215&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRbL-uy44ajSBcce878rSJhc_1TN7y5WdY2z2qk07NJTR81_9QvT_Gx4m8AN-B_RAlXczyaK-A_LmDhn3RkLi0i65qP-8j_Js9j65PdfU9izoyWRBqOUSNyKpRzlr6vVZINMMKSsfbBCeJOnCUYw_r1I_Bb5rreDSrYdJUo7IVDkxWhtjkQiLPVmtRWUEW/w320-h215/1668899245266.jpg&quot; title=&quot;expressões regulares - regex&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;Fala dev! Provavelmente você já deve ter ouvido falar sobre expressões regulares ou regex, mas que diabos é isso? Para que serve?&lt;/p&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Neste artigo, daremos uma introdução sobre o assunto, entender seus elementos e como aplicar esse recurso em validação de dados.&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;O que são Expressões Regulares?&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span&gt;Expressões regulares&lt;/span&gt;&lt;span&gt;, também conhecida como&amp;nbsp;&lt;/span&gt;&lt;strong&gt;regex&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;ou&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;regexp&lt;/strong&gt;&lt;span&gt;&amp;nbsp;são sequências de caracteres que formam um padrão de busca.&amp;nbsp;&lt;/span&gt;&lt;span&gt;É um excelente recurso para buscar, manipular e validar texto com base em padrões específicos, ou seja,&lt;/span&gt;&lt;span&gt;&amp;nbsp;elas são utilizadas para corresponder strings ou partes de strings que seguem um determinado formato.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Sua origem se deu na década de 1950, e hoje são amplamente utilizadas em diversas linguagens de programação devido à sua capacidade de simplificar operações complexas de manipulação de strings.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Uma regex é composta de vários elementos, como caracteres literais, metacaracteres e quantificadores, que juntos definem o padrão a ser correspondido.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica; font-size: large;&quot;&gt;&lt;b&gt;Principais elementos das Regex&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Âncoras:&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;^&lt;/span&gt;&lt;/b&gt;: Início da string.&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;&lt;b&gt;$&lt;/b&gt;&lt;/span&gt;: Fim da string.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Metacaracteres:&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;.&lt;/span&gt;&lt;/b&gt;: Qualquer caractere, exceto nova linha.&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;\&lt;/span&gt;&lt;/b&gt;: Caractere de escape para caracteres especiais.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Quantificadores:&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;&lt;b&gt;*&lt;/b&gt;&lt;/span&gt;: Zero ou mais ocorrências.&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;+&lt;/span&gt;&lt;/b&gt;: Uma ou mais ocorrências.&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;&lt;b&gt;?&lt;/b&gt;&lt;/span&gt;: Zero ou uma ocorrência.&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;&lt;b&gt;{n}&lt;/b&gt;&lt;/span&gt;: Exatamente n ocorrências.&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;&lt;b&gt;{n,}&lt;/b&gt;&lt;/span&gt;: n ou mais ocorrências.&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;&lt;b&gt;{n,m}&lt;/b&gt;&lt;/span&gt;: Entre n e m ocorrências.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Grupos e Alternância:&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;()&lt;/span&gt;&lt;/b&gt; : Define um grupo.&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;|&lt;/span&gt;&lt;/b&gt; : Alternância (ou).&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Classes de Caracteres:&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;\d&lt;/span&gt;&lt;/b&gt;: Qualquer dígito (0-9).&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;\w&lt;/span&gt;&lt;/b&gt;: Qualquer caractere de palavra (a-z, A-Z, 0-9, _).&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;\s&lt;/span&gt;&lt;/b&gt;: Qualquer espaço em branco (espaço, tab, nova linha).&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;[...]&lt;/span&gt;&lt;/b&gt;: Conjunto de caracteres. Exemplo: [abc] corresponde a &#39;a&#39;, &#39;b&#39;, ou &#39;c&#39;.&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;[^...]&lt;/span&gt;&lt;/b&gt;: Conjunto negado de caracteres. Exemplo: [^abc] corresponde a qualquer caractere exceto &#39;a&#39;, &#39;b&#39;, ou &#39;c&#39;.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Escape Sequences:&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;\\&lt;/span&gt;&lt;/b&gt;: Barra invertida literal.&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;\.&lt;/span&gt;&lt;/b&gt;: Ponto literal.&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;\D&lt;/span&gt;&lt;/b&gt;: Não dígito.&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;\W&lt;/span&gt;&lt;/b&gt;: Não caractere de palavra.&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #2b00fe; font-size: large;&quot;&gt;\S&lt;/span&gt;&lt;/b&gt;: Não espaço em branco.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Para que Servem as Expressões Regulares?&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;As expressões regulares são usadas para:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;strong&gt;Validação&lt;/strong&gt;: Verificar se um texto corresponde a um padrão específico, como endereços de e-mail, números de telefone, CPFs, etc.&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;strong&gt;Busca&lt;/strong&gt;: Localizar ocorrências de padrões dentro de textos.&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;strong&gt;Substituição&lt;/strong&gt;: Modificar texto substituindo padrões correspondidos por novos valores.&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;strong&gt;Extração&lt;/strong&gt;: Extrair partes de um texto que correspondam a um padrão específico.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Quando Usar Expressões Regulares?&lt;/span&gt;&lt;/h2&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Utilize expressões regulares quando precisar de:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Verificação rápida e eficiente de formatos de entrada.&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Manipulação complexa de strings que seria difícil de implementar com métodos tradicionais.&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Processamento de grandes volumes de texto onde buscas e substituições precisam ser feitas rapidamente.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;No entanto, evite usar regex quando:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Uma operação simples pode ser realizada sem regex.&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;A expressão regular se torna extremamente complexa, tornando o código difícil de ler e manter.&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;A performance é uma preocupação crítica e existem alternativas mais eficientes.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Exemplos Práticos&lt;/span&gt;&lt;/h2&gt;&lt;div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Vamos ver alguns exemplos práticos para reforçar a compreensão:&lt;/span&gt;&lt;/div&gt;&lt;h3 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Validação de E-mail&lt;/span&gt;&lt;/h3&gt;&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #0b5394; font-family: helvetica; font-size: medium;&quot;&gt;&lt;b&gt;^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;^[a-zA-Z0-9._%+-]+&lt;/span&gt;&lt;/b&gt;: Início da string seguido de um ou mais caracteres alfanuméricos ou &lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;., _, %, +, -&lt;/b&gt;&lt;/span&gt;.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;@&lt;/span&gt;&lt;/b&gt;: Símbolo &lt;span style=&quot;color: red;&quot;&gt;@&lt;/span&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;[a-zA-Z0-9.-]+&lt;/span&gt;&lt;/b&gt;: Um ou mais caracteres alfanuméricos&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;, . ou -&lt;/span&gt;&lt;/b&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;\.&lt;/span&gt;&lt;/b&gt;: Ponto literal.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;[a-zA-Z]{2,}$&lt;/span&gt;&lt;/b&gt;: Dois ou mais caracteres alfabéticos até o final da string.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;h3 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Validação de Telefone (Formato US)&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #0b5394; font-family: helvetica; font-size: medium;&quot;&gt;&lt;b&gt;^\(\d{3}\) \d{3}-\d{4}$&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;^\(&lt;/span&gt;&lt;/b&gt;: Início da string seguido por um parêntese esquerdo literal.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;\d{3}&lt;/span&gt;&lt;/b&gt;: Três dígitos.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;&lt;b&gt;\)&lt;/b&gt;&lt;/span&gt; : Parêntese direito literal seguido de um espaço.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;\d{3}-\d{4}$&lt;/span&gt;&lt;/b&gt;: Três dígitos, um hífen, e quatro dígitos até o final da string.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;h3 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Validação de CPF (Brasil)&lt;/span&gt;&lt;/h3&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #0b5394; font-family: helvetica; font-size: medium;&quot;&gt;&lt;b&gt;^\d{3}\.\d{3}\.\d{3}-\d{2}$&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;&lt;b&gt;^\d{3}&lt;/b&gt;&lt;/span&gt;: Três dígitos no início da string.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;&lt;b&gt;\.&lt;/b&gt;&lt;/span&gt;: Ponto literal.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;&lt;b&gt;\d{3}&lt;/b&gt;&lt;/span&gt;: Três dígitos.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;&lt;b&gt;\.&lt;/b&gt;&lt;/span&gt;: Ponto literal.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;\d{3}&lt;/span&gt;&lt;/b&gt;: Três dígitos.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;-&lt;/span&gt;&lt;/b&gt;: Hífen literal.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;&lt;b&gt;\d{2}$&lt;/b&gt;&lt;/span&gt;: Dois dígitos até o final da string.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;h3 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Data (Formato DD/MM/YYYY)&lt;/span&gt;&lt;/h3&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: helvetica; font-size: medium;&quot;&gt;^\d{2}/\d{2}/\d{4}$&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;^\d{2}&lt;/span&gt;&lt;/b&gt;: Dois dígitos no início da string.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;&lt;b&gt;\.&lt;/b&gt;&lt;/span&gt;: Ponto literal.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;\d{4}$&lt;/span&gt;&lt;/b&gt;: Quatro dígitos até o final da string.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;h3 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Validação de Valor Monetário (Brasil)&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #0b5394; font-family: helvetica; font-size: medium;&quot;&gt;&lt;b&gt;^-?\d{1,3}(\.\d{3})*(,\d{2})?$|^-?\d+(,\d{2})?$&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;^-?&lt;/span&gt;&lt;/b&gt;: Início da string seguido de um sinal negativo opcional.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;\d{1,3}&lt;/span&gt;&lt;/b&gt;: Um a três dígitos.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;(\.\d{3})*&lt;/span&gt;&lt;/b&gt;: Zero ou mais grupos de três dígitos precedidos por um ponto.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;(,\d{2})?$&lt;/span&gt;&lt;/b&gt;: Uma vírgula seguida de dois dígitos (opcional) até o final da string.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;&lt;b&gt;|&lt;/b&gt;&lt;/span&gt;: Alternância (ou).&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;^-?\d+(,\d{2})?$&lt;/span&gt;&lt;/b&gt;: Início da string seguido de um sinal negativo opcional, um ou mais dígitos, e uma vírgula seguida de dois dígitos (opcional) até o final da string.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #e66e30; font-family: helvetica; font-size: medium;&quot;&gt;&lt;b&gt;Vamos decompor essa última expressão de forma mais detalhada:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;^&lt;/span&gt;&lt;/b&gt;:Âncora que indica o início da string.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;-?&lt;/span&gt;&lt;/b&gt;: O hífen (&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;-&lt;/b&gt;&lt;/span&gt;) seguido por um ponto de interrogação (&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;?&lt;/span&gt;&lt;/b&gt;) indica que o sinal negativo é opcional.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;\d{1,3}&lt;/span&gt;&lt;/b&gt;: &lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;\d&lt;/b&gt;&lt;/span&gt; corresponde a qualquer dígito (&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;0-9&lt;/span&gt;&lt;/b&gt;). &lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;{1,3}&lt;/span&gt;&lt;/b&gt; significa que deve haver de 1 a 3 dígitos.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;(\.\d{3})*&lt;/span&gt;&lt;/b&gt;: &lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;\.&lt;/span&gt;&lt;/b&gt; corresponde a um ponto literal. &lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;\d{3}&lt;/b&gt;&lt;/span&gt; significa três dígitos. O asterisco (&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;*&lt;/span&gt;&lt;/b&gt;) indica que este grupo pode aparecer zero ou mais vezes.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;(,\d{2})?&lt;/span&gt;&lt;/b&gt;: &lt;b&gt;&lt;span style=&quot;color: red; font-size: medium;&quot;&gt;,&lt;/span&gt;&lt;/b&gt; corresponde a uma vírgula literal. &lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;\d{2}&lt;/span&gt;&lt;/b&gt; significa dois dígitos. O ponto de interrogação (&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;?&lt;/span&gt;&lt;/b&gt;) indica que este grupo é opcional.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;$&lt;/span&gt;&lt;/b&gt;: Âncora que indica o final da string.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;&lt;b&gt;|&lt;/b&gt;&lt;/span&gt;: Operador OR que separa duas alternativas.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;^-?\d+(,\d{2})?$&lt;/span&gt;&lt;/b&gt;: Segunda parte da expressão regular:&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;^&lt;/span&gt;&lt;/b&gt;: Início da string.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;&lt;b&gt;-?&lt;/b&gt;&lt;/span&gt;: Sinal negativo opcional.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;\d+&lt;/span&gt;&lt;/b&gt;: Um ou mais dígitos.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;(,\d{2})?&lt;/span&gt;&lt;/b&gt;: Vírgula seguida por dois dígitos, opcional.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-size: medium;&quot;&gt;$&lt;/span&gt;&lt;/b&gt;: Final da string.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Conclusão&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;As expressões regulares são uma ferramenta extremamente útil para desenvolvedores e administradores de sistemas que precisam manipular texto de forma eficiente baseado em padrões. Compreender e utilizar regex pode melhorar significativamente a capacidade de validar, buscar, substituir e extrair informações de strings. A prática e o estudo contínuo são essenciais para dominar essa poderosa ferramenta.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Experimente criar suas próprias expressões regulares e veja como elas podem simplificar suas tarefas de manipulação de texto!&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #351c75; font-family: helvetica; font-size: medium;&quot;&gt;&lt;b&gt;Dica: você pode testar as expressões regulares no site &lt;a href=&quot;https://regex101.com&quot; target=&quot;_blank&quot;&gt;Regex101&lt;/a&gt;, divirtam-se! 😃&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;(Por ClipaTec Informática)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/7067215568958135073/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2024/06/regex-introducao-as-expressoes-regulares.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/7067215568958135073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/7067215568958135073'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2024/06/regex-introducao-as-expressoes-regulares.html' title='Regex - Introdução às Expressões Regulares'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRbL-uy44ajSBcce878rSJhc_1TN7y5WdY2z2qk07NJTR81_9QvT_Gx4m8AN-B_RAlXczyaK-A_LmDhn3RkLi0i65qP-8j_Js9j65PdfU9izoyWRBqOUSNyKpRzlr6vVZINMMKSsfbBCeJOnCUYw_r1I_Bb5rreDSrYdJUo7IVDkxWhtjkQiLPVmtRWUEW/s72-w320-h215-c/1668899245266.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-1736686906277345325</id><published>2024-06-14T10:07:00.001-03:00</published><updated>2024-06-14T10:08:41.357-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programação"/><category scheme="http://www.blogger.com/atom/ns#" term="What Is It?"/><title type='text'>Paradigma de Programação Orientada a Objeto - O que é POO?</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkMB44dpdSJJTz-kpqdSrSXOz5csDQtqVHc96LoC4PLTUjJVb5ugfV6dj9RPS7vuk565eV1VcBQ8x6v-jTflk9Z_EVVGUuZN6XpJ8tgqlIewSvo9J0yTPoJj0O8P8QexjFRrutg6Tcw0lHNZYIlFK_aUyQ8CUVgXmidg3sWCbJRbNUBZhFnDz6r-P5TQtC/s1200/b426eb2a-48f8-44e2-815b-3236272a7ca5.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;POO - Programação Orientada a Objetos&quot; border=&quot;0&quot; data-original-height=&quot;628&quot; data-original-width=&quot;1200&quot; height=&quot;209&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkMB44dpdSJJTz-kpqdSrSXOz5csDQtqVHc96LoC4PLTUjJVb5ugfV6dj9RPS7vuk565eV1VcBQ8x6v-jTflk9Z_EVVGUuZN6XpJ8tgqlIewSvo9J0yTPoJj0O8P8QexjFRrutg6Tcw0lHNZYIlFK_aUyQ8CUVgXmidg3sWCbJRbNUBZhFnDz6r-P5TQtC/w400-h209/b426eb2a-48f8-44e2-815b-3236272a7ca5.png&quot; title=&quot;POO - Programação Orientada a Objetos&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;Olá caro leitor, se você é estudante ou atua na área de desenvolvimento de aplicações, &lt;b&gt;já deve ter ouvido um desses termos: POO, Programação Orientada a Objetos, Orientação a Objetos ou Paradigma de Programação Orientada a Objetos.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span&gt;O que é? Para que serve? Qual o objetivo deste paradigma? Vamos esclarecer essas dúvidas, nesse artigo introdutório. Sigam-me.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;A programação orientada a objetos (POO) é um dos paradigmas de programação mais utilizados no desenvolvimento de softwares. &lt;b&gt;Ao contrário dos paradigmas de programação procedimental ou funcional, a POO se concentra em criar objetos que representam entidades do mundo real, tornando o desenvolvimento de software mais intuitivo e modular&lt;/b&gt;. Neste post, vamos explorar os conceitos básicos da POO e entender como ela pode transformar a forma como você escreve e organiza seu código.&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;O Que é Programação Orientada a Objetos?&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;A POO &lt;b&gt;é um paradigma&lt;/b&gt; de programação &lt;b&gt;baseado em conceitos de &quot;objetos&quot;, que são instâncias de &quot;classes&quot;.&lt;/b&gt; Uma classe define a estrutura e o comportamento de um objeto. Em termos simples, &lt;b&gt;uma classe pode ser vista como&lt;/b&gt; um molde ou &lt;b&gt;uma planta, enquanto os objetos&lt;/b&gt; são as &lt;b&gt;instâncias concretas&lt;/b&gt; criadas a partir desse molde.&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Conceitos Fundamentais da POO&lt;/span&gt;&lt;/h3&gt;&lt;h4 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;1. Classes e Objetos&lt;/span&gt;&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;strong&gt;Classe&lt;/strong&gt;: Uma classe é uma &lt;b&gt;blueprint(planta) que define as propriedades e comportamentos de um objeto.&lt;/b&gt; Ela contém atributos (dados) e métodos (funções).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #e33630; font-family: helvetica;&quot;&gt;&lt;b&gt;Exemplo de classe em Java:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;public class Pessoa {&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; // Atributos (variáveis de instância)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; private String nome;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; private int idade;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; // Construtor padrão&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; public Pessoa() {&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.nome = &quot;&quot;;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.idade = 0;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; // Construtor com parâmetros&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; public Pessoa(String nome, int idade) {&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.nome = nome;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.idade = idade;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; // Método getter para o nome&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; public String getNome() {&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return nome;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; // Método setter para o nome&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; public void setNome(String nome) {&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.nome = nome;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; // Método getter para a idade&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; public int getIdade() {&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return idade;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; // Método setter para a idade&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; public void setIdade(int idade) {&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (idade &amp;gt;= 0) {&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.idade = idade;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(&quot;A idade não pode ser negativa.&quot;);&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; // Método para exibir informações da pessoa&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; public void exibirInformacoes() {&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(&quot;Nome: &quot; + nome);&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(&quot;Idade: &quot; + idade);&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; // Método principal para testar a classe&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; public static void main(String[] args) {&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Criando uma instância da classe Pessoa usando o construtor padrão&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Pessoa pessoa1 = new Pessoa();&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pessoa1.setNome(&quot;João&quot;);&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pessoa1.setIdade(25);&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pessoa1.exibirInformacoes();&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Criando uma instância da classe Pessoa usando o construtor com parâmetros&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Pessoa pessoa2 = new Pessoa(&quot;Maria&quot;, 30);&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pessoa2.exibirInformacoes();&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #134f5c;&quot;&gt;&lt;b&gt;}&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;strong&gt;Objeto&lt;/strong&gt;: Um objeto &lt;b&gt;é uma instância de uma classe.&lt;/b&gt; Ele possui as características e comportamentos definidos pela classe.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b style=&quot;color: #e33630;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Exemplo de objeto em Java:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b style=&quot;color: #e33630;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b style=&quot;color: #134f5c; text-align: left;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;// Criando uma instância da classe Pessoa usando o construtor com parâmetros&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b style=&quot;color: #134f5c;&quot;&gt;Pessoa pessoa = new Pessoa(&quot;Maria&quot;, 30);&lt;/b&gt;&lt;br /&gt;&lt;b style=&quot;color: #134f5c;&quot;&gt;pessoa.exibirInformacoes();&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;2. Encapsulamento&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Encapsulamento &lt;b&gt;é o conceito de restringir o acesso direto a alguns atributos&lt;/b&gt; de um objeto, usando métodos públicos para interagir com esses atributos. Isso &lt;b&gt;ajuda a proteger os dados e a ocultar a complexidade interna do objeto.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b style=&quot;color: #e33630;&quot;&gt;Exemplo de encapsulamento em Java:&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;// Método getter para o nome&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;public String getNome() {&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; return nome;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;}&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;// Método setter para o nome&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;public void setNome(String nome) {&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; this.nome = nome;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;}&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;h4 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;3. Herança&lt;/span&gt;&lt;/h4&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Herança &lt;b&gt;permite que uma classe herde atributos e métodos de outra classe.&lt;/b&gt; Isso &lt;b&gt;promove a reutilização de código&lt;/b&gt; e a criação de hierarquias de classes.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b style=&quot;color: #e33630;&quot;&gt;Exemplo de herança em Java:&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;public class Fornecedor extends Pessoa {&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; // Atributos específicos do Fornecedor&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; private String empresa;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; private String cnpj;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b style=&quot;color: #134f5c;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&amp;nbsp; &amp;nbsp; // Construtor padrão&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; public Fornecedor() {&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; super(); // Chama o construtor da classe Pessoa&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.empresa = &quot;&quot;;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.cnpj = &quot;&quot;;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b style=&quot;color: #134f5c;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&amp;nbsp; &amp;nbsp; // Construtor com parâmetros&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; public Fornecedor(String nome, int idade, String empresa, String cnpj) {&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; super(nome, idade); // Chama o construtor da classe Pessoa&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.empresa = empresa;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.cnpj = cnpj;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b style=&quot;color: #134f5c;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&amp;nbsp; &amp;nbsp; // Método getter para a empresa&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; public String getEmpresa() {&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return empresa;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b style=&quot;color: #134f5c;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&amp;nbsp; &amp;nbsp; // Método setter para a empresa&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; public void setEmpresa(String empresa) {&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.empresa = empresa;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b style=&quot;color: #134f5c;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&amp;nbsp; &amp;nbsp; // Método getter para o CNPJ&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; public String getCnpj() {&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return cnpj;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b style=&quot;color: #134f5c;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&amp;nbsp; &amp;nbsp; // Método setter para o CNPJ&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; public void setCnpj(String cnpj) {&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.cnpj = cnpj;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b style=&quot;color: #134f5c;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&amp;nbsp; &amp;nbsp; // Sobrescrevendo o método para exibir informações&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; @Override&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; public void exibirInformacoes() {&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; super.exibirInformacoes(); // Chama o método da classe Pessoa&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(&quot;Empresa: &quot; + empresa);&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(&quot;CNPJ: &quot; + cnpj);&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b style=&quot;color: #134f5c;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&amp;nbsp; &amp;nbsp; // Método principal para testar a classe&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; public static void main(String[] args) {&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Criando uma instância da classe Fornecedor usando o construtor com parâmetros&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fornecedor fornecedor = new Fornecedor(&quot;Aparecido do Nada&quot;, 33, &quot;ABC Ltda&quot;, &quot;01.234.567/0001-89&quot;);&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fornecedor.exibirInformacoes();&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;}&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;4. Polimorfismo&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Polimorfismo &lt;b&gt;permite que métodos em diferentes classes tenham o mesmo nome, mas comportamentos diferentes.&lt;/b&gt; Isso é útil para tratar objetos de diferentes classes de forma uniforme.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b style=&quot;color: #e33630;&quot;&gt;Exemplo de polimorfismo em Java:&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;public class Pessoa {&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; // Método para exibir informações da pessoa&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; public void exibirInformacoes() {&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(&quot;Nome: &quot; + nome);&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(&quot;Idade: &quot; + idade);&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b style=&quot;color: #134f5c;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;}&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b style=&quot;color: #134f5c;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;public class Fornecedor extends Pessoa {&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;color: #134f5c;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&amp;nbsp; &amp;nbsp; // Sobrescrevendo o método para exibir informações&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; @Override&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; public void exibirInformacoes() {&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; super.exibirInformacoes(); // Chama o método da classe Pessoa&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(&quot;Empresa: &quot; + empresa);&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(&quot;CNPJ: &quot; + cnpj);&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #134f5c; font-family: helvetica;&quot;&gt;&lt;b&gt;}&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;Vantagens da Programação Orientada a Objetos&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;strong&gt;Modularidade&lt;/strong&gt;: Código é organizado em classes e objetos, facilitando a manutenção e o entendimento.&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;strong&gt;Reutilização de Código&lt;/strong&gt;: A herança permite reutilizar código existente, economizando tempo e esforço.&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;strong&gt;Flexibilidade e Extensibilidade&lt;/strong&gt;: Novas funcionalidades podem ser adicionadas com menos impacto no código existente.&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;strong&gt;Facilidade de Manutenção&lt;/strong&gt;: Encapsulamento ajuda a proteger dados sensíveis e a modularizar o código, tornando a manutenção mais fácil.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Conclusão&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;A Programação Orientada a Objetos é um poderoso paradigma que ajuda a organizar e estruturar o código de uma maneira mais intuitiva e eficiente.&lt;/b&gt; Ao entender e aplicar conceitos como classes, objetos, encapsulamento, herança e polimorfismo, &lt;b&gt;você pode desenvolver software mais robusto, reutilizável e fácil de manter.&lt;/b&gt; Se você está começando com POO, experimente implementar esses conceitos em seus projetos e veja como eles podem transformar a maneira como você escreve código.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;Esperamos que este post tenha fornecido uma visão clara e útil sobre os fundamentos da POO. Fique à vontade para deixar suas perguntas e comentários abaixo!&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span style=&quot;font-family: helvetica;&quot;&gt;&lt;b&gt;(Por Welinton Dias)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/1736686906277345325/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2024/06/paradigma-de-programacao-orientada-a-objetos.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/1736686906277345325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/1736686906277345325'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2024/06/paradigma-de-programacao-orientada-a-objetos.html' title='Paradigma de Programação Orientada a Objeto - O que é POO?'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkMB44dpdSJJTz-kpqdSrSXOz5csDQtqVHc96LoC4PLTUjJVb5ugfV6dj9RPS7vuk565eV1VcBQ8x6v-jTflk9Z_EVVGUuZN6XpJ8tgqlIewSvo9J0yTPoJj0O8P8QexjFRrutg6Tcw0lHNZYIlFK_aUyQ8CUVgXmidg3sWCbJRbNUBZhFnDz6r-P5TQtC/s72-w400-h209-c/b426eb2a-48f8-44e2-815b-3236272a7ca5.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-905196115864057331</id><published>2024-06-05T14:38:00.001-03:00</published><updated>2024-06-05T14:38:06.415-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programação"/><category scheme="http://www.blogger.com/atom/ns#" term="Software"/><category scheme="http://www.blogger.com/atom/ns#" term="What Is It?"/><title type='text'>REST APIs e Verbos HTTP: GET, PUT, POST e PATCH</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlUwCe0ZOEcqgNy0XswtvH0EMfsbWTARgEUze1Kwn35URI7tbS2sKGcQSs8UhskB4JhngKj6nYWh6IzA27RtOg-zGjJ6sFsbtbOiz_OGJ3ZrfK6D0Qcx47Btkw2bFlrP-kDpbfKImMdwyz2Bt_ggwvB4SCIZnlB7rGvytskW5DqRI0vkyUhLyxzYwnqU0C/s960/api-o-que-e.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;REST API e verbos HTTP&quot; border=&quot;0&quot; data-original-height=&quot;540&quot; data-original-width=&quot;960&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlUwCe0ZOEcqgNy0XswtvH0EMfsbWTARgEUze1Kwn35URI7tbS2sKGcQSs8UhskB4JhngKj6nYWh6IzA27RtOg-zGjJ6sFsbtbOiz_OGJ3ZrfK6D0Qcx47Btkw2bFlrP-kDpbfKImMdwyz2Bt_ggwvB4SCIZnlB7rGvytskW5DqRI0vkyUhLyxzYwnqU0C/w320-h180/api-o-que-e.jpg&quot; title=&quot;REST API e verbos HTTP&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style=&quot;font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;Olá pessoal, salve, salve.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;No &lt;a href=&quot;https://www.clipatecinformatica.com.br/2024/05/o-que-e-api-e-para-que-serve.html&quot; target=&quot;_blank&quot;&gt;artigo anterior&lt;/a&gt; abordamos sobre o conceito de API, para que serve e quando usar.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;Ainda seguindo neste tema, vamos fazer uma introdução a REST API e daremos um pouco mais de enfase nos verbos HTTP, citados no artigo anterior.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;As REST APIs (Application Programming Interfaces) são interfaces que permitem a comunicação entre sistemas utilizando os princípios da arquitetura REST (Representational State Transfer). As REST APIs são amplamente utilizadas no desenvolvimento de aplicativos web e móveis devido à sua simplicidade, escalabilidade e flexibilidade. Neste artigo, abordaremos os conceitos básicos das REST APIs e os principais verbos HTTP utilizados: GET, PUT, POST e PATCH.&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Conceito de REST APIs&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;REST é um estilo de arquitetura de software que define um conjunto de restrições e propriedades baseadas no protocolo HTTP. Uma API RESTful permite que os sistemas se comuniquem de maneira padronizada e estateless, ou seja, cada requisição do cliente para o servidor deve conter todas as informações necessárias para entender e processar a solicitação.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Os recursos em uma API RESTful são representados por URIs (Uniform Resource Identifiers) e podem ser manipulados utilizando os verbos HTTP. Esses recursos podem ser dados de uma aplicação, como usuários, produtos, pedidos, entre outros.&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Verbos HTTP&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Os verbos HTTP (ou métodos) são usados para indicar a ação que deve ser realizada em um recurso. A seguir, discutimos os quatro verbos mais comuns: GET, PUT, POST e PATCH.&lt;/span&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;GET&lt;/span&gt;&lt;/h4&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;O verbo GET é utilizado para solicitar a representação de um recurso. Quando um cliente envia uma requisição GET, ele está pedindo ao servidor que retorne os dados de um recurso específico. O uso do GET é seguro e idempotente, o que significa que a mesma requisição pode ser feita múltiplas vezes sem alterar o estado do recurso.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Exemplo:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Open Sans;&quot;&gt;GET /api/usuarios/123&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Essa requisição pode retornar os dados do usuário com o ID 123.&lt;/span&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;POST&lt;/span&gt;&lt;/h4&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;O verbo POST é utilizado para criar um novo recurso no servidor. Quando um cliente envia uma requisição POST, ele está enviando dados ao servidor para que um novo recurso seja criado. Diferentemente do GET, o POST não é idempotente; múltiplas requisições POST podem resultar na criação de vários recursos.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Exemplo:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Open Sans;&quot;&gt;POST /api/usuarios&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Open Sans;&quot;&gt;Content-Type: application/json&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Open Sans;&quot;&gt;{&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Open Sans;&quot;&gt;&amp;nbsp; &quot;nome&quot;: &quot;João&quot;,&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Open Sans;&quot;&gt;&amp;nbsp; &quot;email&quot;: &quot;joao@example.com&quot;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Open Sans;&quot;&gt;}&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Essa requisição cria um novo usuário com o nome &quot;João&quot; e o email &quot;&lt;a rel=&quot;noreferrer&quot;&gt;joao@example.com&lt;/a&gt;&quot;.&lt;/span&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;PUT&lt;/span&gt;&lt;/h4&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;O verbo PUT é utilizado para atualizar completamente um recurso existente ou para criar um novo recurso se ele não existir. Quando um cliente envia uma requisição PUT, ele está fornecendo uma representação completa do recurso que deve ser armazenada no servidor. O PUT é idempotente, o que significa que múltiplas requisições PUT com os mesmos dados não devem alterar o estado do recurso após a primeira aplicação.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Exemplo:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Open Sans;&quot;&gt;PUT /api/usuarios/123&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Open Sans;&quot;&gt;Content-Type: application/json&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Open Sans;&quot;&gt;{&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Open Sans;&quot;&gt;&amp;nbsp; &quot;nome&quot;: &quot;João&quot;,&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Open Sans;&quot;&gt;&amp;nbsp; &quot;email&quot;: &quot;joao@example.com&quot;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Open Sans;&quot;&gt;}&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Essa requisição atualiza completamente os dados do usuário com o ID 123.&lt;/span&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;PATCH&lt;/span&gt;&lt;/h4&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;O verbo PATCH é utilizado para aplicar modificações parciais a um recurso. Diferentemente do PUT, que requer uma representação completa do recurso, o PATCH permite que apenas as mudanças necessárias sejam enviadas. O PATCH também é idempotente.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Exemplo:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Open Sans;&quot;&gt;PATCH /api/usuarios/123&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Open Sans;&quot;&gt;Content-Type: application/json&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Open Sans;&quot;&gt;{&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Open Sans;&quot;&gt;&amp;nbsp; &quot;email&quot;: &quot;joao_novo@example.com&quot;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394; font-family: Open Sans;&quot;&gt;}&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Essa requisição atualiza apenas o email do usuário com o ID 123, mantendo os outros atributos inalterados.&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Conclusão&lt;/span&gt;&lt;/h3&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Entender os verbos HTTP GET, PUT, POST e PATCH é fundamental para trabalhar com REST APIs de maneira eficaz. Cada verbo tem seu propósito específico e, quando utilizado corretamente, pode garantir uma comunicação clara e eficiente entre o cliente e o servidor. As REST APIs são uma peça central na arquitetura de sistemas modernos, proporcionando uma maneira padronizada e escalável de interação entre diferentes componentes e serviços.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;b&gt;(Por ClipaTec Informática)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/905196115864057331/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2024/06/rest-api-e-verbos-http-get-put-post-patch.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/905196115864057331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/905196115864057331'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2024/06/rest-api-e-verbos-http-get-put-post-patch.html' title='REST APIs e Verbos HTTP: GET, PUT, POST e PATCH'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlUwCe0ZOEcqgNy0XswtvH0EMfsbWTARgEUze1Kwn35URI7tbS2sKGcQSs8UhskB4JhngKj6nYWh6IzA27RtOg-zGjJ6sFsbtbOiz_OGJ3ZrfK6D0Qcx47Btkw2bFlrP-kDpbfKImMdwyz2Bt_ggwvB4SCIZnlB7rGvytskW5DqRI0vkyUhLyxzYwnqU0C/s72-w320-h180-c/api-o-que-e.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-867499180767516218</id><published>2024-05-30T16:47:00.001-03:00</published><updated>2024-05-30T16:47:41.723-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programação"/><category scheme="http://www.blogger.com/atom/ns#" term="Software"/><category scheme="http://www.blogger.com/atom/ns#" term="What Is It?"/><title type='text'>O que é API  (Interface de Programação de Aplicações)?</title><content type='html'>&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_wWGb5paF3R3cRnclMlfEEBtDttGf354ZMJ-cEOB1Wu9yooOCYS3-UXj3j181D3qW_E5yAUdMOo3bvix08c6DU4ZtLmcD852fv9MlpnyJuIbT_lzL3nLmWonk2M5uuXLd05t7PZ_NARQ12aEZbX3wzHIFxaQNnr8ysGM42DuDPjNAlg81THKzaE2v7jeL/s960/api-o-que-e.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;api&quot; border=&quot;0&quot; data-original-height=&quot;540&quot; data-original-width=&quot;960&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_wWGb5paF3R3cRnclMlfEEBtDttGf354ZMJ-cEOB1Wu9yooOCYS3-UXj3j181D3qW_E5yAUdMOo3bvix08c6DU4ZtLmcD852fv9MlpnyJuIbT_lzL3nLmWonk2M5uuXLd05t7PZ_NARQ12aEZbX3wzHIFxaQNnr8ysGM42DuDPjNAlg81THKzaE2v7jeL/w400-h225/api-o-que-e.jpg&quot; title=&quot;o que é api&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Olá clipatequeiros, salve, salve.&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Você já deve ter ouvido falar sobre &lt;b&gt;API&lt;/b&gt;, mas afinal, o que é? Para que serve? Onde usar?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;O uso de &lt;b&gt;API&#39;s&lt;/b&gt; tem sido muito alto ultimamente, então, vamos sanar essas dúvidas neste artigo.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Este artigo será parte de uma série de artigos sobre &lt;b&gt;API&lt;/b&gt;, vamos explorar alguns tipos de API&#39;s e ver na prática como funciona. Então bora lá?&lt;br /&gt;&lt;/span&gt;&lt;h3&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;O que é uma API?&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;API, ou &lt;strong&gt;Application Programming Interface&lt;/strong&gt; (Interface de Programação de Aplicações), pode ser definida como um conjunto de regras e definições que permitem a comunicação entre diferentes software. As APIs definem os métodos e dados que as aplicações podem utilizar para interagir umas com as outras, facilitando a integração e a troca de informações entre diferentes serviços e plataformas.&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Como Funcionam as APIs?&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;As APIs funcionam como contratos de serviço entre duas aplicações: uma que oferece o serviço (provedor da API) e outra que o consome (cliente da API). Esses contratos especificam como os dados devem ser solicitados e fornecidos, geralmente através de chamadas HTTP em APIs baseadas na web.&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Principais Componentes de uma API&lt;/span&gt;&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;Endpoint&lt;/strong&gt;: Um URL específico onde um recurso está disponível. É o ponto de contato para a comunicação com a API.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;Verbos HTTP&lt;/strong&gt;: Métodos que definem a ação a ser realizada sobre os recursos. Os principais verbos são:&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;GET&lt;/strong&gt;: Recuperar dados de um recurso.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;POST&lt;/strong&gt;: Criar um novo recurso.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;PUT&lt;/strong&gt;: Atualizar completamente um recurso existente.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;PATCH&lt;/strong&gt;: Atualizar parcialmente um recurso existente.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;DELETE&lt;/strong&gt;: Remover um recurso.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;Parâmetros&lt;/strong&gt;: Dados adicionais enviados com a requisição, como parâmetros de consulta (query parameters), parâmetros de caminho (path parameters), e cabeçalhos (headers).&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;Corpo da Requisição/Resposta&lt;/strong&gt;: Dados enviados na requisição ou recebidos na resposta, geralmente em formatos como JSON ou XML.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Tipos de APIs&lt;/span&gt;&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;APIs Web (HTTP/REST)&lt;/strong&gt;: Utilizam o protocolo HTTP e seguem os princípios REST (Representational State Transfer), que permitem a manipulação de recursos usando URLs.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;APIs SOAP&lt;/strong&gt;: Utilizam o protocolo SOAP (Simple Object Access Protocol), um protocolo baseado em XML que permite a troca de informações estruturadas.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;APIs de Biblioteca&lt;/strong&gt;: Conjunto de funções e rotinas expostas por uma biblioteca de software para ser utilizada por outras aplicações.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;APIs de Sistema Operacional&lt;/strong&gt;: Permitem que programas interajam com o sistema operacional, como APIs do Windows ou do Linux.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Exemplos de Uso de APIs&lt;/span&gt;&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;Integração de Serviços&lt;/strong&gt;: Um aplicativo de viagens pode usar APIs de diferentes companhias aéreas para mostrar opções de voos em tempo real.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;Autenticação&lt;/strong&gt;: Serviços como OAuth permitem que aplicações autentiquem usuários através de contas de outros serviços (ex.: login com Google ou Facebook).&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;Mapas e Geolocalização&lt;/strong&gt;: APIs como Google Maps permitem incorporar mapas e funcionalidades de geolocalização em aplicativos.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;Pagamentos Online&lt;/strong&gt;: APIs de pagamento, como PayPal ou Stripe, permitem processar transações financeiras de forma segura.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Vantagens das APIs&lt;/span&gt;&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;Modularidade&lt;/strong&gt;: Permite que diferentes partes de um sistema sejam desenvolvidas e atualizadas independentemente.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;Reutilização&lt;/strong&gt;: Funcionalidades podem ser reutilizadas em diferentes aplicações, economizando tempo e recursos.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;Interoperabilidade&lt;/strong&gt;: Facilita a comunicação entre sistemas diferentes, possibilitando a integração de serviços de terceiros.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;strong&gt;Eficiência&lt;/strong&gt;: Automatiza processos e troca de informações, melhorando a eficiência operacional.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;Conclusão&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;As APIs são fundamentais para a arquitetura de software moderna, permitindo a integração de serviços e a criação de ecossistemas de aplicações conectadas. Elas facilitam a comunicação entre diferentes sistemas, promovendo a reutilização de funcionalidades e a interoperabilidade entre plataformas.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span style=&quot;font-family: Open Sans;&quot;&gt;&lt;b&gt;(Por ClipaTec Informática)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/867499180767516218/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2024/05/o-que-e-api-e-para-que-serve.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/867499180767516218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/867499180767516218'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2024/05/o-que-e-api-e-para-que-serve.html' title='O que é API  (Interface de Programação de Aplicações)?'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_wWGb5paF3R3cRnclMlfEEBtDttGf354ZMJ-cEOB1Wu9yooOCYS3-UXj3j181D3qW_E5yAUdMOo3bvix08c6DU4ZtLmcD852fv9MlpnyJuIbT_lzL3nLmWonk2M5uuXLd05t7PZ_NARQ12aEZbX3wzHIFxaQNnr8ysGM42DuDPjNAlg81THKzaE2v7jeL/s72-w400-h225-c/api-o-que-e.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-504203757494153383</id><published>2023-01-19T14:42:00.004-03:00</published><updated>2023-01-19T14:51:38.561-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="Quick Tips"/><category scheme="http://www.blogger.com/atom/ns#" term="Tutoriais"/><category scheme="http://www.blogger.com/atom/ns#" term="Vídeo Aula"/><title type='text'>Quick Tips - Delphi: como minimizar a aplicação na bandeja do Windows?</title><content type='html'>&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGg5UhDDc6POJoC4YLROO1mSx_JGPae8Fc24d8IFaj2ga-i9kindd-5FBc8hgJg1KCN7Y2dNBkJEDUYb356XcgdGHHNOpSNdkLjscKYHUjzt8RXk7Jz6z-IqE9RbeEz8-D-NmjGTCvL3_qnhREWmy1qzqrU3q1YYvatBEAnU97njfPXxOnFTctgRe3Yg/s64/TrayIcon.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;TrayIcon delphi&quot; border=&quot;0&quot; data-original-height=&quot;64&quot; data-original-width=&quot;64&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGg5UhDDc6POJoC4YLROO1mSx_JGPae8Fc24d8IFaj2ga-i9kindd-5FBc8hgJg1KCN7Y2dNBkJEDUYb356XcgdGHHNOpSNdkLjscKYHUjzt8RXk7Jz6z-IqE9RbeEz8-D-NmjGTCvL3_qnhREWmy1qzqrU3q1YYvatBEAnU97njfPXxOnFTctgRe3Yg/s16000/TrayIcon.png&quot; title=&quot;TrayIcon delphi&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Olá minha gente, salve, salve.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;b&gt;Você já deve ter usado algum aplicativo, que&lt;/b&gt; ao minimizar, &lt;b&gt;vai para a bandeja do Windows&lt;/b&gt;, logo ali, &lt;b&gt;perto do relógio.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Se você&amp;nbsp;&lt;span style=&quot;text-align: left;&quot;&gt;deseja implementar este recurso na sua aplicação e não sabe &lt;b&gt;como fazer isso no Delphi,&lt;/b&gt; na dica de hoje, &lt;b&gt;vamos aprender&lt;/b&gt; como fazer.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Geralmente, esse recurso é mais utilizando em aplicações do tipo serviço, mas, este recurso pode ser aplicado em qualquer aplicação.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Vamos imaginar o seguinte cenário, para facilitar o entendimento do recurso:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Suponha que você tem um &lt;b&gt;ERP&lt;/b&gt; integrado a um &lt;b&gt;app mobile,&lt;/b&gt; no qual, o ERP, precisa sincronizar determinados dados com o app mobile, por exemplo, &lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;pedidos feitos no app, precisam ser recebidos no ERP.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Para possibilitar esse sincronismo de dados, imaginemos que&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;possui um serviço que deve ficar em execução, sendo ele, o responsável por este sincronismo, portanto, o mesmo não pode ser fechado.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;O usuário pode fechar o serviço por engano, ou como dizia o chaves &quot;sem querer querendo&quot;, se isso ocorre, após poucos minutos, ele vai te&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;ligar, disparando uma torrente de xingamentos&amp;nbsp;com todos os palavrões existentes 😤, e dizendo que seu produto é uma porcaria porque os pedidos feitos no app&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;mobile não estão aparecendo no ERP, é sério, isso acontece as vezes, o usuário faz coisas que até Deus duvida, acredite.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Uma maneira de evitar esse tipo de situação, é &lt;b&gt;programar um recurso que quando o usuário clicar para fechar ou minimizar a aplicação&lt;/b&gt;&amp;nbsp;ou&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;serviço, a mesma seria sempre minimizada &lt;b&gt;na bandeja do Windows,&lt;/b&gt; sendo assim, continuaria em execução em segundo plano, evitando essa ligação amorosa do usuário&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;😤&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Legal, mas &lt;b&gt;como fazer isso no Delphi?&lt;/b&gt; Sigam-me os bons...&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #351c75; font-family: verdana;&quot;&gt;&lt;b&gt;O que é a bandeja do sistema (System Tray - Systray)?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Em síntese, &lt;b&gt;é uma área de notificação,&lt;/b&gt; também conhecida como área de status e barra de menus, dependendo do sistema operacional em uso, &lt;b&gt;que fica localizado geralmente na barra de tarefas do sistema operacional,&lt;/b&gt; &lt;b&gt;contendo ícones que permitem aos usuários acesso à aplicações, serviços ou funções do sistema,&lt;/b&gt; como por exemplo, spooler da impressora, volume do sistema, conexões de rede, relógio, antivírus e etc.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;b&gt;Os ícones podem indicar status de determinados processos que estão em execução no computador.&lt;/b&gt; Ao passar o mouse sobre os ícones, dar um duplo clique ou ainda, por meio do clique com o botão direito do mouse, é possível visualizar o status, acessar a aplicação ou serviço e até configurar, controlar o aplicativo associado.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;A bandeja do sistema está disponível nos sistemas operacionais, seja desktop ou móvel(Windows,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Mac OS,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Linux,&amp;nbsp; Android e iOS).&lt;/span&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&amp;nbsp;No caso do Windows, geralmente fica no canto inferior direito, no Linux, geralmente fica no canto superior direito, tudo depende do sistema operacional em uso, podendo inclusive, alterar sua posição.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;No Windows, &lt;b&gt;a bandeja do sistema podem ter alguns comportamentos,&lt;/b&gt; como por exemplo:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Ao c&lt;/span&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;licar duas vezes no ícone inicia o programa correspondente;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Exibir uma caixa de diálogo;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Ao passar o mouse sobre um ícone, uma mensagem pop-up ou status do processo poderá ser exibida;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Ao c&lt;/span&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;licar com o botão direito do mouse em um ícone, pode abrir um menu de opções, controle de volume e etc.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Mas agora, chega de lero lero, cremos que ficou bem entendido a questão, agora vamos partir para a prática no Delphi.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #351c75; font-family: verdana;&quot;&gt;&lt;b&gt;Minimizando uma aplicação na bandeja do Windows com Delphi&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;b&gt;No Delphi, o componente responsável&lt;/b&gt; por permitir essa implementação é o &lt;b&gt;&quot;TrayIcon&quot;, presente na unit &quot;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;b&gt;Vcl.ExtCtrls.TTrayIcon&quot;&lt;/b&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Este componente, &lt;b&gt;c&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;b&gt;ria um ícone na bandeja do sistema&lt;/b&gt; ao lado do relógio. Ele&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;possui eventos para cliques do mouse, propriedades para menus e animação do ícone, além de métodos para mostrar dicas de balão.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Com o Delphi aberto, crie um novo projeto e adicione dois componentes: &lt;b&gt;TTrayIcon&lt;/b&gt;(ícone de bandeja) e &lt;b&gt;TApplicationEvents&lt;/b&gt;(eventos do aplicativo).&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;O objetivo do nosso exemplo é,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;quando o usuário minimizar o aplicativo, o formulário será oculto e&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;o ícone de bandeja será carregado. Ao passar o mouse sobre o mesmo, será exibido um balão de dicas e ao dar um duplo-clique, o aplicativo será restaurado para a tela.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Então, mãos a obra, os códigos estão bem comentados, dispensando explicações massantes.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;No evento &lt;b&gt;&quot;OnCreate&quot;&lt;/b&gt; do formulário principal, implemente-o da seguinte maneira:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSC5sLJjMgKL1u77YVy-IwkWmRrVErZ40sdiGC8ncHIsOq63xkx9HHt-rTxm-E31BGVjdyEN-vEuBDBpmJoMyJsTmhDAal7QvLu7H7kVBq8Q2DKbGk-MB5sP23z_HI7-0g8z6cRo4xAElElbeSrLGAPMAkIpC30GERQOzRvJxWu9fAjd22gBWASZqGIA/s860/trayIcon02.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;minimizando aplicativo bandeja windows com delphi&quot; border=&quot;0&quot; data-original-height=&quot;239&quot; data-original-width=&quot;860&quot; height=&quot;178&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSC5sLJjMgKL1u77YVy-IwkWmRrVErZ40sdiGC8ncHIsOq63xkx9HHt-rTxm-E31BGVjdyEN-vEuBDBpmJoMyJsTmhDAal7QvLu7H7kVBq8Q2DKbGk-MB5sP23z_HI7-0g8z6cRo4xAElElbeSrLGAPMAkIpC30GERQOzRvJxWu9fAjd22gBWASZqGIA/w640-h178/trayIcon02.jpg&quot; title=&quot;minimizando aplicativo bandeja windows com delphi&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Agora, selecione o componente&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;font-family: verdana;&quot;&gt;TApplicationEvents&lt;/b&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&amp;nbsp;e no evento &lt;b&gt;&quot;OnMinimize&quot;&lt;/b&gt;, implemente&amp;nbsp;assim:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnejLH1zQvSbpqEUCMfiWNklt3Nw1aerxIEUEadnckNOdeFgSQke1v-FURD_wNAm6LqMnKrUVt1PGWy-uBBNzx61oDG9uMxqSuxWWtvw1Pk_f3-VVgJmFuj7M1BlqXhUw8mvNI3TpNJXGnLHy9nfnSdpS7Dxvh4UytnMWWzgFN5SG4PbXBHwDH9klfuw/s458/trayIcon01.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;minimizando aplicativo bandeja windows com delphi&quot; border=&quot;0&quot; data-original-height=&quot;242&quot; data-original-width=&quot;458&quot; height=&quot;211&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnejLH1zQvSbpqEUCMfiWNklt3Nw1aerxIEUEadnckNOdeFgSQke1v-FURD_wNAm6LqMnKrUVt1PGWy-uBBNzx61oDG9uMxqSuxWWtvw1Pk_f3-VVgJmFuj7M1BlqXhUw8mvNI3TpNJXGnLHy9nfnSdpS7Dxvh4UytnMWWzgFN5SG4PbXBHwDH9klfuw/w400-h211/trayIcon01.jpg&quot; title=&quot;minimizando aplicativo bandeja windows com delphi&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana; text-align: justify;&quot;&gt;Por fim, selecione o componente&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;font-family: verdana; text-align: justify;&quot;&gt;TTrayIcon&lt;/b&gt;&lt;span style=&quot;font-family: verdana; text-align: justify;&quot;&gt;&amp;nbsp;e codifique o evento&amp;nbsp;&lt;b&gt;&quot;OnDblClick&quot;&lt;/b&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWSxQHF_ThZuyatcwPkIuptyC8QPTXx3qfYwVvyN26gCoyGYCNnwoXyGU2yF8isuWu5h7lYsoUPqBFqx9c3uWcuEMAnbv9F4DDojRaoVb5Ja4SZi2Z4ewlgKxCxf1dy3IuZ2nZa7IrKFNFZnJIQzq3BPiOQU-ap8_qHz1zxlAYZTBgnffIOzcodbYHeA/s601/trayIcon03.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;minimizando aplicativo bandeja windows com delphi&quot; border=&quot;0&quot; data-original-height=&quot;205&quot; data-original-width=&quot;601&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWSxQHF_ThZuyatcwPkIuptyC8QPTXx3qfYwVvyN26gCoyGYCNnwoXyGU2yF8isuWu5h7lYsoUPqBFqx9c3uWcuEMAnbv9F4DDojRaoVb5Ja4SZi2Z4ewlgKxCxf1dy3IuZ2nZa7IrKFNFZnJIQzq3BPiOQU-ap8_qHz1zxlAYZTBgnffIOzcodbYHeA/s16000/trayIcon03.jpg&quot; title=&quot;minimizando aplicativo bandeja windows com delphi&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Muito bem, só rodar a aplicação e testar. Assim chegamos ao final de mais uma dica rápida, um abraço, até a próxima.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #0b5394; font-family: verdana;&quot;&gt;&lt;b&gt;Links&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;- &lt;a href=&quot;https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.ExtCtrls.TTrayIcon&quot; target=&quot;_blank&quot;&gt;TTrayIcon&lt;/a&gt; - Embarcadero;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;(Por ClipaTec Informática)&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/504203757494153383/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2023/01/quick-tips-como-minimizar-aplicativo-na-bandeja-windows-com-delphi.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/504203757494153383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/504203757494153383'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2023/01/quick-tips-como-minimizar-aplicativo-na-bandeja-windows-com-delphi.html' title='Quick Tips - Delphi: como minimizar a aplicação na bandeja do Windows?'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGg5UhDDc6POJoC4YLROO1mSx_JGPae8Fc24d8IFaj2ga-i9kindd-5FBc8hgJg1KCN7Y2dNBkJEDUYb356XcgdGHHNOpSNdkLjscKYHUjzt8RXk7Jz6z-IqE9RbeEz8-D-NmjGTCvL3_qnhREWmy1qzqrU3q1YYvatBEAnU97njfPXxOnFTctgRe3Yg/s72-c/TrayIcon.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-1215386488585906926</id><published>2023-01-16T14:59:00.004-03:00</published><updated>2023-01-16T14:59:42.414-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="Quick Tips"/><category scheme="http://www.blogger.com/atom/ns#" term="Tutoriais"/><category scheme="http://www.blogger.com/atom/ns#" term="Vídeo Aula"/><title type='text'>Quick Tips - Delphi: Trabalhando com os métodos EncodeDate e DecodeDate</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4FwUpoiQqgjgsgz5qXVLf35aVuPsEMgOFeAKKR4poY024W83LLcH01Uufd8zYXEMH0x8CufQc5SSa24U5PVt3I7Qh0iuUxfrkR5xq_Y22Sq7oyFdTIl9CYIUw_8hVroSYY1hcPCW2ZbScqjW7X5lUT3GLKyJ3JuK5YAVyRzx0Cit3cio7DANzrV9rqQ/s128/encodeDecodeDate.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;encode decode date&quot; border=&quot;0&quot; data-original-height=&quot;128&quot; data-original-width=&quot;128&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4FwUpoiQqgjgsgz5qXVLf35aVuPsEMgOFeAKKR4poY024W83LLcH01Uufd8zYXEMH0x8CufQc5SSa24U5PVt3I7Qh0iuUxfrkR5xq_Y22Sq7oyFdTIl9CYIUw_8hVroSYY1hcPCW2ZbScqjW7X5lUT3GLKyJ3JuK5YAVyRzx0Cit3cio7DANzrV9rqQ/s16000/encodeDecodeDate.png&quot; title=&quot;encode decode date&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Olá gente boa, tudo bem com vocês?&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Na dica rápida de hoje, &lt;b&gt;vamos abordar sobre dois métodos&lt;/b&gt; que podem ser úteis em suas rotinas do dia a dia. Estamos falando dos métodos &lt;b&gt;&quot;EncodeDate&quot;&lt;/b&gt; e &lt;b&gt;&quot;DecodeDate&quot;&lt;/b&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #0b5394; font-family: verdana;&quot;&gt;&lt;b&gt;EncodeDate&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;O método &lt;b&gt;EncodeDate&lt;/b&gt;, &lt;b&gt;presente na unit System.SysUtils,&lt;/b&gt; &lt;b&gt;é uma função que, passados por parâmetro&lt;/b&gt; separadamente &lt;b&gt;o dia, mês e ano, retornará uma data completa do tipo TDateTime.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Em determinados momentos, &lt;b&gt;as vezes se torna necessário desmontarmos uma data, para efetuar cálculos ou qualquer outro tratamento com datas,&lt;/b&gt; como por exemplo, &lt;b&gt;calcular o dia útil&lt;/b&gt; de uma determinada data &lt;b&gt;para vencimento de faturas&lt;/b&gt; geradas no sistema em uma rotina de faturamento de venda por exemplo, &lt;b&gt;e após isso, precisamos montar novamente a data com o dia correto.&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Em um cenário como esse, &lt;b&gt;entra em ação o método EncodeDate,&lt;/b&gt; que faz justamente isso, &lt;b&gt;ele monta uma data completa, unindo o dia, mês e ano passados por parâmetro.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Algumas considerações acerca do método &lt;b&gt;EncodeDate&lt;/b&gt; são:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;O valor referente ao &lt;b&gt;ano&lt;/b&gt; passado por parâmetro, &lt;b&gt;deve ser de 1 a 9999&lt;/b&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;O valor referente ao &lt;b&gt;mês&lt;/b&gt; passado por parâmetro, é considerado válido &lt;b&gt;de 1 a 12&lt;/b&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;O valor referente ao &lt;b&gt;dia&lt;/b&gt;,&lt;b&gt; podem ir de 1 a 28, 29, 30 ou 31, dependendo do mês&lt;/b&gt; passado por parâmetro, por exemplo, para o mês 02 (fevereiro), podemos ter um cenário de 1 a 28 ou 1 a 29, dependendo do ano, &lt;b&gt;se for bissexto&lt;/b&gt;;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;b&gt;Se os valores não estiverem dentro do intervalo,&lt;/b&gt; isto é, caso algum valor seja inválido, &lt;b&gt;uma exceção será&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;b&gt;levantada.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Para vermos o funcionamento desse método na prática, criamos um exemplo que pede ao usuário informar um dia, mês e ano, e no final, o algoritmo exibirá a data completa (montada), de acordo com os dados informados. Segue o código:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9cafYD4t3Yls3FYgjzXvkbeJrXJS4bHFaqALAAsKQ2zTQBA8gT-arq7pzc_8rLxOOrrjVmbyGTa5usTOckmNxdg0qgKYoXErjmXoaiK-QDqkPTV25-hydDj-CkQD-j-_ktTeXzt23yI3CMz6ct-l3ARe0Al5p8EyuvqF7vMnML8wSIdYidaLTG6j3Rw/s536/encodeDate.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;encode date&quot; border=&quot;0&quot; data-original-height=&quot;458&quot; data-original-width=&quot;536&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9cafYD4t3Yls3FYgjzXvkbeJrXJS4bHFaqALAAsKQ2zTQBA8gT-arq7pzc_8rLxOOrrjVmbyGTa5usTOckmNxdg0qgKYoXErjmXoaiK-QDqkPTV25-hydDj-CkQD-j-_ktTeXzt23yI3CMz6ct-l3ARe0Al5p8EyuvqF7vMnML8wSIdYidaLTG6j3Rw/s16000/encodeDate.jpg&quot; title=&quot;encode date&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style=&quot;font-family: verdana; text-align: left;&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;b&gt;Temos quatro variáveis, sendo uma para o dia, mês e ano do tipo Word, e uma para a data completa&lt;/b&gt; que será montada pela função, &lt;b&gt;do tipo TDate&lt;/b&gt; (para considerarmos apenas a data, sem a hora), &lt;b&gt;mas poderia ser do tipo TDateTime&lt;/b&gt; também, sem nenhum problema.&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Após pedir ao usuário para informar cada um desses dados, os mesmos são guardados dentro de suas respectivas variáveis.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Em seguida, &lt;b&gt;chamamos o método EncodeDate repassando esses dados&lt;/b&gt; entrados por parâmetro, e &lt;b&gt;o retorno dessa função, será armazenado na variável lData.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Por fim, exibimos na tela a data gerada. Simples, fácil e prático.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Ok,&lt;b&gt; se tem como encodar uma data, também tem como decodar.&lt;/b&gt; É nosso próximo assunto.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;color: #0b5394; font-family: verdana;&quot;&gt;&lt;b&gt;DecodeDate&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Este método, &lt;b&gt;também presente na unit System.SysUtils,&lt;/b&gt; faz o inverso do método anterior. &lt;b&gt;Esta procedure, recebe por parâmetro uma data completa, e a mesma é desmontada&lt;/b&gt; pelo método, e esse desmembramento é devolvido &lt;b&gt;dentro dos&lt;/b&gt; demais &lt;b&gt;parâmetros para dia, mês e ano,&lt;/b&gt; que também devem ser passados por parâmetro, ou seja, &lt;b&gt;o método quebra e retorna os valores para dia, mês e ano separadamente,&lt;/b&gt; &lt;b&gt;de uma determinada data&lt;/b&gt; passada por parâmetro &lt;b&gt;do tipo TDateTime.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;/p&gt;&lt;ul&gt;&lt;li style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;b&gt;Se o ano&lt;/b&gt; da data &lt;b&gt;for negativo, os valores para dia, mês e ano será ZERO&lt;/b&gt;;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Para exemplificarmos na prática, criamos um algoritmo que lê a data atual do computador, e desmonta essa data, para exibirmos&amp;nbsp;em uma mensagem de maneira extensa, segue o código:&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcgDhP2KHKg7slIZxexTTK8xLQ9iuhtAbrenEd8uXYAHRJbqkLMBXYpfclSHGggeol7H4O3Kd8FLGHGvVOCiwWYaDKTLYX4rP2UJmpXH-dB1LL5xMt9Dg5jowDDcnUPsYtc9KOxM7ATJtChpDkZyrnKp4VQTu9CbxWr_kcxODjpyRSryIK662xoksbJg/s837/decodeDate.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;decode date&quot; border=&quot;0&quot; data-original-height=&quot;349&quot; data-original-width=&quot;837&quot; height=&quot;267&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcgDhP2KHKg7slIZxexTTK8xLQ9iuhtAbrenEd8uXYAHRJbqkLMBXYpfclSHGggeol7H4O3Kd8FLGHGvVOCiwWYaDKTLYX4rP2UJmpXH-dB1LL5xMt9Dg5jowDDcnUPsYtc9KOxM7ATJtChpDkZyrnKp4VQTu9CbxWr_kcxODjpyRSryIK662xoksbJg/w640-h267/decodeDate.jpg&quot; title=&quot;decode date&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;b&gt;Ao chamarmos o método DecodeDate,&lt;/b&gt; &lt;b&gt;passamos por parâmetro&lt;/b&gt;, uma chamada para &lt;b&gt;a função Date que retornará para o parâmetro a data atual do computador, &lt;/b&gt;logo em seguida, &lt;b&gt;passamos uma variável para ano, mês e dia, que são do tipo Word.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Note que &lt;/span&gt;&lt;b style=&quot;font-family: verdana;&quot;&gt;este método é uma procedure, ou seja, não retorna valor&lt;/b&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;. &lt;/span&gt;&lt;b style=&quot;font-family: verdana;&quot;&gt;Os valores separados para o dia, mês e ano são devolvido dentro das respectivas variáveis&lt;/b&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt; passadas por parâmetro, &lt;/span&gt;&lt;b style=&quot;font-family: verdana;&quot;&gt;isso ocorre porque, este método, requer passagem por referência,&lt;/b&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt; sendo assim, &lt;/span&gt;&lt;b style=&quot;font-family: verdana;&quot;&gt;as variáveis passadas por parâmetro serão manipuladas diretamente dentro do método DecodeDate,&lt;/b&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt; ao final de sua execução, as mesmas já vão conter os valores separados.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Por fim, apenas exibimos o conteúdo delas em uma mensagem impressa no console, agregando uma frase personalizada.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Muito bem clipatequeiros de plantão, assim chegamos ao final dessa dica, codifique os exemplos e teste.&lt;/span&gt;&lt;br /&gt;&lt;b style=&quot;font-family: verdana;&quot;&gt;Em algum momento esses métodos serão úteis pra você. Alguns programadores por desconhecerem esses métodos,&lt;/b&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt; ao precisar separar o mês de uma data por exemplo, &lt;/span&gt;&lt;b style=&quot;font-family: verdana;&quot;&gt;recorrem aos famosos métodos Copy e Pos,&lt;/b&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt; mas esse malabarismo&amp;nbsp;todo cai por terra, com a utilização desses métodos nativos apresentados nesse artigo.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Um grande abraço, e até a próxima.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;Links&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;- &lt;a href=&quot;https://docwiki.embarcadero.com/CodeExamples/Alexandria/en/EncodeDate_(Delphi)&quot; target=&quot;_blank&quot;&gt;EncodeDate&lt;/a&gt; - Embarcadero;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;- &lt;a href=&quot;https://docwiki.embarcadero.com/Libraries/Alexandria/en/System.SysUtils.DecodeDate&quot; target=&quot;_blank&quot;&gt;DecodeDate&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;- Embarcadero;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: right;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;(Por ClipaTec Informática)&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/1215386488585906926/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2023/01/quick-tips-delphi-encode-decode-date.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/1215386488585906926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/1215386488585906926'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2023/01/quick-tips-delphi-encode-decode-date.html' title='Quick Tips - Delphi: Trabalhando com os métodos EncodeDate e DecodeDate'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4FwUpoiQqgjgsgz5qXVLf35aVuPsEMgOFeAKKR4poY024W83LLcH01Uufd8zYXEMH0x8CufQc5SSa24U5PVt3I7Qh0iuUxfrkR5xq_Y22Sq7oyFdTIl9CYIUw_8hVroSYY1hcPCW2ZbScqjW7X5lUT3GLKyJ3JuK5YAVyRzx0Cit3cio7DANzrV9rqQ/s72-c/encodeDecodeDate.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-3208717938724919137</id><published>2023-01-12T14:51:00.002-03:00</published><updated>2023-01-12T14:51:00.184-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="Quick Tips"/><category scheme="http://www.blogger.com/atom/ns#" term="Tutoriais"/><title type='text'>Descompactando arquivos com Delphi</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbs_Q13jRMnD0qnW9jXahs9B5RyTqIk7FWGNlbNxbQKUwd6EENGBljEaC6aAwHK0Uyu86hK6iJXslToW16NuirdLKoJL2qWqpR6FZQq6qzHQymGRDyagxjjtv_LbmLwJvN-BJ3THhJp2_0yP0YFivnWunP5cs59d8CUaLeJYxba1LFNOUCshvHYiWAWA/s256/compactacao.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;descompactacao arquivo delphi&quot; border=&quot;0&quot; data-original-height=&quot;256&quot; data-original-width=&quot;256&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbs_Q13jRMnD0qnW9jXahs9B5RyTqIk7FWGNlbNxbQKUwd6EENGBljEaC6aAwHK0Uyu86hK6iJXslToW16NuirdLKoJL2qWqpR6FZQq6qzHQymGRDyagxjjtv_LbmLwJvN-BJ3THhJp2_0yP0YFivnWunP5cs59d8CUaLeJYxba1LFNOUCshvHYiWAWA/w200-h200/compactacao.png&quot; title=&quot;descompactacao arquivo delphi&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Ola&lt;/span&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&amp;nbsp;clipatequeiros, tudo bem com vocês?&lt;br /&gt;No &lt;a href=&quot;https://www.clipatecinformatica.com.br/2023/01/compactando-arquivos-com-delphi.html&quot; target=&quot;_blank&quot;&gt;artigo anterior&lt;/a&gt;, abordamos como implementar a compactação de arquivos com o Delphi de forma nativa, usando a classe &lt;b&gt;TZipFile. &lt;/b&gt;Vemos o quão é simples, fácil e prático.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;No artigo de hoje, vamos fazer o processo inverso, &lt;b&gt;vamos aprender a descompactar arquivos&lt;/b&gt; &lt;b&gt;ZIP &lt;/b&gt;usando a mesma classe de forma nativa.&lt;br /&gt;Para isso, declaramos o método &quot;DescompactarArquivos&quot;, cuja implementação segue abaixo:&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7xQCHOjs69lPQmx0oGQT51nhLnUg1tXCH0XkIBmFwwBvBi4FtHv4Xs9C_jStmrl3WL9mVdpYsZqnNpdo7NdnI51jgBUvHZC0igPGE0akFGjr52NuIH2X42ZYRqVVfBIW05NePfVUiSiwDnZGxgh3a_iRHg8PQKHDy_yZ7uhz9ucBs4y1ywXrxgMb2Zw/s814/compactacao02.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;descompactando arquivos com delphi&quot; border=&quot;0&quot; data-original-height=&quot;479&quot; data-original-width=&quot;814&quot; height=&quot;377&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7xQCHOjs69lPQmx0oGQT51nhLnUg1tXCH0XkIBmFwwBvBi4FtHv4Xs9C_jStmrl3WL9mVdpYsZqnNpdo7NdnI51jgBUvHZC0igPGE0akFGjr52NuIH2X42ZYRqVVfBIW05NePfVUiSiwDnZGxgh3a_iRHg8PQKHDy_yZ7uhz9ucBs4y1ywXrxgMb2Zw/w640-h377/compactacao02.jpg&quot; title=&quot;descompactando arquivos com delphi&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;A implementação é bem parecida com o método de compactação. Importante salientar que, é necessário dar uses na unit &lt;b&gt;&quot;System.Zip&quot;&lt;/b&gt;.&lt;br /&gt;Declaramos quatro variáveis:&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;ul&gt;&lt;li&gt;lArqZip: TZipFile - &amp;gt; que receberá a instância da classe &lt;b&gt;TZipFile&lt;/b&gt;;&lt;/li&gt;&lt;li&gt;lOrigem: string -&amp;gt; que receberá o diretório onde se encontra o arquivo &lt;b&gt;ZIP;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;lDestino: string -&amp;gt; que receberá o diretório de destino, onde os arquivos contidos no arquivo &lt;b&gt;ZIP &lt;/b&gt;serão extraídos;&lt;/li&gt;&lt;li&gt;lNome: string -&amp;gt; que receberá o nome do arquivo &lt;b&gt;ZIP &lt;/b&gt;que será decompactado;&lt;/li&gt;&lt;/ul&gt;Por meio do método &lt;b&gt;Open&lt;/b&gt;&amp;nbsp;estamos preparando o arquivo para ser lido ou escrito. Como vamos fazer a descompactação do arquivo, então, note que agora, no último parâmetro deste método, estamos usando um indicador para leitura: &lt;b&gt;zmRead, &lt;/b&gt;para indicar que estaremos lendo um arquivo &lt;b&gt;ZIP &lt;/b&gt;criado anteriormente.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Após isso, basta chamar o método &lt;b&gt;ExtractAll &lt;/b&gt;passando o diretório de destino por parâmetro, onde os arquivos serão extraídos. Este método, extrai todos os arquivos contidos no arquivo &lt;b&gt;ZIP.&lt;/b&gt;&lt;br /&gt;Por fim, chamamos o método &lt;b&gt;Close &lt;/b&gt;para fechar o arquivo, embora, como ressaltamos no &lt;a href=&quot;https://www.clipatecinformatica.com.br/2023/01/compactando-arquivos-com-delphi.html&quot; target=&quot;_blank&quot;&gt;artigo anterior&lt;/a&gt;&amp;nbsp;não se faz necessário chamar este método explicitamente, visto que, antes do objeto ser destruído, automaticamente o método &lt;b&gt;Close &lt;/b&gt;é invocado pela biblioteca.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Assim chegamos ao fim de mais um tutorial, agora, só utilizar onde quiser dentro do seu sistema.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;&lt;b&gt;Links:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;- &lt;a href=&quot;https://docwiki.embarcadero.com/Libraries/Sydney/en/System.Zip.TZipFile&quot; target=&quot;_blank&quot;&gt;TZipFile - embarcadero&lt;/a&gt;;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;- &lt;a href=&quot;https://www.clipatecinformatica.com.br/2023/01/compactando-arquivos-com-delphi.html&quot; target=&quot;_blank&quot;&gt;Compactando arquivos com Delphi&lt;/a&gt;;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: right;&quot;&gt;(Por ClipaTec Informática)&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/3208717938724919137/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2023/01/descompactando-arquivos-com-delphi.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/3208717938724919137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/3208717938724919137'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2023/01/descompactando-arquivos-com-delphi.html' title='Descompactando arquivos com Delphi'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbs_Q13jRMnD0qnW9jXahs9B5RyTqIk7FWGNlbNxbQKUwd6EENGBljEaC6aAwHK0Uyu86hK6iJXslToW16NuirdLKoJL2qWqpR6FZQq6qzHQymGRDyagxjjtv_LbmLwJvN-BJ3THhJp2_0yP0YFivnWunP5cs59d8CUaLeJYxba1LFNOUCshvHYiWAWA/s72-w200-h200-c/compactacao.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-2039011552110392083</id><published>2023-01-12T08:35:00.008-03:00</published><updated>2024-06-17T14:21:09.030-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="Quick Tips"/><category scheme="http://www.blogger.com/atom/ns#" term="Tutoriais"/><title type='text'>Compactando arquivos com Delphi</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbs_Q13jRMnD0qnW9jXahs9B5RyTqIk7FWGNlbNxbQKUwd6EENGBljEaC6aAwHK0Uyu86hK6iJXslToW16NuirdLKoJL2qWqpR6FZQq6qzHQymGRDyagxjjtv_LbmLwJvN-BJ3THhJp2_0yP0YFivnWunP5cs59d8CUaLeJYxba1LFNOUCshvHYiWAWA/s256/compactacao.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;compactacao arquivo delphi&quot; border=&quot;0&quot; data-original-height=&quot;256&quot; data-original-width=&quot;256&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbs_Q13jRMnD0qnW9jXahs9B5RyTqIk7FWGNlbNxbQKUwd6EENGBljEaC6aAwHK0Uyu86hK6iJXslToW16NuirdLKoJL2qWqpR6FZQq6qzHQymGRDyagxjjtv_LbmLwJvN-BJ3THhJp2_0yP0YFivnWunP5cs59d8CUaLeJYxba1LFNOUCshvHYiWAWA/w200-h200/compactacao.png&quot; title=&quot;compactacao arquivo delphi&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Olá gente boa! No artigo de hoje, vamos aprender como &lt;b&gt;implementar a compactação de arquivos, de forma nativa no Delphi.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Em versões mais antigas do Delphi, &lt;/span&gt;&lt;b style=&quot;font-family: verdana;&quot;&gt;era comum utilizar a biblioteca &quot;ZLib&quot; presente na unit &quot;System.ZLib&quot;,&lt;/b&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt; porém, utilizando essa biblioteca, &lt;/span&gt;&lt;b style=&quot;font-family: verdana;&quot;&gt;tínhamos um problema, o arquivo compactado&lt;/b&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt; gerado &lt;/span&gt;&lt;b style=&quot;font-family: verdana;&quot;&gt;não era compatível com outros aplicativos,&lt;/b&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt; como WinRar, 7Zip, etc, sendo assim, se o arquivo fosse enviado para alguém, este alguém não conseguiria abrir ou extrair este arquivo, a menos que, tivesse um aplicativo para isso, que utilizasse esta mesma biblioteca, para então conseguir abrir, visualizar e extrair.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Ora, &lt;b&gt;isso não era interessante do ponto de vista usual,&lt;/b&gt; uma vez que, &lt;b&gt;esta funcionalidade ficava &quot;Delphi to Delphi&quot;,&lt;/b&gt; ou seja, só era&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;possível descompactar usando um aplicativo, cuja implementação fosse feita com essa mesma biblioteca.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;b&gt;Nas versões novas do Delphi, surge a classe &quot;TZipFile&quot;, presente na unit &quot;System.Zip&quot;. Esta nova biblioteca, resolve o problema anterior.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;b&gt;A classe TZipFile é utilizada para criar e ler arquivos &quot;.zip&quot;,&lt;/b&gt; ela dispõe&amp;nbsp;de métodos para compactar e descompactar arquivos no formato &lt;b&gt;.zip.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Ao implementar métodos para compactação e descompactação de arquivos &lt;b&gt;usando a classe TZipFile, fica compatível com outros aplicativos&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;b style=&quot;font-family: verdana;&quot;&gt;do mercado, como o WinRAR, 7Zip por exemplo.&lt;/b&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt; Agora, você pode compactar arquivos, enviar para alguém, e este alguém, vai conseguir&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;abrir e extrair esses arquivos sem problema algum, utilizando qualquer aplicativo que ele tenha instalado no computador para isso.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Muito bem, chega de teoria e vamos para a prática, segue abaixo o código para implementação da compactação de arquivos no Delphi:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivlQHrmbwIdTPp7-7igP5hljLf55xq3H4ipt59RIOoFRSr0LgqmG37lWh11Do9KPto9S1tFiIyEiinN4m5aAOxWF9HPLOB1c47728w8nRuufbo3x36FT-2DctioVDmZI03v8JVzSYKIUkf8zYhtpwTb8NQFLgPYqUTVzP8mC7zLvycSu-m0NvCdiXOxA/s701/compactacao01.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;compactando arquivos com delphi&quot; border=&quot;0&quot; data-original-height=&quot;421&quot; data-original-width=&quot;701&quot; height=&quot;384&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivlQHrmbwIdTPp7-7igP5hljLf55xq3H4ipt59RIOoFRSr0LgqmG37lWh11Do9KPto9S1tFiIyEiinN4m5aAOxWF9HPLOB1c47728w8nRuufbo3x36FT-2DctioVDmZI03v8JVzSYKIUkf8zYhtpwTb8NQFLgPYqUTVzP8mC7zLvycSu-m0NvCdiXOxA/w640-h384/compactacao01.jpg&quot; title=&quot;compactando arquivos com delphi&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;Primeiro passo, é dar uses na unit&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;font-family: verdana;&quot;&gt;&quot;System.Zip&quot; &lt;/b&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;que contém a classe &lt;b&gt;TZipFile&lt;/b&gt;, que vamos utilizar para esta implementação.&lt;br /&gt;Feito isso, declaramos um método chamado &quot;CompactarArquivos&quot;. Na implementação dele, declaramos três variáveis:&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;lArqZip: TZipFile -&amp;gt; que receberá uma instância da classe &lt;b&gt;TZipFile;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;lDestino: string -&amp;gt; que receberá o diretório onde será gerado o arquivo compactado;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;lNome: string -&amp;gt; que receberá o nome do arquivo &lt;b&gt;ZIP&lt;/b&gt; que será gerado;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Por meio do método &lt;b&gt;Open&lt;/b&gt;, o arquivo é preparado para leitura ou gravação, e por parâmetro, passamos o local + nome do arquivo &lt;b&gt;ZIP &lt;/b&gt;que será gerado. Note que neste método, no último parâmetro, estamos definindo que o arquivo será escrito/criado: &lt;b&gt;zmWrite.&lt;/b&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Através do método &lt;b&gt;Add &lt;/b&gt;passamos por parâmetro o local + nome dos arquivos que serão adicionados no arquivo compactado &lt;b&gt;ZIP.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Pronto, somente com essas linhas já teremos o arquivo &lt;b&gt;ZIP &lt;/b&gt;gerado com os arquivos adicionados.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Note que não foi necessário chamarmos o método &lt;b&gt;Close&lt;/b&gt;&amp;nbsp;no final, visto que, o mesmo é chamado automaticamente na destruição do objeto.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Muito bem clipatequeiros, viram como é simples, fácil e prático? Agora, você pode usar esta implementação, modifica-la de acordo com suas necessidades, mais um recurso interessante que nos livra de ficar usando bibliotecas externas ou via linha de comando como outrora. Um grande abraço, que esta dica contribua de alguma maneira no seu dia a dia como programador.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;Links:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;- &lt;a href=&quot;https://docwiki.embarcadero.com/Libraries/Sydney/en/System.Zip.TZipFile&quot; target=&quot;_blank&quot;&gt;TZipFile - Embarcadero&lt;/a&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;- &lt;a href=&quot;https://www.clipatecinformatica.com.br/2023/01/descompactando-arquivos-com-delphi.html&quot; target=&quot;_blank&quot;&gt;Descompactando arquivos com Delphi&lt;/a&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;(Por ClipaTec Informática)&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/2039011552110392083/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2023/01/compactando-arquivos-com-delphi.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/2039011552110392083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/2039011552110392083'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2023/01/compactando-arquivos-com-delphi.html' title='Compactando arquivos com Delphi'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbs_Q13jRMnD0qnW9jXahs9B5RyTqIk7FWGNlbNxbQKUwd6EENGBljEaC6aAwHK0Uyu86hK6iJXslToW16NuirdLKoJL2qWqpR6FZQq6qzHQymGRDyagxjjtv_LbmLwJvN-BJ3THhJp2_0yP0YFivnWunP5cs59d8CUaLeJYxba1LFNOUCshvHYiWAWA/s72-w200-h200-c/compactacao.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-16605977769299352</id><published>2023-01-04T13:50:00.003-03:00</published><updated>2023-01-12T09:41:05.273-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="Quick Tips"/><category scheme="http://www.blogger.com/atom/ns#" term="Tutoriais"/><category scheme="http://www.blogger.com/atom/ns#" term="Vídeo Aula"/><title type='text'>Quick Tips - InputQuery com mais de um campo</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj60pN7V1YW8Fh2NdbPcrG67yOpzWJHXObmP3pyIu6_NrG6k98_EDFO3CFTjRtnmqq5J65TTfBVp3-EQnKKXLZVkeMSRHBv8S7W9lpNA_QvGrm6tujFpxy4_6C8MkFsTD9-jpsZZ_mOHUhBhqSHwE6XV21njrEl5pauftj_nqweyFaDC7W32yOOzhIIsg/s64/40885_windows_icon.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;janela inputquery delphi&quot; border=&quot;0&quot; data-original-height=&quot;64&quot; data-original-width=&quot;64&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj60pN7V1YW8Fh2NdbPcrG67yOpzWJHXObmP3pyIu6_NrG6k98_EDFO3CFTjRtnmqq5J65TTfBVp3-EQnKKXLZVkeMSRHBv8S7W9lpNA_QvGrm6tujFpxy4_6C8MkFsTD9-jpsZZ_mOHUhBhqSHwE6XV21njrEl5pauftj_nqweyFaDC7W32yOOzhIIsg/s16000/40885_windows_icon.png&quot; title=&quot;janela inputquery delphi&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Olá clipatequeiros, no artigo de hoje, mostraremos uma &lt;/span&gt;&lt;b style=&quot;font-family: verdana;&quot;&gt;dica rápida&lt;/b&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt; sobre o método &lt;/span&gt;&lt;b style=&quot;font-family: verdana;&quot;&gt;InputQuery &lt;/b&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;do &lt;/span&gt;&lt;b style=&quot;font-family: verdana;&quot;&gt;Delphi&lt;/b&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;.&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Há um tempo, recebemos questionamentos sobre a &lt;b&gt;possibilidade do método InputQuery ter mais de um campo&lt;/b&gt; para entrada de dados. &lt;b&gt;A resposta é SIM&lt;/b&gt;, isso é possível. Poucos sabem, até mesmo, alguns programadores que já trabalham com Delphi há anos.&lt;/div&gt;&lt;/span&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Se olharmos para a &lt;b&gt;UNIT &lt;/b&gt;que contem o método &lt;b&gt;InputQuery&lt;/b&gt;, note que &lt;b&gt;existem algumas assinaturas de sobrecarga para este método (três)&lt;/b&gt;, inclusive, &lt;b&gt;uma delas, pede por parâmetro, um array,&lt;/b&gt; e é exatamente essa assinatura que usaremos para mostrar que podemos ter uma janela do &lt;b&gt;InputQuery &lt;/b&gt;com mais de um campo para entrada de dados.&lt;/div&gt;&lt;/span&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Assinatura do método &lt;b&gt;InputQuery &lt;/b&gt;que vamos utilizar:&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #134f5c; font-family: verdana;&quot;&gt;&lt;i&gt;&lt;b&gt;function InputQuery(const ACaption: string; const APrompts: array of string; var AValues: array of string; CloseQueryFunc: TInputCloseQueryFunc = nil): Boolean; overload;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Para isso, &lt;/span&gt;&lt;b style=&quot;font-family: verdana;&quot;&gt;vamos trabalhar com array de genéricos, especializado em string.&lt;/b&gt;&lt;/div&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;O primeiro passo, é &lt;b&gt;definir uma variável do tipo TArray de string,&lt;/b&gt; neste exemplo, trabalharemos com os dados como &lt;b&gt;string&lt;/b&gt;. No código abaixo, &lt;b&gt;chamamos esta variável do array de &#39;lDados&#39;&lt;/b&gt;.&lt;/div&gt;&lt;b&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Após a declaração da variável, precisamos definir o tamanho do nosso array,&lt;/b&gt; isto é, definiremos quantas posições irá conter no array. É importante salientar que, &lt;b&gt;o tamanho do array, deve corresponder à quantidade de campos que você deseja ter na janela do InputQuery,&lt;/b&gt; no nosso exemplo, teremos apenas três campos, sendo um campo para nome, E-Mail e telefone, sendo assim, teremos um array com três posições, onde, cada posição irá armazenar o dado de um campo.&lt;/div&gt;&lt;/b&gt;&lt;b&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;O método usado para definirmos o tamanho do array é o SetLength&lt;/b&gt;, que pede por &lt;b&gt;parâmetro o array e o tamanho dele.&lt;/b&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Agora vem o pulo do gato, &lt;b&gt;ao chamarmos o método InputQuery&lt;/b&gt;, utilizaremos a assinatura citada anteriormente, onde &lt;b&gt;passaremos três parâmetros, o primeiro é o título da janela, o segundo é o array com os títulos dos campos que irão conter na janela,&lt;/b&gt; vale ressaltar que, por ser um array, &lt;b&gt;devemos passar entre colchetes &#39;[]&#39;, separados por vírgula.&lt;/b&gt; Note que, passamos três valores neste &lt;b&gt;array de títulos dos campos, ou seja,&lt;/b&gt; &lt;b&gt;deve ser exatamente a quantidade de elementos definidos no array,&lt;/b&gt; no nosso caso, três, &lt;b&gt;para não ter estouro de posição.&lt;/b&gt; Por fim, &lt;b&gt;o terceiro parâmetro é o nosso array.&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Ao executar, a janela do InputQuery agora terá três campos,&lt;/b&gt; cada um, &lt;b&gt;com o título que definimos na passagem do parâmetro,&lt;/b&gt; e repare que os campos aparecem na janela, &lt;b&gt;na mesma ordem em que foram passados&lt;/b&gt; no parâmetro,&lt;b&gt; é muito importante lembrar desse detalhe.&lt;/b&gt;&lt;/div&gt;&lt;/b&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Estamos testando o retorno dessa função dentro de um &lt;b&gt;&lt;i&gt;IF&lt;/i&gt;&lt;/b&gt;, se o usuário clicar no botão &lt;b&gt;&lt;i&gt;OK&lt;/i&gt;&lt;/b&gt;, apenas exibiremos uma mensagem mostrando os dados que foram informados na janela, se o usuário clicar no botão &lt;b&gt;&lt;i&gt;CANCELAR&lt;/i&gt;&lt;/b&gt;, mostraremos uma mensagem dizendo que a operação foi cancelada, conforme o código abaixo.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Agora, note que &lt;b&gt;ao recuperar os dados informados para exibir na mensagem, estamos acessando o array e suas posições,&lt;/b&gt; onde, a posição &lt;b&gt;ZERO &lt;/b&gt;corresponde ao &lt;b&gt;Nome&lt;/b&gt;, a posição &lt;b&gt;UM &lt;/b&gt;corresponde ao &lt;b&gt;E-Mail&lt;/b&gt; e a posição &lt;b&gt;DOIS &lt;/b&gt;corresponde ao &lt;b&gt;Telefone&lt;/b&gt;. &lt;b&gt;Vale ressaltar que as posições de um array começa com ZERO.&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Por isso é importante lembrar da &lt;b&gt;ordem dos títulos dos campos&lt;/b&gt; passados por parâmetro, pois, &lt;b&gt;na hora de ler os dados, a sequência é a mesma.&lt;/b&gt; Atente-se a isso &lt;b&gt;para não ler dado de posição errada.&lt;/b&gt; &lt;b&gt;Os dados armazenados no array, são referentes aos campos na ordem passada no parâmetro do InputQuery.&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Muito bem, feito isso, &lt;b&gt;chegamos ao final desta dica rápida,&lt;/b&gt; se você não conhecia, &lt;b&gt;agora já sabe como criar uma janela de InputQuery com vários campos.&lt;/b&gt; É um recurso que pode ser muito útil quando precisamos capturar dados de forma rápida e simples.&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Código:&lt;/b&gt;&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPnonBsNz8KAEG7kzUlLfhjTE0DDExJZXGFPgt0Fwj7wAuFsBtH7iH3vXxliTWidIggXLRzCwyGYIwN1wL4vom0LA2zydheqGHoGc8WH0Awhshwze9gva8SkX4KL2gzMDs1AZihiQRJKtNlFed16PnhwJng5M4kDNx5veSMuf38CGYNnMdbnZaEe16pw/s664/inputquery01.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;codigo delphi inputquery&quot; border=&quot;0&quot; data-original-height=&quot;296&quot; data-original-width=&quot;664&quot; height=&quot;179&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPnonBsNz8KAEG7kzUlLfhjTE0DDExJZXGFPgt0Fwj7wAuFsBtH7iH3vXxliTWidIggXLRzCwyGYIwN1wL4vom0LA2zydheqGHoGc8WH0Awhshwze9gva8SkX4KL2gzMDs1AZihiQRJKtNlFed16PnhwJng5M4kDNx5veSMuf38CGYNnMdbnZaEe16pw/w400-h179/inputquery01.jpg&quot; title=&quot;codigo delphi inputquery&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij_J5vQs55D9GIfv_8E2QJcDyG1G19doV22AAtzPWEYZ2t-1FgGyBhWAwQlbKXu5n52JES5dPlizCizLtfzWtFedwkfQqxKOPPMYeh7DpPQhwkVGYveNEe0BCBxmg9ljFhJ7ZEGMQrSaxU_3hFidnVZwJJI8OUXqsJIf8Td8ZIMhc0i67lWaQuf9bj6g/s650/inputquery02.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;codigo delphi inputquery&quot; border=&quot;0&quot; data-original-height=&quot;339&quot; data-original-width=&quot;650&quot; height=&quot;209&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij_J5vQs55D9GIfv_8E2QJcDyG1G19doV22AAtzPWEYZ2t-1FgGyBhWAwQlbKXu5n52JES5dPlizCizLtfzWtFedwkfQqxKOPPMYeh7DpPQhwkVGYveNEe0BCBxmg9ljFhJ7ZEGMQrSaxU_3hFidnVZwJJI8OUXqsJIf8Td8ZIMhc0i67lWaQuf9bj6g/w400-h209/inputquery02.jpg&quot; title=&quot;codigo delphi inputquery&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihg7Xq5Afgtl9pb9WeXP9CIwKpgWdUOXqoQkNKKpUBX-yc_VoaCw_JAp6UPMRepKKG7YIkcULMSRDbg2IMA1LdOv1N7VUK8q6ypTxcwvQHuX99z_ueA6-KzVmDIoRSkNwBNCZtlZ8bJxAuT-XiVlcK6G7WswE9ls1MRQtPfUqQzvuCcoSuRGMrP5WFtQ/s656/inputquery03.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;codigo delphi inputquery&quot; border=&quot;0&quot; data-original-height=&quot;339&quot; data-original-width=&quot;656&quot; height=&quot;206&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihg7Xq5Afgtl9pb9WeXP9CIwKpgWdUOXqoQkNKKpUBX-yc_VoaCw_JAp6UPMRepKKG7YIkcULMSRDbg2IMA1LdOv1N7VUK8q6ypTxcwvQHuX99z_ueA6-KzVmDIoRSkNwBNCZtlZ8bJxAuT-XiVlcK6G7WswE9ls1MRQtPfUqQzvuCcoSuRGMrP5WFtQ/w400-h206/inputquery03.jpg&quot; title=&quot;codigo delphi inputquery&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;span style=&quot;color: #2b00fe;&quot;&gt;&lt;b&gt;Links:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;font-family: verdana;&quot; /&gt;&lt;br style=&quot;font-family: verdana;&quot; /&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;- &lt;a href=&quot;https://docwiki.embarcadero.com/Libraries/Sydney/en/System.TArray&quot; target=&quot;_blank&quot;&gt;TArray&lt;/a&gt;;&lt;/span&gt;&lt;br style=&quot;font-family: verdana;&quot; /&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;- &lt;a href=&quot;https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Dialogs.InputQuery&quot; target=&quot;_blank&quot;&gt;InputQuery&lt;/a&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;- &lt;a href=&quot;https://www.clipatecinformatica.com.br/2016/07/trystrtoint-inputbox-inputquery-no-delphi.html&quot; target=&quot;_blank&quot;&gt;TryStrToInt, InputBox e InputQuery no Delphi&lt;/a&gt;;&lt;br style=&quot;font-family: verdana;&quot; /&gt;&lt;br style=&quot;font-family: verdana;&quot; /&gt;&lt;div style=&quot;text-align: right;&quot;&gt;&lt;b style=&quot;font-family: verdana;&quot;&gt;(Por ClipaTec Informática)&lt;/b&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/16605977769299352/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2023/01/quick-tips-input-query-com-mais-de-um-campo-delphi.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/16605977769299352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/16605977769299352'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2023/01/quick-tips-input-query-com-mais-de-um-campo-delphi.html' title='Quick Tips - InputQuery com mais de um campo'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj60pN7V1YW8Fh2NdbPcrG67yOpzWJHXObmP3pyIu6_NrG6k98_EDFO3CFTjRtnmqq5J65TTfBVp3-EQnKKXLZVkeMSRHBv8S7W9lpNA_QvGrm6tujFpxy4_6C8MkFsTD9-jpsZZ_mOHUhBhqSHwE6XV21njrEl5pauftj_nqweyFaDC7W32yOOzhIIsg/s72-c/40885_windows_icon.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-2906679098770884619</id><published>2018-08-22T15:20:00.001-03:00</published><updated>2018-08-22T15:20:15.890-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programação"/><title type='text'>Loop &quot;Para ate Faca&quot;: Exercício Tabuada</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9qDjjkHSLLdQ63iLC-vcb9QFmBFYJflR7T8SkTHWm7qTq19mAyKgw7OBz1BNAVv22LsmFEqYFc-_-mfR9x_LOLZ22C1sWdt-Y7E5iUBT_1VBGWzfMDzVjJmJwU5c1GZjE4L-oV0aWL1lb/s1600/if_slice39_2835252.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;loop laço para ate faca tabuada&quot; border=&quot;0&quot; data-original-height=&quot;64&quot; data-original-width=&quot;51&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9qDjjkHSLLdQ63iLC-vcb9QFmBFYJflR7T8SkTHWm7qTq19mAyKgw7OBz1BNAVv22LsmFEqYFc-_-mfR9x_LOLZ22C1sWdt-Y7E5iUBT_1VBGWzfMDzVjJmJwU5c1GZjE4L-oV0aWL1lb/s1600/if_slice39_2835252.png&quot; title=&quot;loop laço para ate faca tabuada&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Olá minha gente. Agora que já conhecemos as &lt;/span&gt;&lt;a href=&quot;https://www.clipatecinformatica.com.br/2018/08/algoritmo-e-logica-de-programacao-estruturas-de-repeticao.html&quot; style=&quot;font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;&quot; target=&quot;_blank&quot;&gt;estruturas de repetição&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt; vamos praticar neste artigo, a estrutura de repetição &quot;&lt;b&gt;para ate faca&quot;&lt;/b&gt;, que é &lt;b&gt;um laço iterativo.&lt;/b&gt; O exercício que vamos praticar, é bem simples e muito utilizado dentro dos ambientes acadêmicos, no qual, &lt;b&gt;vamos desenvolver um algoritmo que entre com um determinado número&lt;/b&gt; que será informado pelo usuário, e &lt;b&gt;em seguida, imprimimos&lt;/b&gt; na tela &lt;b&gt;a tabuada do número&lt;/b&gt; digitado.&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Utilizaremos o laço &quot;para ate faca&quot; para montar esta tabuada.&lt;/b&gt; A lógica é bem simples. &lt;b&gt;O algoritmo será escrito em pseudocódigo (portugol) e a ferramenta&lt;/b&gt; didática &lt;b&gt;utilizada&lt;/b&gt; para execução do mesmo &lt;b&gt;será o visualg&lt;/b&gt;. O link para download se encontra no final do artigo.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Antes de iniciarmos o algoritmo, é importante ressaltar que, &lt;b&gt;o laço para ate faca é um laço iterativo, que sabe o momento de parar por já ter definido a quantidade de vezes que um determinado trecho de código será repetido.&lt;/b&gt; &lt;b&gt;Mas como ele vai controlar a quantidade de repetições que já foram realizadas? Por meio da variável de controle.&lt;/b&gt; Normalmente, chamamos esta variável de &quot;I, J, K, Cont, Contador ou Controle&quot;, mas isso pouco importa, você pode dar o nome que você preferir, o que importa, é que &lt;b&gt;esta variável seja do tipo inteiro,&lt;/b&gt; pois ela, será responsável por contar, controlar, a quantidade de repetições do laço. Deve ser inteiro &lt;b&gt;porque não existe &quot;meia repetição&quot;,&lt;/b&gt; então, jamais esta variável de controle pode ser do tipo real por exemplo. &lt;b&gt;A cada repetição, esta variável de controle recebe um incremento de 1 (um) por padrão,&lt;/b&gt; ou seja, a variável de controle vai somando 1 (um) a cada iteração, &lt;b&gt;até chegar no valor limite&lt;/b&gt; definido. &lt;b&gt;Ao chegar no valor limite, o laço encerra a repetição,&lt;/b&gt; e o algoritmo segue executando as próximas linhas, caso haja.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;O incremento&lt;/b&gt; pode ser definido no laço, caso não seja definido, &lt;b&gt;por padrão é um,&lt;/b&gt; &lt;b&gt;mas você pode dizer que o incremento seja de dois, três, etc.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: georgia, &amp;quot;times new roman&amp;quot;, serif;&quot;&gt;Agora vamos praticar. Analisando a proposta do exercício, o algoritmo precisa saber de qual número ele exibirá a tabuada, esta entrada de dados, será definida pelo usuário, então, o algoritmo deve solicitar ao usuário qual é este número. Neste exemplo, vamos trabalhar com tabuadas de números inteiro apenas.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Após o usuário informar o número que ele deseja imprimir a tabuada, o algoritmo deve guardar este número dentro de uma variável para ser utilizado posteriormente, então, vamos criar uma variável chamada &quot;Numero&quot; do tipo inteiro que armazenará o número digitado pelo usuário.&lt;br /&gt;Como utilizaremos o laço &lt;b&gt;para ate faca&lt;/b&gt;, então precisamos criar uma variável de controle, vamos chamá-la de &quot;I&quot;, do tipo inteiro.&lt;br /&gt;Agora pare, e pense, precisamos multiplicar o número digitado por zero, depois por um, dois até dez e mostrar o resultado de cada multiplicação.&lt;br /&gt;Com base nisso, precisamos criar uma variável que irá calcular estas multiplicações, então, criaremos mais uma variável do tipo inteiro com o nome &quot;Mult&quot;. Lembrando que o nome pode ser qualquer um de sua preferência, a minha dica é, sempre procure usar nomes bem claros e objetivos, para que, quando você olhar o algoritmo, você já consiga lembrar pra que server cada uma delas.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Agora vem a mágica do laço &lt;b&gt;para ate faca&lt;/b&gt;, como precisamos multiplicar o número pela sequência de zero até dez, então já podemos notar que o laço &lt;b&gt;para ate faca&lt;/b&gt;&amp;nbsp;será propício, ele iniciará com zero e vai se repetir até dez, incrementando um a cada repetição, e dentro de cada repetição já calculamos a multiplicação e exibimos para o usuário. Fácil né?&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: georgia, &amp;quot;times new roman&amp;quot;, serif;&quot;&gt;Segue o algoritmo:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #4c1130;&quot;&gt;Algoritmo &quot;Tabuada&quot;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #4c1130; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;// declaracao de variaveis&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #4c1130; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Var&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #4c1130; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;Numero, Mult, I: inteiro&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #4c1130; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Inicio&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #4c1130; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;// ler numero digitado pelo usuario&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #4c1130; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;escreval(&quot;Informe a tabuada a ser exibida:&quot;)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #4c1130; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;leia(Numero)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #4c1130; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;// multiplicar numero pela sequencia de zero ate dez&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #4c1130; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;para I de 0 ate 10 faca&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #4c1130; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Mult &lt;- -=&quot;&quot; font=&quot;&quot; i=&quot;&quot; numero=&quot;&quot;&gt;&lt;/-&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #4c1130; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; escreval(Numero, &quot; X &quot;, I, &quot; = &quot;, Mult)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #4c1130; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;fimpara&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #4c1130; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #4c1130; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Fimalgoritmo&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Muito bem, como podemos observar, a cada repetição, a variável &quot;Mult&quot; lê o número digitado pelo usuário e multiplica por &quot;I&quot;, sendo que, na primeira repetição o valor de &quot;I&quot; é zero, na próxima é um e assim sucessivamente até dez, em seguida, já imprimimos o resultado para o usuário. No final da execução, teremos a tabuada montada.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Qualquer dúvida, deixe seu comentário. Até o próximo.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #073763; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Download&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;- Interpretado e editor de algoritmos &lt;a href=&quot;https://sourceforge.net/projects/visualg30/&quot; target=&quot;_blank&quot;&gt;VISUALG&lt;/a&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;(Por Welinton Dias)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/2906679098770884619/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2018/08/loop-para-ate-faca-exercicio-tabuada.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/2906679098770884619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/2906679098770884619'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2018/08/loop-para-ate-faca-exercicio-tabuada.html' title='Loop &quot;Para ate Faca&quot;: Exercício Tabuada'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9qDjjkHSLLdQ63iLC-vcb9QFmBFYJflR7T8SkTHWm7qTq19mAyKgw7OBz1BNAVv22LsmFEqYFc-_-mfR9x_LOLZ22C1sWdt-Y7E5iUBT_1VBGWzfMDzVjJmJwU5c1GZjE4L-oV0aWL1lb/s72-c/if_slice39_2835252.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-6217121042103819933</id><published>2018-08-20T15:37:00.000-03:00</published><updated>2018-08-20T15:37:23.412-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="Programação"/><title type='text'>Delphi: Função ParamStr</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4uWNfMeY4Xh096LMnSv2blrm7hJpL-ScAGNQ2jA4a0GGE5azEE-B1eQALSBoN0pycXnp57gIK2eHm1jsBWaBVPNjwXYzai50kwFI9FxkGguaDHw3Wt-lfFl1y-Ak-20eLlSXISRagCkCP/s1600/if_params_115702.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi paramstr parametros&quot; border=&quot;0&quot; data-original-height=&quot;64&quot; data-original-width=&quot;64&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4uWNfMeY4Xh096LMnSv2blrm7hJpL-ScAGNQ2jA4a0GGE5azEE-B1eQALSBoN0pycXnp57gIK2eHm1jsBWaBVPNjwXYzai50kwFI9FxkGguaDHw3Wt-lfFl1y-Ak-20eLlSXISRagCkCP/s1600/if_params_115702.png&quot; title=&quot;delphi paramstr parametros&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Olá clipatequeiros. Neste artigo &lt;b&gt;vamos entender a função &quot;ParamStr&quot; do Delphi&lt;/b&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Embora não muito utilizado, &lt;b&gt;a passagem de parâmetros é muito útil quando precisamos chamar um programa passando algumas&lt;/b&gt; diretrizes ou &lt;b&gt;informações relevantes para a execução do mesmo.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Isso acontece bastante quando se tem um aplicativo que chama outro por exemplo. Vamos imaginar a seguinte situação, onde temos um aplicativo desenvolvido em Java para enviar e-mail, e sua aplicação em Delphi, quando precisar enviar algum e-mail, chama este aplicativo em Java. Legal né, então, no momento em que o aplicativo Java for chamada, é necessário passar o e-mail&amp;nbsp;do destinatário, o assunto e a mensagem propriamente dita, é aí que entra os parâmetros. Estas informações são repassadas ao aplicativo Java no momento da chamada, em linha de comando, o exemplo é bem didático, porém, perfeito para entender este recurso.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Este exemplo é interessante, porque, no momento em que o aplicativo Java for chamado, ele já tem os parâmetros necessários para poder enviar o e-mail, então, ele mostrará apenas uma barra de progresso &quot;enviando e-mail...&quot; automaticamente, dispensando a ação do usuário para clicar em um botão pra enviar por exemplo, isto, considerando que as informações do remetente já estejam configuradas no aplicativo Java.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Isso é muito interessante, porque podemos desenvolver pequenos aplicativos de apoio em outras linguagens e usar por meio de uma aplicação Delphi, apenas fazendo o uso de passagem de parâmetros.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #073763; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Como funciona o ParamStr?&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #073763; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Parafraseando, no help e documentação do Delphi a respeito da &lt;b&gt;função ParamStr&lt;/b&gt;, diz que ela &lt;b&gt;retorna um parâmetro especificado da linha de comando CmdLine (nota 3)&lt;/b&gt; usada para chamar o programa atual &lt;b&gt;por meio do seu índice ParamIndex (nota 1)&lt;/b&gt;. &lt;b&gt;Caso o índice seja inválido,&lt;/b&gt; como por exemplo, &lt;b&gt;se o índice&lt;/b&gt; especificado &lt;b&gt;for maior que o&lt;/b&gt; &lt;b&gt;ParamCount (nota 2),&lt;/b&gt; isto é, um índice inexistente, &lt;b&gt;ela retorna uma string vazia.&lt;/b&gt; Desta forma temos que, &lt;b&gt;o índice 2 retorna o segundo parâmetro da linha de comando, o índice 3 retorna o terceiro parâmetro e assim sucessivamente,&lt;/b&gt; se passar um índice que não existe, é retornado uma string (texto) vazio. Acredito que com esta explicação até repetitiva, já deu pra entender esta primeira parte.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Por padrão, &lt;b&gt;o ParamIndex 0 (zero), é reservado para o caminho do programa,&lt;/b&gt; ele representa o programa (executável) em si, portanto,&lt;b&gt; não conseguimos atribuir valor a este índice,&lt;/b&gt; quando atribuímos algum parâmetro, ele sempre iniciará no índice 1.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Os parâmetros, são separados com um espaço em branco.&lt;/b&gt; Aí vem uma pergunta, &lt;b&gt;e se precisar passar um valor que contenha espaço(s) em branco,&lt;/b&gt; como por exemplo, nomes de arquivos longos contendo espaço? Legal, no problem, &lt;b&gt;basta passar o valor entre aspas duplas,&lt;/b&gt; com isso, ocorre um agrupamento de palavras e será interpretado como sendo o valor de um determinado parâmetro.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #073763; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Notas&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;1 - ParamIndex&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Refere-se ao índice especificado da linha de comando.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;2 - ParamCount&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Contabiliza e mostra a quantidade de parâmetros passados na linha de comando para o programa atual.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;3 - CmdLine&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Aponta para os argumentos da linha de comandos especificados ao chamar o programa, esta variável contém todo o texto da linha de comandos. Para acessar parâmetros individualmente, deve-se usar a função &lt;b&gt;ParamStr.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;(Por Welinton Dias)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/6217121042103819933/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2018/08/delphi-funcao-paramstr.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/6217121042103819933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/6217121042103819933'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2018/08/delphi-funcao-paramstr.html' title='Delphi: Função ParamStr'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4uWNfMeY4Xh096LMnSv2blrm7hJpL-ScAGNQ2jA4a0GGE5azEE-B1eQALSBoN0pycXnp57gIK2eHm1jsBWaBVPNjwXYzai50kwFI9FxkGguaDHw3Wt-lfFl1y-Ak-20eLlSXISRagCkCP/s72-c/if_params_115702.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-1983893278474109778</id><published>2018-08-08T22:01:00.001-03:00</published><updated>2018-08-08T22:01:29.152-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programação"/><title type='text'>Algoritmo e lógica de programação - Estruturas de repetição (loop)</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiujQetG77UvbHBC83S5TOUAagb1qNWus8qYmexgdSIYtNyILLXSaRL4UfQ95xjf7AHA5ue3BIgTct0RgbW16w0rSW-pqxQUC0pzgveopvOXB9Bf70k8oDfSuXkLIm3A-P0UlhhPOaF5b1E/s1600/if_slice39_2835252.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;estrutura de repeticao loop&quot; border=&quot;0&quot; data-original-height=&quot;64&quot; data-original-width=&quot;51&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiujQetG77UvbHBC83S5TOUAagb1qNWus8qYmexgdSIYtNyILLXSaRL4UfQ95xjf7AHA5ue3BIgTct0RgbW16w0rSW-pqxQUC0pzgveopvOXB9Bf70k8oDfSuXkLIm3A-P0UlhhPOaF5b1E/s1600/if_slice39_2835252.png&quot; title=&quot;estrutura de repeticao loop&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Olá clipatequeiros. &lt;b&gt;Este artigo é voltado para os iniciantes em programação,&lt;/b&gt; que estão dando seus primeiros passos. Geralmente postamos coisas de nível médio e avançado, mas nosso objetivo é ajudar a todos, inclusive quem está começando agora, quanto mais programador melhor.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;Vou abordar neste artigo a respeito das estruturas de decisão, também conhecidas por &quot;loop&quot; ou simplesmente laço de repetição.&lt;/b&gt; No desenvolvimento de software, &lt;b&gt;estas estruturas são muito utilizadas.&lt;/b&gt; &lt;b&gt;Em determinados momentos, precisamos repetir&lt;/b&gt; um determinado &lt;b&gt;trecho de código&lt;/b&gt; (implementação) &lt;b&gt;&quot;n&quot; vezes,&lt;/b&gt; é neste caso que entram as estruturas de repetição. Elas são muito úteis, até mesmo para reduzir códigos.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;Podemos dividir as estruturas de decisão em dois grupos:&lt;/b&gt; &lt;b&gt;i&lt;/b&gt;terativa e &lt;b&gt;in&lt;/b&gt;terativa. Uma letrinha a mais no nome, mas na prática, uma diferença considerável. Vamos ver um pouco sobre estes dois grupos de maneira bem resumida e direta (odeio enrolação, não leva a lugar nenhum e fica cansativo rsrsrs).&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Praticamente, todas as linguagens de programação, disponibiliza três estruturas de repetição, são elas:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;para ate faca&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;enquanto faca&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;repita ate&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Digo &quot;praticamente todas&quot;, porque desconheço alguma linguagem que não dê suporte a estas três estruturas, mas, vai que exista alguma por ai não é mesmo?&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #073763;&quot;&gt;Estrutura de repetição &lt;/span&gt;i&lt;span style=&quot;color: #073763;&quot;&gt;terativa (loop &lt;/span&gt;i&lt;span style=&quot;color: #073763;&quot;&gt;terativo)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;Dentro deste grupo, temos&lt;/b&gt; a estrutura de repetição, ou laço de repetição &lt;b&gt;para ate faca.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Esta estrutura é &lt;b&gt;utilizada quando já se tem o número de vezes definido que um determinado trecho de código será repetido.&lt;/b&gt; &lt;b&gt;É dito iterativo porque dispensa a&lt;/b&gt; ação, interferência, &lt;b&gt;interação do usuário para que o mesmo pare de se repetir,&lt;/b&gt; ou seja, ele vai se repetir até que o número de vezes definido seja satisfeito, dispensando a ação do usuário para pará-lo.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Vou apresentar uma situação simples, porém, vai te ajudar entender melhor. &lt;b&gt;Imagine que um algoritmo precisa mostrar os números pares dentro de um intervalo de 1 até 10. Certo?&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;Note que já temos&lt;/b&gt; definido &lt;b&gt;a quantidade de vezes&lt;/b&gt; em &lt;b&gt;que&lt;/b&gt; este laço &lt;b&gt;vai se repetir,&lt;/b&gt; isto é, &lt;b&gt;dez vezes.&lt;/b&gt; Então este laço só vai parar após a décima repetição, não foi necessário o usuário intervir para parar a repetição, esta quantidade de vezes já foi predefino antes. Este laço é iterativo porque &lt;b&gt;a cada repetição, a variável de controle do laço incrementa,&lt;/b&gt; adiciona, soma &lt;b&gt;mais um.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Vejamos a &lt;b&gt;sintaxe do laço para ate faca:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;para&lt;/b&gt; &quot;variavel_controle&quot;&amp;nbsp;&lt;variavel&gt;&lt;variavel_controle&gt;&lt;b&gt;de&lt;/b&gt; &quot;valor_inicial&quot;&lt;valor_inicial&gt;&lt;valor_inicial&gt;&amp;nbsp;&lt;b&gt;ate&lt;/b&gt; &quot;valor_final&quot;&amp;nbsp;&lt;valor_final&gt;&lt;valor_final&gt;[&lt;b&gt;passo&lt;/b&gt; &quot;incremento&quot;&lt;incremento&gt;] &lt;b&gt;faca&lt;/b&gt;&lt;/incremento&gt;&lt;/valor_final&gt;&lt;/valor_final&gt;&lt;/valor_inicial&gt;&lt;/valor_inicial&gt;&lt;/variavel_controle&gt;&lt;/variavel&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;sequencia comandos=&quot;&quot; de=&quot;&quot;&gt;&lt;/sequencia&gt;&quot;sequencia_de_comandos&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;fimpara&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Onde:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;&quot;variavel_controle&quot;:&lt;/b&gt;&amp;nbsp;é uma variável do tipo inteiro que vai controlar as repetições do laço;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;&quot;valor_inicial&quot;:&lt;/b&gt; definição do valor inicial para a &lt;b&gt;variável_controle;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;&quot;valor_final&quot;:&lt;/b&gt; definição do valor limite para a &lt;b&gt;variavel_controle;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;&quot;incremento&quot;:&lt;/b&gt; o valor a ser incrementado na &lt;b&gt;variavel_controle;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;&quot;sequencia_comandos&quot;:&lt;/b&gt; parte do código (implementação) que será executada durante a repetição do laço;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Então, a variável de controle recebe um valor inicial para a contagem das repetições, e vai se repetir até que o valor final seja satisfeito, e, a cada repetição a variável de controle soma o valor do incremento. Este último, quando não passado, por padrão é sempre &quot;um&quot;.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Em próximos artigos vamos trabalhar alguns algoritmos como exercícios práticos para entendermos melhor.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #073763;&quot;&gt;Estrutura de repetição &lt;/span&gt;in&lt;span style=&quot;color: #073763;&quot;&gt;terativa (loop &lt;/span&gt;in&lt;span style=&quot;color: #073763;&quot;&gt;terativo)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;Dentro deste grupo, temos as estruturas &quot;enquanto faca&quot; e &quot;repita ate&quot;.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Estas estruturas &lt;b&gt;são utilizadas quando não temos previamente a quantidade de vezes que um determinado trecho de código irá se repetir.&lt;/b&gt; &lt;b&gt;É dito interativo porque necessitada da ação do usuário para que o mesmo pare de se repetir.&lt;/b&gt; &lt;b&gt;Essa interação&lt;/b&gt; do usuário &lt;b&gt;vai ou não satisfazer uma condição de parada,&lt;/b&gt; desta maneira, &lt;b&gt;quando tal condição for satisfeita o laço para de se repetir.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Imagine um algoritmo que cadastre nomes de pessoas, onde um menu será exibido ao usuário com duas opções: &quot;Cadastrar&quot; e &quot;Sair&quot;. Sempre que o usuário escolher a opção &quot;Cadastrar&quot;, o algoritmo pede para que o usuário digite o nome da pessoa, em seguida, o menu é exibido novamente. Percebe que, enquanto o usuário escolher a opção &quot;Cadastrar&quot;, será necessário entrar com um nome a ser cadastrado, e quando, finalmente, o usuário escolher a opção &quot;Sair&quot;, então, o laço para de se repetir, ou seja, a condição de parada do laço, é quando a opção escolhida for &quot;Sair&quot;.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Essa é &lt;b&gt;a diferença entre o laço iterativo e o laço interativo,&lt;/b&gt; &lt;b&gt;este último, só para de se repetir, quando a condição de parada for satisfeita, &lt;/b&gt;neste caso, necessita-se da intervenção do usuário para isso. Então &lt;b&gt;por que temos duas estruturas neste grupo?&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Simples, &lt;b&gt;o enquanto faca, o teste da condição de parada é feita no início,&lt;/b&gt; antes mesmo de entrar no laço, se o teste, ou expressão lógica, for satisfeita logo no início, então, o trecho de código dentro do laço nem chega a ser executado, &lt;b&gt;já a estrutura repita ate, o teste da expressão lógica só é feito no final do laço,&lt;/b&gt; então, independente de tudo, o trecho de código dentro deste laço, sempre será executado pelo menos uma vez, ao chegar no fim, se a condição for satisfeita, o mesmo para, caso contrário, continua executando. Agora, cabe a você programador, analisar no seu dia a dia a necessidade do momento e escolher qual das duas estruturas interativas utilizar.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Vejamos a &lt;b&gt;sintaxe do laço enquanto faca:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;enquanto&lt;/b&gt; &quot;condicao_de_parada&quot;&amp;nbsp;&lt;condicao&gt;&lt;b&gt;faca&lt;/b&gt;&lt;/condicao&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;sequencia comandos=&quot;&quot; de=&quot;&quot;&gt;&lt;/sequencia&gt;&quot;sequencia_de_comandos&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;fimenquanto&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Onde:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;&quot;condicao_de_parada&quot;:&lt;/b&gt; ou expressão lógica, representa o teste a ser realizado, se verdadeiro, o laço para, se falso, o laço continua executado. Esta expressão lógica é realizada a cada repetição, e deve ser do tipo booleana.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Agora, vejamos a &lt;b&gt;sintaxe do laço repita ate:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;repita&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&quot;sequencia_de_comandos&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;ate&lt;/b&gt; &quot;condicao_de_parada&quot;&lt;condicao&gt;&lt;/condicao&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Neste caso, dispensa explicação, visto que &lt;b&gt;é exatamente igual ao anterior, o que muda, é que o teste é feito no final do laço, e os comandos (repita..ate).&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Também, faremos alguns algoritmos para praticar estas estruturas em próximos artigos, um grande abraço.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;(Por Welinton J. Dias)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/1983893278474109778/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2018/08/algoritmo-e-logica-de-programacao-estruturas-de-repeticao.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/1983893278474109778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/1983893278474109778'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2018/08/algoritmo-e-logica-de-programacao-estruturas-de-repeticao.html' title='Algoritmo e lógica de programação - Estruturas de repetição (loop)'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiujQetG77UvbHBC83S5TOUAagb1qNWus8qYmexgdSIYtNyILLXSaRL4UfQ95xjf7AHA5ue3BIgTct0RgbW16w0rSW-pqxQUC0pzgveopvOXB9Bf70k8oDfSuXkLIm3A-P0UlhhPOaF5b1E/s72-c/if_slice39_2835252.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-4089217145945576945</id><published>2018-05-12T07:00:00.000-03:00</published><updated>2018-05-12T07:00:01.857-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="Tutoriais"/><title type='text'>Cadastro Delphi POO + MVC + DAO - Camada View - Parte 6</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgij6Eu-pnDiI12k56d1K8d1RhILqIaogp09duiC0qNNZruuSGH8u72UD94x5P_IBJGjWfaY4r_zkt-VKVKiVuV0U67jVvbwvvqF3rGWsobjbZVHE-jNBo2rtxTuVKkoANU5Wga03PspQ3S/s1600/if_window-layout_299082.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;128&quot; data-original-width=&quot;128&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgij6Eu-pnDiI12k56d1K8d1RhILqIaogp09duiC0qNNZruuSGH8u72UD94x5P_IBJGjWfaY4r_zkt-VKVKiVuV0U67jVvbwvvqF3rGWsobjbZVHE-jNBo2rtxTuVKkoANU5Wga03PspQ3S/s1600/if_window-layout_299082.png&quot; title=&quot;delphi mvc poo camada view&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Aooooo meu povo, finalmente chegamos ao penúltimo artigo da nossa série de cadastro Delphi POO + MVC + DAO. Estamos felizes por ter acendido uma pequena luz nessa escuridão, algumas pessoas tem interagido outras entraram em contato, e isso é muito gratificante. Neste artigo vamos finalizar as implementações da camada VIEW.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Sem perca de tempo, com o projeto aberto no Delphi, acesse a tela de cadastro de cliente, selecione a &quot;StringGrid&quot; e implemente o evento &quot;OnDrawCell&quot; assim:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj74d1XMDibEiIQ2JwskERHGXBWmgdYx_fzbjGdmiu7qVUHATiSnk0UgFq1TPpUkRxWRiiKtpO9ubQ-tHlJiURFcaOYwuM5xMf5CwtFffHtZDopiqAISTmQ_2Jh43LlQKut-HQXCwk0wSMk/s1600/mvc26.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;253&quot; data-original-width=&quot;850&quot; height=&quot;188&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj74d1XMDibEiIQ2JwskERHGXBWmgdYx_fzbjGdmiu7qVUHATiSnk0UgFq1TPpUkRxWRiiKtpO9ubQ-tHlJiURFcaOYwuM5xMf5CwtFffHtZDopiqAISTmQ_2Jh43LlQKut-HQXCwk0wSMk/s640/mvc26.PNG&quot; title=&quot;delphi mvc poo camada view&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Esta implementação apenas pinta os títulos das colunas da Grid, para ter um destaque visual, caso as descrições dos títulos das colunas não aparecer, acrescente esta linha após a linha 340:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: white; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;span style=&quot;background-color: black;&quot;&gt;Canvas.TextOut(Rect.Left, Rect.Top, Cells[ACol,ARow]);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Agora vamos implementar o evento &quot;OnDblClick&quot; da &quot;StringGrid&quot;, este evento é acionado quando o usuário der um duplo-clique sobre algum registro, ele apenas chama o método &quot;Detalhar&quot;:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUQgIueX9GbuhfRATDTVdsE8mgGU-24FW2O5Ga5jmmG5o5EaTS9rXZ_NqpjuAzgdRH6p7ZEV7QKJCW3uFTv3KQjE-SFG5V37S3FP4e3znqUsbDnDMf-t8LeMCV7dKDmJujQs6rZSIrN_A6/s1600/mvc25.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;69&quot; data-original-width=&quot;539&quot; height=&quot;80&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUQgIueX9GbuhfRATDTVdsE8mgGU-24FW2O5Ga5jmmG5o5EaTS9rXZ_NqpjuAzgdRH6p7ZEV7QKJCW3uFTv3KQjE-SFG5V37S3FP4e3znqUsbDnDMf-t8LeMCV7dKDmJujQs6rZSIrN_A6/s640/mvc25.PNG&quot; title=&quot;delphi mvc poo camada view&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;OK, agora, implemente o evento &quot;OnShow&quot; do formulário de cadastro assim:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6xJtB7xG-_4z2VwFT38h-mW6WY3D_axzdQu4oAl0RAD3_PbTkesMRsWxAlimSv6YX4iKzj9eQEgaylo2q4QafdeU5z4DnZ_chA93KvfMMuCR5IjcrRPLUmMTJycZ1st7drxMrJ7WYkVBV/s1600/mvc17.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;66&quot; data-original-width=&quot;461&quot; height=&quot;90&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6xJtB7xG-_4z2VwFT38h-mW6WY3D_axzdQu4oAl0RAD3_PbTkesMRsWxAlimSv6YX4iKzj9eQEgaylo2q4QafdeU5z4DnZ_chA93KvfMMuCR5IjcrRPLUmMTJycZ1st7drxMrJ7WYkVBV/s640/mvc17.PNG&quot; title=&quot;delphi mvc poo camada view&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Simplesmente, ao abrir a tela de cadastro de cliente, o método &quot;SetUp&quot; será chamado, e as configurações básicas para o bom funcionamento da tela serão realizadas.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Implemente o evento &quot;OnKeyPress&quot; da tela de cadastro desta maneira:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPEQ4Aq8yS2WhZtTeNZDIe7rSi22ygDOsDiAhVesqb6OCrP6MGKiAncFU5H2Wjc7BRIEBSC-wgarbi_UwIXi0ausbm5B276hzY-hBzF1Wh8OK_ctpkpNm_GQtCmJBo-m35-h5mFg26A2zu/s1600/mvc16.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;139&quot; data-original-width=&quot;656&quot; height=&quot;134&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPEQ4Aq8yS2WhZtTeNZDIe7rSi22ygDOsDiAhVesqb6OCrP6MGKiAncFU5H2Wjc7BRIEBSC-wgarbi_UwIXi0ausbm5B276hzY-hBzF1Wh8OK_ctpkpNm_GQtCmJBo-m35-h5mFg26A2zu/s640/mvc16.PNG&quot; title=&quot;delphi mvc poo camada view&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Este método verifica se a tecla &quot;Enter&quot; foi pressionada, caso sim, nós anulamos sua funcionalidade em seguida e chamamos a função &quot;Tab&quot;, para que quando o usuário pressionar a tecla &quot;Enter&quot;, ele consiga navegar entre os campos da tela.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Agora, vamos implementar os eventos &quot;OnClick&quot; dos seguintes botões:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Pesquisar&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-01Jw0dketxFZH7mmy6aNhKJXI2nVjlwk5eni8YCugsEWKN0xHHlwqTOumiHANrwVq73rlpb03odOeSpijVqSeloKyDeOFczAnj5QNIHGO1WGHjxUklr-VqP2483lqQpfEmyzZgwPpng_/s1600/mvc12.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;66&quot; data-original-width=&quot;538&quot; height=&quot;76&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-01Jw0dketxFZH7mmy6aNhKJXI2nVjlwk5eni8YCugsEWKN0xHHlwqTOumiHANrwVq73rlpb03odOeSpijVqSeloKyDeOFczAnj5QNIHGO1WGHjxUklr-VqP2483lqQpfEmyzZgwPpng_/s640/mvc12.PNG&quot; title=&quot;delphi mvc poo camada view&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Novo&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrN3BJqyxZkhD53n3A_mJcSNjGcJbsX5hu3vyG8bhicI6gZoU2pNxoiR7HmmZDCaWT4aT2PKvqwNdmcSXqKjmgJAQgj8n20rfYXH_V6gglwKoZAE4sgENOFf0dL99qg6X5iYCiedynjz4A/s1600/mvc11.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;84&quot; data-original-width=&quot;494&quot; height=&quot;107&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrN3BJqyxZkhD53n3A_mJcSNjGcJbsX5hu3vyG8bhicI6gZoU2pNxoiR7HmmZDCaWT4aT2PKvqwNdmcSXqKjmgJAQgj8n20rfYXH_V6gglwKoZAE4sgENOFf0dL99qg6X5iYCiedynjz4A/s640/mvc11.PNG&quot; title=&quot;delphi mvc poo camada view&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Detalhar&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWDPdf93VBYsFE3NOy4XesDX1E1XfgJnlvL-M7CuHVWzteNk6CE3ZyNG9bqDxXKd4tH76evm2rNhVYbCOlgP_4V4KRbwp1OlXwjOOBt6srmfeUoGvI3qTmrgsdwW9jF1Jtc6qme9YeTxXD/s1600/mvc6.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;65&quot; data-original-width=&quot;530&quot; height=&quot;78&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWDPdf93VBYsFE3NOy4XesDX1E1XfgJnlvL-M7CuHVWzteNk6CE3ZyNG9bqDxXKd4tH76evm2rNhVYbCOlgP_4V4KRbwp1OlXwjOOBt6srmfeUoGvI3qTmrgsdwW9jF1Jtc6qme9YeTxXD/s640/mvc6.PNG&quot; title=&quot;delphi mvc poo camada view&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Excluir&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi25ipihaewrYuka96JZi1dULqNOHqbr54aQAPJrSo1VrZMhGPPHZLXx_JUAJsu76v6bmtccBduDQl1SlQWrpCAuLW7pt4BmKzq_kBa2vMOFs0_TpTU0I8qIlzcp48bp4dtzXXoj6uv3ziL/s1600/mvc8.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;67&quot; data-original-width=&quot;521&quot; height=&quot;82&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi25ipihaewrYuka96JZi1dULqNOHqbr54aQAPJrSo1VrZMhGPPHZLXx_JUAJsu76v6bmtccBduDQl1SlQWrpCAuLW7pt4BmKzq_kBa2vMOFs0_TpTU0I8qIlzcp48bp4dtzXXoj6uv3ziL/s640/mvc8.PNG&quot; title=&quot;delphi mvc poo camada view&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Listar&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXZocrMJP5x7psskD95z_v6gaKHlm6Q4DyEt5aSIHhCJPVa4nUkFtaBwl4AbTZam2Bcoz4QmE1l39YmBkh8zgca-DCKxf8dbXmtAUXnMqvyXGPygjeP9YRntz2topILci0eZhx2pwk3fF5/s1600/mvc10.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;66&quot; data-original-width=&quot;509&quot; height=&quot;82&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXZocrMJP5x7psskD95z_v6gaKHlm6Q4DyEt5aSIHhCJPVa4nUkFtaBwl4AbTZam2Bcoz4QmE1l39YmBkh8zgca-DCKxf8dbXmtAUXnMqvyXGPygjeP9YRntz2topILci0eZhx2pwk3fF5/s640/mvc10.PNG&quot; title=&quot;delphi mvc poo camada view&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Alterar&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj22uyAKOuTKp1bRXanzsCHC2rqhITFXbmHVuBKVYjPr6s4x0Dn_9_UMTk_SN1RqfWLxp7kOoI8zLfHQbp-VPyjO811_ZVR6RKMz5OflaP1w_6jDKX0gQl-PCTsjWw-0Y2e6955yeUS-_d8/s1600/mvc4.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;87&quot; data-original-width=&quot;520&quot; height=&quot;106&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj22uyAKOuTKp1bRXanzsCHC2rqhITFXbmHVuBKVYjPr6s4x0Dn_9_UMTk_SN1RqfWLxp7kOoI8zLfHQbp-VPyjO811_ZVR6RKMz5OflaP1w_6jDKX0gQl-PCTsjWw-0Y2e6955yeUS-_d8/s640/mvc4.PNG&quot; title=&quot;delphi mvc poo camada view&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;Gravar&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFxiF9DP29K6NldMwdJbRm5O8SxE2A_8rDU9zJj-0xNa6UrmbzBRPE_j0FzluAIAMb4vSHYY0uPtFAmCt95Yhh93kzUNov8ju8_BsWMlb9G6nJG3V1Yoyg9-2wYw5W9xZYaeSa2HZMUUYW/s1600/mvc9.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;83&quot; data-original-width=&quot;509&quot; height=&quot;104&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFxiF9DP29K6NldMwdJbRm5O8SxE2A_8rDU9zJj-0xNa6UrmbzBRPE_j0FzluAIAMb4vSHYY0uPtFAmCt95Yhh93kzUNov8ju8_BsWMlb9G6nJG3V1Yoyg9-2wYw5W9xZYaeSa2HZMUUYW/s640/mvc9.PNG&quot; title=&quot;delphi mvc poo camada view&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;Cancelar&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir-m1Bra2fEJfBlc2TJ0fXP1vrAUoFSpCEdmO9sv4qIMEd3OxaXBlTOdD5vx8obpOUvMxZIAQxL6k5KW6qrh2dymOa7m6Sb0hECPsbCZiYVWhCO6hNiAseb7uVquy5yoTlEGgHBg6HU1ig/s1600/mvc5.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;64&quot; data-original-width=&quot;529&quot; height=&quot;76&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir-m1Bra2fEJfBlc2TJ0fXP1vrAUoFSpCEdmO9sv4qIMEd3OxaXBlTOdD5vx8obpOUvMxZIAQxL6k5KW6qrh2dymOa7m6Sb0hECPsbCZiYVWhCO6hNiAseb7uVquy5yoTlEGgHBg6HU1ig/s640/mvc5.PNG&quot; title=&quot;delphi mvc poo camada view&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Esta foi a parte mais simples, pois, apenas chamamos os métodos que já foram implementados nos botões. Desta maneira, finalizamos as implementações da camada VIEW, agora, no próximo artigo, vamos finalizar o projeto. Qualquer dúvida, só comentar, até o próximo, abraço.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Este artigo faz parte da série: &lt;a href=&quot;https://www.clipatecinformatica.com.br/2016/07/serie-cadastro-delphi-poo-mvc-dao.html&quot; target=&quot;_blank&quot;&gt;CRUD Delphi POO + MVC + DAO&lt;/a&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;&quot;&gt;Por ClipaTec Informática)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/4089217145945576945/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2018/05/cadastro-delphi-poo-mvc-dao-camada-view-parte-6.html#comment-form' title='10 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/4089217145945576945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/4089217145945576945'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2018/05/cadastro-delphi-poo-mvc-dao-camada-view-parte-6.html' title='Cadastro Delphi POO + MVC + DAO - Camada View - Parte 6'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgij6Eu-pnDiI12k56d1K8d1RhILqIaogp09duiC0qNNZruuSGH8u72UD94x5P_IBJGjWfaY4r_zkt-VKVKiVuV0U67jVvbwvvqF3rGWsobjbZVHE-jNBo2rtxTuVKkoANU5Wga03PspQ3S/s72-c/if_window-layout_299082.png" height="72" width="72"/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-4685780242492400846</id><published>2018-05-11T06:00:00.000-03:00</published><updated>2018-05-11T06:00:12.778-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="Tutoriais"/><title type='text'>Cadastro Delphi POO + MVC + DAO - Camada View - Parte 5</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgij6Eu-pnDiI12k56d1K8d1RhILqIaogp09duiC0qNNZruuSGH8u72UD94x5P_IBJGjWfaY4r_zkt-VKVKiVuV0U67jVvbwvvqF3rGWsobjbZVHE-jNBo2rtxTuVKkoANU5Wga03PspQ3S/s1600/if_window-layout_299082.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;128&quot; data-original-width=&quot;128&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgij6Eu-pnDiI12k56d1K8d1RhILqIaogp09duiC0qNNZruuSGH8u72UD94x5P_IBJGjWfaY4r_zkt-VKVKiVuV0U67jVvbwvvqF3rGWsobjbZVHE-jNBo2rtxTuVKkoANU5Wga03PspQ3S/s1600/if_window-layout_299082.png&quot; title=&quot;delphi mvc poo camada view&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Olá clipatequeiros de plantão. Estamos em reta final &lt;a href=&quot;https://www.clipatecinformatica.com.br/2016/07/serie-cadastro-delphi-poo-mvc-dao.html&quot; target=&quot;_blank&quot;&gt;desta série de artigos&lt;/a&gt;, e no artigo de hoje, vamos continuar implementando os métodos da camada VIEW. Com o projeto aberto no Delphi, implemente o método &quot;Gravar&quot;:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXo8D9q7idsIq_9LAmg8ccaGQmEMHo_sAAvhpUQRPOzD1y0MasbJ_dc5LDKzlIbOdzJEAFgt6bzQJPTFvNUVwaIimZahcRwKIbf1oeV1nIAfxBvEFi293ML2LeiXYCaQwY4kXMvE751mo6/s1600/mvc18.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;254&quot; data-original-width=&quot;493&quot; height=&quot;328&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXo8D9q7idsIq_9LAmg8ccaGQmEMHo_sAAvhpUQRPOzD1y0MasbJ_dc5LDKzlIbOdzJEAFgt6bzQJPTFvNUVwaIimZahcRwKIbf1oeV1nIAfxBvEFi293ML2LeiXYCaQwY4kXMvE751mo6/s640/mvc18.PNG&quot; title=&quot;delphi mvc poo camada view&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Conforme vimos no início da &lt;a href=&quot;https://www.clipatecinformatica.com.br/2018/03/cadastro-delphi-poo-mvc-dao-camada-view.html&quot; target=&quot;_blank&quot;&gt;parte 3&lt;/a&gt;&amp;nbsp;vamos usar o Field &quot;FOperacao&quot;, o qual, uma de suas finalidades é nortear o método gravar, rapidamente explicando, quando o usuário clicar no botão &quot;Novo&quot;, este campo recebe um valor de tipo enumerado &quot;opNovo&quot;, e quando o usuário clicar no botão &quot;Alterar&quot;, este campo recebe um valor &quot;opAlterar&quot;, desta maneira, agora aqui dentro do método &quot;Gravar&quot;, fazemos uma verificação, se o valor deste campo é &quot;opNovo&quot;, então o método &quot;Gravar&quot; vai chamar o método de inserção, caso for &quot;opAlterar&quot;, o método&amp;nbsp; de alteração será chamado.&lt;br /&gt;Após o método Inserir ou Alterar for chamado, ao final da operação, se deu tudo certo, novamente chamamos o método de pesquisa para atualizar as informações.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Muito bem, agora implemente o método &quot;Inserir&quot;:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh96ALrQHgVsnluYHOLvUf9C778NxdIHVB0nXS_5tZQq4i3XihrhpYlgi6ZmUwZ-9-jfPqEt8QS-Fu4TZTrnWrOQbaHHU0YhTwmWJqgOqox8v7nUUnubo6R9yw1rPOJkj0AhWJHFqNUNIbb/s1600/mvc20.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;427&quot; data-original-width=&quot;554&quot; height=&quot;491&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh96ALrQHgVsnluYHOLvUf9C778NxdIHVB0nXS_5tZQq4i3XihrhpYlgi6ZmUwZ-9-jfPqEt8QS-Fu4TZTrnWrOQbaHHU0YhTwmWJqgOqox8v7nUUnubo6R9yw1rPOJkj0AhWJHFqNUNIbb/s640/mvc20.PNG&quot; title=&quot;delphi mvc poo camada view&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: georgia, times new roman, serif;&quot;&gt;Como você já deve estar habituado, não tem muito segredo, algumas linhas dispensa comentários e explicações. Basicamente um objeto do tipo &quot;TCliente&quot; é criado, e alimentado com as informações dos componentes que o usuário digitou, logo após, este objeto é enviado para a DAO por meio da Controller, onde as informações do mesmo será extraída e inserida na base de dados, se ocorrer algum erro, este erro é retornado dentro da variável &quot;sErro&quot; e exibida para o usuário como uma exceção.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: georgia, times new roman, serif;&quot;&gt;Agora, vamos implementar o método que faz aquela mágica nos componentes para habilitar e desabilitar conforme a operação que está sendo realizada, então, mão na massa, implemente o método &quot;HabilitarControles&quot;:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: georgia, times new roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4JjHrLWNhn5R5bLJmNk6kj1ydURd3DlWOtDVNlfPL-TfPrjhyy_tj8UNDvTipZ5alG_nq71oOoVysVr5ZfNJEYWc08y104RbSgq0jwY96G5o1rJYdTud06tr3b5-KFo_5RQCcoD1OvRcQ/s1600/mvc19.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;530&quot; data-original-width=&quot;622&quot; height=&quot;544&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4JjHrLWNhn5R5bLJmNk6kj1ydURd3DlWOtDVNlfPL-TfPrjhyy_tj8UNDvTipZ5alG_nq71oOoVysVr5ZfNJEYWc08y104RbSgq0jwY96G5o1rJYdTud06tr3b5-KFo_5RQCcoD1OvRcQ/s640/mvc19.PNG&quot; title=&quot;delphi mvc poo camada view&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;C&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Como você percebeu, este método vai habilitar ou desabilitar os controles (TEdit, TButton, etc) conforme a operação (Inserção, Alteração ou Navegação). Sem segredos nénom? Qualquer dúvida, deixe seu comentário.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: georgia, times new roman, serif;&quot;&gt;Ufa, calma que já estamos quase concluindo nosso projeto por completo, daqui sete artigos chegaremos ao fim (kkkkkkkkkk) brincadeira, faltam poucos artigos. Brincadeiras a parte, agora vamos implementar o evento &quot;OnClick&quot; do botão &quot;btnCliente&quot;. Este botão, está no formulário do menu principal, então, acesse ele, dê um duplo-clique sobre o botão &quot;Cliente&quot; e implemente desta forma:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmPeRcymvhZST8X7QTABS4qooAeK8CepI8xAHDjhmmFZzzuSLrBNQFvY8brf7U5vrvN5Zw4DlT5JuNVXDzmyG-veTRYRa4Pa-UuVKbJnsznGIquFvLdg16lSs5SSJ1k4uWNoxodLMwnsEv/s1600/mvc31.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;154&quot; data-original-width=&quot;503&quot; height=&quot;193&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmPeRcymvhZST8X7QTABS4qooAeK8CepI8xAHDjhmmFZzzuSLrBNQFvY8brf7U5vrvN5Zw4DlT5JuNVXDzmyG-veTRYRa4Pa-UuVKbJnsznGIquFvLdg16lSs5SSJ1k4uWNoxodLMwnsEv/s640/mvc31.PNG&quot; title=&quot;delphi mvc poo camada view&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Este botão simplesmente cria o formulário de cadastro de cliente na memória e exibe para o usuário, e quando for fechado, o mesmo é liberado da memória. É importante ressaltar que, você precisa fazer o formulário principal enxergar o formulário de cadastro, para isso, pressione &quot;Alt + F11&quot; e selecione o formulário de cadastro de cliente na lista, deixe a opção &quot;Implementation&quot; marcada e clique no botão &quot;OK&quot;. É o famoso &quot;Use Unit&quot;. Para finalizarmos este artigo, volte para o formulário de cadastro de cliente, selecione a &quot;StringGrid&quot; e implemente o evento &quot;OnSelectCell&quot; da seguinte maneira:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOei05u51NNT8_Q6n9cpXGLaS2xROzAYapoNtxiEL2kf7h9cdbpvHd3LaBikrZb8CqgLOaRU-7B35prCLNZA0Vlw37g88jcxdhCf3dFX7AUh5bxJVW8B9sUMn_UYZO8zGAYKAfAN6aCwBS/s1600/mvc27.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;87&quot; data-original-width=&quot;956&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOei05u51NNT8_Q6n9cpXGLaS2xROzAYapoNtxiEL2kf7h9cdbpvHd3LaBikrZb8CqgLOaRU-7B35prCLNZA0Vlw37g88jcxdhCf3dFX7AUh5bxJVW8B9sUMn_UYZO8zGAYKAfAN6aCwBS/s1600/mvc27.PNG&quot; title=&quot;delphi mvc poo camada view&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: georgia, &amp;quot;times new roman&amp;quot;, serif;&quot;&gt;Conforme o usuário seleciona um registro na &quot;StringGrid&quot;, o código do mesmo é armazenado no campo &quot;IdSelecionado&quot;, conforme você observou durante as implementações, este campo é usado durante as chamadas de alguns métodos, como o método &quot;CarregarCliente&quot; por exemplo.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: georgia, &amp;quot;times new roman&amp;quot;, serif;&quot;&gt;Gente boa, assim terminamos mais um artigo, esperamos vocês no próximo artigo, um dos últimos desta série espetacular. Até lá. Tchauuu brigadoooo.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: georgia, &amp;quot;times new roman&amp;quot;, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: georgia, &amp;quot;times new roman&amp;quot;, serif;&quot;&gt;Este artigo faz parte da série: &lt;a href=&quot;https://www.clipatecinformatica.com.br/2016/07/serie-cadastro-delphi-poo-mvc-dao.html&quot; target=&quot;_blank&quot;&gt;CRUD Delphi POO + MVC + DAO&lt;/a&gt;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: georgia, &amp;quot;times new roman&amp;quot;, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: georgia, &amp;quot;times new roman&amp;quot;, serif;&quot;&gt;&lt;b&gt;(Por ClipaTec Informática)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/4685780242492400846/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2018/05/cadastro-delphi-poo-mvc-dao-camada-view-parte-5.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/4685780242492400846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/4685780242492400846'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2018/05/cadastro-delphi-poo-mvc-dao-camada-view-parte-5.html' title='Cadastro Delphi POO + MVC + DAO - Camada View - Parte 5'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgij6Eu-pnDiI12k56d1K8d1RhILqIaogp09duiC0qNNZruuSGH8u72UD94x5P_IBJGjWfaY4r_zkt-VKVKiVuV0U67jVvbwvvqF3rGWsobjbZVHE-jNBo2rtxTuVKkoANU5Wga03PspQ3S/s72-c/if_window-layout_299082.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-5126160425714531499</id><published>2018-05-10T13:06:00.000-03:00</published><updated>2018-05-10T13:08:01.131-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="Tutoriais"/><title type='text'>Cadastro Delphi POO + MVC + DAO - Camada View - Parte 4</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgij6Eu-pnDiI12k56d1K8d1RhILqIaogp09duiC0qNNZruuSGH8u72UD94x5P_IBJGjWfaY4r_zkt-VKVKiVuV0U67jVvbwvvqF3rGWsobjbZVHE-jNBo2rtxTuVKkoANU5Wga03PspQ3S/s1600/if_window-layout_299082.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;128&quot; data-original-width=&quot;128&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgij6Eu-pnDiI12k56d1K8d1RhILqIaogp09duiC0qNNZruuSGH8u72UD94x5P_IBJGjWfaY4r_zkt-VKVKiVuV0U67jVvbwvvqF3rGWsobjbZVHE-jNBo2rtxTuVKkoANU5Wga03PspQ3S/s1600/if_window-layout_299082.png&quot; title=&quot;delphi mvc poo camada view&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Salve, salve galera. De volta a &lt;a href=&quot;https://www.clipatecinformatica.com.br/2016/07/serie-cadastro-delphi-poo-mvc-dao.html&quot; target=&quot;_blank&quot;&gt;nossa série&lt;/a&gt;, no &lt;a href=&quot;https://www.clipatecinformatica.com.br/2018/03/cadastro-delphi-poo-mvc-dao-camada-view.html&quot; target=&quot;_blank&quot;&gt;artigo anterior&lt;/a&gt; havíamos implementado alguns métodos, neste artigo, daremos continuidade nas implementações dos métodos. Para tal, abra o projeto no Delphi e implemente o método &quot;CarregarCliente&quot; da seguinte forma:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5kyRuoV-j1IxlN6to_1ywMnhEfXRJD-sZK18BRz17MYmdgYjXUbct3sW_lWHwhlThbHRJ2Ob0XAV4Gl9o6vTVMf84AALwxd8MadzqRha9kfHz-0YZ69IpMkrdkB5Qz5NXSNZBC-50E2VS/s1600/mvc13.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;426&quot; data-original-width=&quot;806&quot; height=&quot;337&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5kyRuoV-j1IxlN6to_1ywMnhEfXRJD-sZK18BRz17MYmdgYjXUbct3sW_lWHwhlThbHRJ2Ob0XAV4Gl9o6vTVMf84AALwxd8MadzqRha9kfHz-0YZ69IpMkrdkB5Qz5NXSNZBC-50E2VS/s640/mvc13.PNG&quot; title=&quot;delphi mvc poo camada view&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Nas linhas 157 e 158 declaramos nossos objetos da classe TCliente e TClienteController.&lt;br /&gt;Nas linhas 160 e 161 criamos as instâncias desses objetos na memória e nas linhas 176 e 177 liberamos da memória após o uso.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Na linha 163, invocamos o método &quot;CarregarCliente&quot; da classe TClienteController, que por sua vez, vai chamar o método &quot;CarregarCliente&quot; da DAO. Note que este método pede um objeto do tipo TCliente que será preenchido lá na camada DAO, e o código do cliente, cujas informações serão buscadas na base de dados para preencher o objeto.&lt;br /&gt;Da linha 164 a 174, apenas estamos lendo as informações que estão no objeto &quot;oCliente&quot; que foi preenchido anteriormente, e jogando nos componentes da tela, para que o usuário possa ver essas informações.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Agora, vamos implementar o método &quot;Alterar:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLorNrv2WcweGZCYYUVYP2LFmumhsrzZr4MQDroo1aofsbjji3kurJ34U-732da5K-JZPFejZwzXRtGsc-e65CZrFPDcdLdORAjK9W96KV5-y0lZCm8OdUMAFA0Sr9NWK5v_DmtmuJTLvD/s1600/mvc3.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;427&quot; data-original-width=&quot;551&quot; height=&quot;494&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLorNrv2WcweGZCYYUVYP2LFmumhsrzZr4MQDroo1aofsbjji3kurJ34U-732da5K-JZPFejZwzXRtGsc-e65CZrFPDcdLdORAjK9W96KV5-y0lZCm8OdUMAFA0Sr9NWK5v_DmtmuJTLvD/s640/mvc3.PNG&quot; title=&quot;delphi mvc poo camada view&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Este método, conforme observado, vai ler as informações que estão nos componentes da tela que foram preenchidos pelo usuário e alimenta o objeto com estas informações. Feito isso, este objeto preenchido é passado para o método &quot;Alterar&quot; da &quot;TClienteController&quot;, que vai direcionar para a DAO, onde as alterações serão persistida na base de dados, caso ocorra algum erro, o mesmo é retornado pelo método através do parâmetro do tipo variável &quot;sErro&quot;, que é exibido pela exceção (raise Exception).&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Agora, o método &quot;Listar&quot;:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9vzvmwIG7fujfJTz6DUHvyXxHWonHSbrLWODPk1ctksjtA__GC8MVVqX3wbu3JP5Sg2XGk-uvAsorjJtdW701FGDus2W5iXSKOf8hyHtjwqmWBVYWywQ6fqhmEOCofQ-yBTPJGz7RL_Hm/s1600/mvc21.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;69&quot; data-original-width=&quot;313&quot; height=&quot;86&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9vzvmwIG7fujfJTz6DUHvyXxHWonHSbrLWODPk1ctksjtA__GC8MVVqX3wbu3JP5Sg2XGk-uvAsorjJtdW701FGDus2W5iXSKOf8hyHtjwqmWBVYWywQ6fqhmEOCofQ-yBTPJGz7RL_Hm/s400/mvc21.PNG&quot; title=&quot;delphi mvc poo camada view&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Este método simplesmente ativa a aba de pesquisa.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Implemente o método &quot;Excluir&quot;:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFDne0RhyphenhyphendXD_Be7K5-OOcSYE3DbHUJv0sFOcBR0uGAmI9rn9u2ZVdGZz1jogbFbDfidjChiz6T3c42X8537YytdlcPYyQWyARNsCtvcvhZRc0r5l3ygRsBkUXikBIGldxke_OZA9L2N-k/s1600/mvc15.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;delphi mvc poo camada view&quot; border=&quot;0&quot; data-original-height=&quot;272&quot; data-original-width=&quot;899&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFDne0RhyphenhyphendXD_Be7K5-OOcSYE3DbHUJv0sFOcBR0uGAmI9rn9u2ZVdGZz1jogbFbDfidjChiz6T3c42X8537YytdlcPYyQWyARNsCtvcvhZRc0r5l3ygRsBkUXikBIGldxke_OZA9L2N-k/s1600/mvc15.PNG&quot; title=&quot;delphi mvc poo camada view&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Clique na imagem para ampliar e vê-la completo&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;O método excluir também é bem simples. Na linha 196, estamos verificando se nossa &quot;StringGrid&quot; possui algum registro, caso contrário, uma exceção é suscitada informando que a tabela está vazia, portanto, não há o que excluir.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Caso tenha algum registro selecionado, capturamos o código dele e repassamos para o método &quot;Excluir&quot; da &quot;TClienteController&quot; que fara o resto, como você já sabe.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Após a exclusão, apenas chamamos o método de pesquisa novamente, para atualizar a &quot;StringGrid&quot;, se isso não for feito, embora o registro seja excluído ele continuará listado na tabela, e isso pode causar uma dúvida ao usuário, que vai pensar que o registro não foi excluído.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Muito bem, assim chegamos ao final de mais um artigo, aguardamos você no próximo para darmos continuidade, já estamos quase no final desta série, continue conosco, um grande abraço.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Este artigo faz parte da série: &lt;a href=&quot;https://www.clipatecinformatica.com.br/2016/07/serie-cadastro-delphi-poo-mvc-dao.html&quot; target=&quot;_blank&quot;&gt;CRUD Delphi + POO + MVC + DAO&lt;/a&gt;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;(Por ClipaTec Informática)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/5126160425714531499/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2018/05/cadastro-delphi-poo-mvc-dao-camada-view-parte-4.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/5126160425714531499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/5126160425714531499'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2018/05/cadastro-delphi-poo-mvc-dao-camada-view-parte-4.html' title='Cadastro Delphi POO + MVC + DAO - Camada View - Parte 4'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgij6Eu-pnDiI12k56d1K8d1RhILqIaogp09duiC0qNNZruuSGH8u72UD94x5P_IBJGjWfaY4r_zkt-VKVKiVuV0U67jVvbwvvqF3rGWsobjbZVHE-jNBo2rtxTuVKkoANU5Wga03PspQ3S/s72-c/if_window-layout_299082.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-3055710894110224743</id><published>2018-03-14T17:27:00.001-03:00</published><updated>2018-03-14T17:27:33.056-03:00</updated><title type='text'>Cadastro Delphi POO + MVC + DAO - Camada View - Parte 3</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgij6Eu-pnDiI12k56d1K8d1RhILqIaogp09duiC0qNNZruuSGH8u72UD94x5P_IBJGjWfaY4r_zkt-VKVKiVuV0U67jVvbwvvqF3rGWsobjbZVHE-jNBo2rtxTuVKkoANU5Wga03PspQ3S/s1600/if_window-layout_299082.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;crud delphi mvc dao camada view&quot; border=&quot;0&quot; data-original-height=&quot;128&quot; data-original-width=&quot;128&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgij6Eu-pnDiI12k56d1K8d1RhILqIaogp09duiC0qNNZruuSGH8u72UD94x5P_IBJGjWfaY4r_zkt-VKVKiVuV0U67jVvbwvvqF3rGWsobjbZVHE-jNBo2rtxTuVKkoANU5Wga03PspQ3S/s1600/if_window-layout_299082.png&quot; title=&quot;crud delphi mvc dao camada view&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Olá meu povo, no &lt;a href=&quot;https://www.clipatecinformatica.com.br/2018/03/cadastro-delphi-poo-mvc-dao-camada-controller.html&quot; target=&quot;_blank&quot;&gt;artigo anterior nós implementamos a camada Controller,&lt;/a&gt; e neste artigo, vamos retornar a nossa camada VIEW, só que desta vez, vamos iniciar a implementação dos métodos.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Para, isso, com o projeto aberto no Delphi, acesse o &quot;FrmCadastrarCliente&quot;, e no código, logo acima da classe do formulário, vamos criar um tipo enumerado chamada &quot;TOperacao&quot; que utilizaremos como flag para habilitar e desabilitar controles e para nortear o botão &quot;Gravar&quot;, então, declare-o logo acima da classe do formulário:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMuS6fesWwOnnvcURNhmbYabZmljWqSYOWQLk6JovGbRbk2pnX2TYyLHw1cqv-lXPDBEfAlpNh3g02p8cs0hJqysSRnQjUlkumPkHCk-fDLaNAsIkl3dxOWuOtH65AftCs_8Y3wbIkFnSx/s1600/mvc2.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;crud delphi mvc dao camada view&quot; border=&quot;0&quot; data-original-height=&quot;159&quot; data-original-width=&quot;400&quot; height=&quot;158&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMuS6fesWwOnnvcURNhmbYabZmljWqSYOWQLk6JovGbRbk2pnX2TYyLHw1cqv-lXPDBEfAlpNh3g02p8cs0hJqysSRnQjUlkumPkHCk-fDLaNAsIkl3dxOWuOtH65AftCs_8Y3wbIkFnSx/s400/mvc2.PNG&quot; title=&quot;crud delphi mvc dao camada view&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Muito bem, feito isso, agora precisamos criar um atributo na classe do formulário que armazene o valor deste tipo enumerado que utilizaremos em determinados momentos durante a execução do aplicativo. &lt;b&gt;No Delphi, os atributos de uma classe são chamados de &quot;Fields&quot;, por isso, por convenção, o nome de um &quot;Field&quot; sempre inicia com a letra &quot;F&quot;,&lt;/b&gt; então, vamos criar dois &quot;Fields&quot;, um para armazenar o valor do tipo enumerado &quot;FOperacao&quot; e outro para guardar o código do cliente que for selecionado na Grid de pesquisa &quot;FIdSelecionado&quot;, tudo isso na seção &quot;Private&quot;. Também, aproveitando o momento, vamos declarar nossos métodos, a implementação completa ficará assim:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ7fQThTN2mMJbm3nH8KHd8KT4dLljBhfkyHM9gdXnj_HKAev0Lt7Raj0dytTFWFRwfG96_bQYZv5w4QFvaPqHcFTvG5PBNwHeJlVRkjqBqgGENcNHglGaYuoaA6PU340pCv1eEcwK8KTn/s1600/mvc1.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;crud delphi mvc dao camada view&quot; border=&quot;0&quot; data-original-height=&quot;300&quot; data-original-width=&quot;613&quot; height=&quot;312&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ7fQThTN2mMJbm3nH8KHd8KT4dLljBhfkyHM9gdXnj_HKAev0Lt7Raj0dytTFWFRwfG96_bQYZv5w4QFvaPqHcFTvG5PBNwHeJlVRkjqBqgGENcNHglGaYuoaA6PU340pCv1eEcwK8KTn/s640/mvc1.PNG&quot; title=&quot;crud delphi mvc dao camada view&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Pressione a tecla de atalho &quot;Shift + Ctrl + C&quot; e vamos iniciar implementando o método &quot;SetUp&quot;:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifQVAMEgH-4C01yRo8cztHe8tZlIJJ_9fWRzc_wynD9VlpA5X1Zg_-E8BpT96D2Lv8trC-YIzqO8AdcARvA_zNXgKnDTvI9uwHcjEbDyVKkCz6E1RCEralfYYqMliRawNOe4k6mF8QIQLy/s1600/mvc24.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;crud delphi mvc dao camada view&quot; border=&quot;0&quot; data-original-height=&quot;119&quot; data-original-width=&quot;347&quot; height=&quot;136&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifQVAMEgH-4C01yRo8cztHe8tZlIJJ_9fWRzc_wynD9VlpA5X1Zg_-E8BpT96D2Lv8trC-YIzqO8AdcARvA_zNXgKnDTvI9uwHcjEbDyVKkCz6E1RCEralfYYqMliRawNOe4k6mF8QIQLy/s400/mvc24.PNG&quot; title=&quot;crud delphi mvc dao camada view&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Este método será chamado assim que a tela de cadastro for aberta, desta maneira, conforme a implementação acima, ele oculta a visibilidade das abas, ativa por padrão a aba de pesquisa, e define o código &quot;1&quot; por padrão ao nosso Field &quot;IdSelecionado&quot;.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Agora vamos implementar o nosso método &quot;Pesquisar&quot;:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD_B2t29kJYwo-tocxqpcU5BjpgLKumvJeqp4p-VAklKexNXlmVIYUqpX18riSSF7d66Em5oUk2qlCadGLioiGGualoqOJo51gLJkxcSW8oYGcS8nKYidJlgw2pR1JfTmxZ9txJM5OpSIr/s1600/mvc23.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;crud delphi mvc dao camada view&quot; border=&quot;0&quot; data-original-height=&quot;187&quot; data-original-width=&quot;516&quot; height=&quot;228&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD_B2t29kJYwo-tocxqpcU5BjpgLKumvJeqp4p-VAklKexNXlmVIYUqpX18riSSF7d66Em5oUk2qlCadGLioiGGualoqOJo51gLJkxcSW8oYGcS8nKYidJlgw2pR1JfTmxZ9txJM5OpSIr/s640/mvc23.PNG&quot; title=&quot;crud delphi mvc dao camada view&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Como já deve estar bem claro na sua mente, os métodos estão na camada DAO, portanto, para que a VIEW possa consumi-los, isto é, ter acesso a eles, isso é feito por intermédio da camada Controller, então, nós precisamos criar um objeto do tipo &quot;TClienteController&quot; para que por meio deste objeto, tenhamos acesso ao método da DAO, pois a Controller consegue enxergá-la.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Na linha 307 declaramos nosso objeto com seu tipo, na linha 309 instanciamos ele na memória. Na linha 311, chamamos o método &quot;Pesquisar&quot; que pede dois parâmetros, o primeiro, o filtro da pesquisa, que é por &quot;Nome&quot;, desta maneira, passamos o conteúdo digitado pelo usuário no &quot;edtPesquisar&quot;, o segundo parâmetro, é a nossa &quot;TStringGrid&quot; da aba de pesquisa, pois a mesma será configurada e preenchida lá na camada DAO. Por fim, na linha 313 apenas liberamos o objeto da memória após sua utilização.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Agora vamos implementar o método &quot;Novo&quot;:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpo3-I4w3IgAAaNfCZZBiNjAeAAmUuT0qOX5R6tNDDT6xxPjE2aGP2fSBaIFboQpYcLrBJAt2kr2lnot8wjwB8YKHuqXtEq1DcsCB4ZJBXY9yvFA5iFhYF5KQsp_IgfzJpCmZvhhGOuNAg/s1600/mvc22.PNG&quot; imageanchor=&quot;1&quot;&gt;&lt;img alt=&quot;crud delphi mvc dao camada view&quot; border=&quot;0&quot; data-original-height=&quot;86&quot; data-original-width=&quot;302&quot; height=&quot;113&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpo3-I4w3IgAAaNfCZZBiNjAeAAmUuT0qOX5R6tNDDT6xxPjE2aGP2fSBaIFboQpYcLrBJAt2kr2lnot8wjwB8YKHuqXtEq1DcsCB4ZJBXY9yvFA5iFhYF5KQsp_IgfzJpCmZvhhGOuNAg/s400/mvc22.PNG&quot; title=&quot;crud delphi mvc dao camada view&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Este método é bem simples, ele apenas define o valor do nosso field &quot;FOperacao&quot; para &quot;opNovo&quot; e ativa a aba de dados. Este método será chamada quando o usuário clicar no botão &quot;Novo&quot;. Você vai entender melhor porque estamos definindo o valor &quot;opNovo&quot; para o Field quando estivermos implementando o botão &quot;Gravar&quot;.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Seguindo, agora implementaremos o método &quot;Detalhar&quot;:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6V5wYEbkDTjI3NBQ4O1QTsV6doiRfekCjWEt4Ozlan2K3mcEtgaQavKr9eQyDsMZB6me_IV9M0s1O3jA-2GeK4si4PMJ20QrkZ6fsDu0ioqpxW_5AuCCglxd2zQlLFZNhscJisk3B_F11/s1600/mvc14.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;crud delphi mvc dao camada view&quot; border=&quot;0&quot; data-original-height=&quot;122&quot; data-original-width=&quot;592&quot; height=&quot;129&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6V5wYEbkDTjI3NBQ4O1QTsV6doiRfekCjWEt4Ozlan2K3mcEtgaQavKr9eQyDsMZB6me_IV9M0s1O3jA-2GeK4si4PMJ20QrkZ6fsDu0ioqpxW_5AuCCglxd2zQlLFZNhscJisk3B_F11/s640/mvc14.PNG&quot; title=&quot;crud delphi mvc dao camada view&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Este método verifica o cliente que está selecionado na pesquisa, captura o código dele, consulta ele no banco de dados, busca todas as informações por meio do método &quot;CarregarCliente&quot;, e em seguida, ativa a aba de dados com estas informações preenchidas nos controles. Mas note que antes, na linha 183, fazemos uma pequena verificação, se na coluna 0 e linha 1 da Grid, se existe alguma informação, caso não exista informação, significa que a pesquisa não retornou nada, então, abortamos a operação de detalhamento e emitimos uma mensagem para o usuário.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Legal, no próximo artigo, seguiremos com a implementação dos métodos, vamos ficando por aqui, qualquer dúvida, deixe seu comentário, um forte Abraço. Tchau!&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Este artigo faz parte da série: &lt;a href=&quot;https://www.clipatecinformatica.com.br/2016/07/serie-cadastro-delphi-poo-mvc-dao.html&quot; target=&quot;_blank&quot;&gt;CRUD Delphi POO + MVC + DAO&lt;/a&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;(Por ClipaTec Informática)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/3055710894110224743/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2018/03/cadastro-delphi-poo-mvc-dao-camada-view.html#comment-form' title='8 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/3055710894110224743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/3055710894110224743'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2018/03/cadastro-delphi-poo-mvc-dao-camada-view.html' title='Cadastro Delphi POO + MVC + DAO - Camada View - Parte 3'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgij6Eu-pnDiI12k56d1K8d1RhILqIaogp09duiC0qNNZruuSGH8u72UD94x5P_IBJGjWfaY4r_zkt-VKVKiVuV0U67jVvbwvvqF3rGWsobjbZVHE-jNBo2rtxTuVKkoANU5Wga03PspQ3S/s72-c/if_window-layout_299082.png" height="72" width="72"/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-8149810862884100733</id><published>2018-03-03T09:00:00.000-03:00</published><updated>2018-03-14T16:41:24.776-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="Tutoriais"/><title type='text'>Cadastro Delphi POO + MVC + DAO - Camada Controller</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaTM2_m3YbYQ0Kh7XqRceBR3hBCAt27nqgUKfsArgMKR9Q8rSs1bdqFSFalTfgW68PH5C2BArdnK3rysHcXd6llfYDskegUFD-NR15nnz3lOSyZimbfN3GPfQA4bCpBcpRkY37IWrWEumH/s1600/if_database-gear_532734.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;crud delphi poo mvc dao camada controller&quot; border=&quot;0&quot; data-original-height=&quot;128&quot; data-original-width=&quot;128&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaTM2_m3YbYQ0Kh7XqRceBR3hBCAt27nqgUKfsArgMKR9Q8rSs1bdqFSFalTfgW68PH5C2BArdnK3rysHcXd6llfYDskegUFD-NR15nnz3lOSyZimbfN3GPfQA4bCpBcpRkY37IWrWEumH/s1600/if_database-gear_532734.png&quot; title=&quot;crud delphi poo mvc dao camada controller&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Oi, tudo bem com vocês? Estamos quase acabando nossa série por completo. No artigo de hoje, iremos implementar a camada Controller que é bem simples.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Sem delongas, com o projeto aberto no Delphi, crie uma nova unit e salve com o nome &quot;uClienteController&quot; dentro da pasta &quot;controller&quot;.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Vamos precisar criar uma classe &quot;TClienteController&quot; com seus métodos, segue a implementação (não esqueça das uses):&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8XyeDf2QYX-gdaHum6d8eBGd76if88pXhXColgUFUgRE1YfiUZI04kIOhX21fF35KK4Fo_nVuvN4hdqGddhHZVuW3bn4r0SAi3minAoBIIMAGH6SYf74j9edmLmIMA44ndNl8lmALDNDh/s1600/mvc32.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;crud delphi poo mvc dao camada controller&quot; border=&quot;0&quot; data-original-height=&quot;310&quot; data-original-width=&quot;594&quot; height=&quot;334&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8XyeDf2QYX-gdaHum6d8eBGd76if88pXhXColgUFUgRE1YfiUZI04kIOhX21fF35KK4Fo_nVuvN4hdqGddhHZVuW3bn4r0SAi3minAoBIIMAGH6SYf74j9edmLmIMA44ndNl8lmALDNDh/s640/mvc32.PNG&quot; title=&quot;crud delphi poo mvc dao camada controller&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Agora, pressione a tecla de atalho &quot;Shift + Ctrl + C&quot; e implemente os métodos da seguinte maneira:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-qKZOq8oNgi-LJ_Z-_Lu-agq2AaGJyHC09ovPLJhDR_4wTQoNuhYqACpLyoEOUndk8ZVhkcrEH7XfenUUSveUdVM-96DVA-zmik-ty6JvJ1vK-jsIsSGMdVs5WX8awOLHa7kAUzDqGesy/s1600/mvc33.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;crud delphi poo mvc dao camada controller&quot; border=&quot;0&quot; data-original-height=&quot;546&quot; data-original-width=&quot;710&quot; height=&quot;492&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-qKZOq8oNgi-LJ_Z-_Lu-agq2AaGJyHC09ovPLJhDR_4wTQoNuhYqACpLyoEOUndk8ZVhkcrEH7XfenUUSveUdVM-96DVA-zmik-ty6JvJ1vK-jsIsSGMdVs5WX8awOLHa7kAUzDqGesy/s640/mvc33.PNG&quot; title=&quot;crud delphi poo mvc dao camada controller&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHwIGKkUOLXu41BcWiHnIibzcgT4KvfxgSptrF8SbO0gxdjNKabZj0OvACHNzT2djOLVrVuinRT0o0SphQToMW8_Vz_7u16Q55fTPSsRH5hzpDxfiIRiQKlL2F74MJhJJTSUR1gSSxeHWa/s1600/mvc34.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;crud delphi poo mvc dao camada controller&quot; border=&quot;0&quot; data-original-height=&quot;156&quot; data-original-width=&quot;716&quot; height=&quot;138&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHwIGKkUOLXu41BcWiHnIibzcgT4KvfxgSptrF8SbO0gxdjNKabZj0OvACHNzT2djOLVrVuinRT0o0SphQToMW8_Vz_7u16Q55fTPSsRH5hzpDxfiIRiQKlL2F74MJhJJTSUR1gSSxeHWa/s640/mvc34.PNG&quot; title=&quot;crud delphi poo mvc dao camada controller&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Note que criamos os métodos exatamente iguais a camada DAO em sua assinatura, pois como você já sabe, a camada Controller, vai ser apenas uma intermediária entre a View e DAO, ela é responsável por definir o fluxo de dados, de onde vem e para onde vai, sendo assim, ela apenas chama os métodos da DAO, repassando os mesmos parâmetros, e após a execução dos métodos na DAO, ela captura o retorno e envia para quem está chamando o método, neste caso, será a View.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Pronto, acabou. Mas já? Só isso? Tem certeza? Simmmm. Acabou hehehe. Então isso é um tchau, até o próximo artigo, onde retornaremos a camada View, só que agora, para implementar os métodos, visto que nas &lt;a href=&quot;https://www.clipatecinformatica.com.br/2018/02/cadastro-delphi-poo-mvc-dao-camada-view-layout-parte-1.html&quot; target=&quot;_blank&quot;&gt;parte 1&lt;/a&gt; e &lt;a href=&quot;https://www.clipatecinformatica.com.br/2018/02/cadastro-delphi-poo-mvc-dao-camada-view-layout-parte-2.html&quot; target=&quot;_blank&quot;&gt;parte 2&lt;/a&gt; da View já publicados apenas criamos o layout da tela de CRUD Cliente. Até lá, abraço.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Este artigo faz parte da série &lt;a href=&quot;https://www.clipatecinformatica.com.br/2016/07/serie-cadastro-delphi-poo-mvc-dao.html&quot; target=&quot;_blank&quot;&gt;CRUD Delphi POO + MVC + DAO&lt;/a&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;(Por ClipaTec Informática)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/8149810862884100733/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2018/03/cadastro-delphi-poo-mvc-dao-camada-controller.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/8149810862884100733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/8149810862884100733'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2018/03/cadastro-delphi-poo-mvc-dao-camada-controller.html' title='Cadastro Delphi POO + MVC + DAO - Camada Controller'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaTM2_m3YbYQ0Kh7XqRceBR3hBCAt27nqgUKfsArgMKR9Q8rSs1bdqFSFalTfgW68PH5C2BArdnK3rysHcXd6llfYDskegUFD-NR15nnz3lOSyZimbfN3GPfQA4bCpBcpRkY37IWrWEumH/s72-c/if_database-gear_532734.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-5863245911046257244</id><published>2018-03-02T06:00:00.000-03:00</published><updated>2018-03-02T07:26:04.268-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="Tutoriais"/><title type='text'>Cadastro Delphi POO + MVC + DAO - Camada DAO - Parte 5</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJI2wEJSYL1Y4HLGFzcLdFgDdvWJSbgOR9iHiCji1-WwO99fEznxel5fmuFZwI-j2eG4BTiyufLONoltkKycHHl4E7yWzngS5TTC8L_I8YdH9ENvSPu3o8N2ohAzieCkadGBvlOqQJ8rjv/s1600/if_data_transport_44670.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;crud delphi poo mvc dao&quot; border=&quot;0&quot; data-original-height=&quot;128&quot; data-original-width=&quot;128&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJI2wEJSYL1Y4HLGFzcLdFgDdvWJSbgOR9iHiCji1-WwO99fEznxel5fmuFZwI-j2eG4BTiyufLONoltkKycHHl4E7yWzngS5TTC8L_I8YdH9ENvSPu3o8N2ohAzieCkadGBvlOqQJ8rjv/s1600/if_data_transport_44670.png&quot; title=&quot;crud delphi poo mvc dao&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Fala gente boa, no artigo de hoje, &lt;b&gt;concluiremos finalmente a camada DAO Cliente.&lt;/b&gt; No &lt;a href=&quot;https://www.clipatecinformatica.com.br/2018/02/cadastro-delphi-poo-mvc-dao-camada-dao-parte-4.html&quot; target=&quot;_blank&quot;&gt;artigo anterior&lt;/a&gt;, implementamos os métodos &quot;CarregarCliente&quot; e &quot;Inserir&quot;. Neste artigo, iremos implementar os métodos &quot;Alterar&quot; e &quot;Excluir&quot;, finalizando esta camada.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;O método &quot;Alterar&quot; é muito semelhante ao método &quot;Inserir&quot; em sua estrutura, o que muda, é apenas a instrução SQL&lt;/b&gt; que está inserida no componente &quot;sqlAlterar&quot;:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieDsFwvSH4d8174NkwvxiS4jYOdNTWmTFMIrs6fzBb-SQlXE_pWHpIJCnD77hjMSi30zRKPiozV55OH3_6OCG6cHgzKjAos_CkW3yXcVSFtogJHP-spaRoO_Ggr_JySmZ1CKpDOTA4RHIT/s1600/mvc38.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;crud delphi poo mvc dao&quot; border=&quot;0&quot; data-original-height=&quot;410&quot; data-original-width=&quot;708&quot; height=&quot;369&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieDsFwvSH4d8174NkwvxiS4jYOdNTWmTFMIrs6fzBb-SQlXE_pWHpIJCnD77hjMSi30zRKPiozV55OH3_6OCG6cHgzKjAos_CkW3yXcVSFtogJHP-spaRoO_Ggr_JySmZ1CKpDOTA4RHIT/s640/mvc38.PNG&quot; title=&quot;crud delphi poo mvc dao&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Da linha 41 a 49 estamos lendo as propriedades do objeto &quot;oCliente&quot; passado por parâmetro, recuperando seus valores e atribuindo aos parâmetros do SQL.&lt;/b&gt; Na linha 51 tentamos persistir estas alterações no banco, se não houver falha, na linha 52 retornamos True, caso contrário, cairá no bloco de exceção, onde capturamos o erro e atribuímos ao parâmetro varável &quot;sErro&quot; e retornamos False.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Qualquer dúvida em relação ao entendimento dos códigos, deixe seu comentário para que possamos ajudá-lo.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Agora vamos implementar o método &quot;Excluir&quot;:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNfsKL7eMDC3KCQlzrVZZQ3MAcJEHARCcECCEKlKsfPVi8QwjpkAqG3SmvXUElxe8kWgZP0xqhzMqETa6oefYFwzieX2Da_WqSdvUd2pQCPMfQ2PF4YiKBqvKlS_I6h6AnNpDpV3Y-H9Bf/s1600/mvc40.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;crud delphi poo mvc dao&quot; border=&quot;0&quot; data-original-height=&quot;275&quot; data-original-width=&quot;689&quot; height=&quot;254&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNfsKL7eMDC3KCQlzrVZZQ3MAcJEHARCcECCEKlKsfPVi8QwjpkAqG3SmvXUElxe8kWgZP0xqhzMqETa6oefYFwzieX2Da_WqSdvUd2pQCPMfQ2PF4YiKBqvKlS_I6h6AnNpDpV3Y-H9Bf/s640/mvc40.PNG&quot; title=&quot;crud delphi poo mvc dao&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Este método é o mais simples, porque, &lt;b&gt;para excluirmos um determinado cliente, apenas precisamos saber qual é o código dele, então o método pede por parâmetro o código do cliente a ser excluído, este valor é alimentado na instrução SQL de &quot;delete&quot;&lt;/b&gt; conforme a linha 93, o restante do método, dispensa comentários, visto que é a mesma coisa dos métodos anteriores.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Muito bem, finalmente e felizmente concluímos a camada DAO Cliente. No próximo artigo, vamos dar inicio na implementação da camada &quot;Controller&quot;.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;É importante observar, que não estamos exibindo nenhuma mensagem dentro da camada DAO, pois, as mensagens estão sendo repassados por meio de um parâmetro de saída, que é uma variável, esta mensagem é retornada para a camada Controller que vai retornar para a camada View que finalmente, irá exibir na tela para o usuário. Simples assim.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Antes de encerrarmos este artigo, precisamos definir que tanto a tela de cadastro de cliente quanto o Data Module de cliente, sejam criados no momento em que formos utilizá-los, ou seja, eles não serão criados automaticamente na memória assim que a aplicação for iniciada. Para isso, clique no menu &quot;Project/Options&quot;, clique no item &quot;Forms&quot; listado ao lado esquerdo, selecione o &quot;DmCliente&quot; e &quot;FrmCadastrarCliente&quot;, em seguida, clique no botão com o símbolo &quot;&amp;gt;&quot; para incluí-los na lista de &quot;Available Forms&quot;. Clique no botão &quot;OK&quot; e pronto, agora, eles não serão mais criados automaticamente assim que a aplicação for iniciada, iremos criá-los e destruí-los em tempo de execução, no momento em que precisarmos.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw9IuZ5i1Fqpi2P80V_ANnTX51e3co6iWOAadx6UhzYyxb8rAJUx0pch6WRF0MrvquTcGQFwG8ay7oJYxSt4qbiKCUhPNY5k5Po4Iabgo4Ig_eDJcfBjStOBCCUo3OtlGgK_WWUPLi1UXb/s1600/mvc46.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;crud delphi poo mvc dao&quot; border=&quot;0&quot; data-original-height=&quot;766&quot; data-original-width=&quot;937&quot; height=&quot;523&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw9IuZ5i1Fqpi2P80V_ANnTX51e3co6iWOAadx6UhzYyxb8rAJUx0pch6WRF0MrvquTcGQFwG8ay7oJYxSt4qbiKCUhPNY5k5Po4Iabgo4Ig_eDJcfBjStOBCCUo3OtlGgK_WWUPLi1UXb/s640/mvc46.png&quot; title=&quot;crud delphi poo mvc dao&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Clique na imagem para ampliar o tamanho.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Até o próximo artigo, abraço, beijo me liga.&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;
&lt;/span&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Este artigo faz parte da série &lt;a href=&quot;https://www.clipatecinformatica.com.br/2016/07/serie-cadastro-delphi-poo-mvc-dao.html&quot; target=&quot;_blank&quot;&gt;Cadastro Delphi POO + MVC + DAO&lt;/a&gt;;&lt;/div&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;(Por ClipaTec Informática)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/5863245911046257244/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2018/03/cadastro-delphi-poo-mvc-dao-camada-dao-parte-5.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/5863245911046257244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/5863245911046257244'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2018/03/cadastro-delphi-poo-mvc-dao-camada-dao-parte-5.html' title='Cadastro Delphi POO + MVC + DAO - Camada DAO - Parte 5'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJI2wEJSYL1Y4HLGFzcLdFgDdvWJSbgOR9iHiCji1-WwO99fEznxel5fmuFZwI-j2eG4BTiyufLONoltkKycHHl4E7yWzngS5TTC8L_I8YdH9ENvSPu3o8N2ohAzieCkadGBvlOqQJ8rjv/s72-c/if_data_transport_44670.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-6048610215964476802</id><published>2018-03-01T07:30:00.000-03:00</published><updated>2018-05-24T08:50:36.160-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Análise"/><title type='text'>Dados e Informação, qual a diferença?</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZGE9LB8tmzKKc4hyphenhyphenrd2n39lJQegQ0_JNREZmL116vafFXYsCHlGv8rJqSidAL7bXf5iQ4XRY1R5B72em2adwgJ-i6QUh4F3ayqXmanRWF6vx9LHDaECRsfYiilr5l7Xv3FsL8MFXSD7HV/s1600/if_System_Information_MSConfig_99056.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;dados, informacao, conhecimento, qual a diferenca&quot; border=&quot;0&quot; data-original-height=&quot;128&quot; data-original-width=&quot;128&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZGE9LB8tmzKKc4hyphenhyphenrd2n39lJQegQ0_JNREZmL116vafFXYsCHlGv8rJqSidAL7bXf5iQ4XRY1R5B72em2adwgJ-i6QUh4F3ayqXmanRWF6vx9LHDaECRsfYiilr5l7Xv3FsL8MFXSD7HV/s1600/if_System_Information_MSConfig_99056.png&quot; title=&quot;dados, informacao, conhecimento, qual a diferenca&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;É comum ouvirmos a seguinte frase&lt;/b&gt; quando estamos em um curso da área de T.I. acerca de processamento de dados: &lt;b&gt;&quot;no computador existe a entrada, processamento e saída&quot;, até aqui tudo bem, porém, vem o erro: &quot;entra dados, processa-se dados e sai dados&quot;. &lt;/b&gt;É trivial ouvirmos esta última parte até mesmo por parte de alguns instrutores/professores.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Em sistema de informação, é necessário que estes dois conceitos (dados e informação) estejam muito bem definidos, é de grande importância saber a diferença entre um e outro. &lt;b&gt;Então, qual a diferença entre dados e informação?&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Antes de começar a explicar a diferença entre um e outro, é importante salientar que, &lt;b&gt;ambos os conceitos, são fundamentais para a construção do conhecimento,&lt;/b&gt; visto que, &lt;b&gt;um conhecimento&lt;/b&gt; nada mais &lt;b&gt;é&lt;/b&gt; que, &lt;b&gt;o resultado de dados&lt;/b&gt; que foram &lt;b&gt;analisados e se tornaram&lt;/b&gt; uma &lt;b&gt;informação,&lt;/b&gt; ou seja, &lt;b&gt;são etapas que precedem o conhecimento.&lt;/b&gt; Vamos citar alguns exemplos após a definição dos conceitos para que você possa assimilar melhor.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #073763; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;u&gt;1. Dados&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Os dados representam um conjunto/sequencia de fatos que ainda não foram analisados,&lt;/b&gt; ou seja, são puramente simples observações sobre o ambiente (organização, seja privada, governamental, filantrópica, etc).&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Para se tornar uma informação, eles precisam ser analisados, relacionados ou interpretados e organizados de uma forma compreensível e contextualizados,&lt;/b&gt; isto é, com um sentido ou significado.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;u&gt;Exemplo 1:&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfLdIx2AD83ZGmFfsn-O2war6bXxGVAZsx34j7sA6PKQ2Pq7EWa7ldbBiU2CTuqOmC8OaPiTnZoev29edTzwLfPn_0rc9dVP0wM8qXUQoTmSgcXRGkqfJVB5AhS-13faD0QHGLBSdn1CNN/s1600/ex1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;dados, informacao, conhecimento, qual a diferenca&quot; border=&quot;0&quot; data-original-height=&quot;201&quot; data-original-width=&quot;378&quot; height=&quot;170&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfLdIx2AD83ZGmFfsn-O2war6bXxGVAZsx34j7sA6PKQ2Pq7EWa7ldbBiU2CTuqOmC8OaPiTnZoev29edTzwLfPn_0rc9dVP0wM8qXUQoTmSgcXRGkqfJVB5AhS-13faD0QHGLBSdn1CNN/s320/ex1.png&quot; title=&quot;dados, informacao, conhecimento, qual a diferenca&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;u&gt;Exemplo 2:&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&quot;Laranja&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;u&gt;Exemplo 3:&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&quot;23&quot;, &quot;ClipaTec&quot;, &quot;produção&quot;, &quot;19:30&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Agora me diga, &lt;b&gt;você entendeu alguma coisa? Obviamente que não,&lt;/b&gt; estes três exemplos, &lt;b&gt;apresentam dados, mas não sabemos o que significa, pois, ainda não foram analisados e contextualizados,&lt;/b&gt; ou seja, estão totalmente sem sentido algum. Veremos adiante o entendimento destes dados.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #073763; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;u&gt;2. Informação&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;A informação nada mais é que, a apresentação organizada e arranjada dos dados de forma útil e compreensível,isto é, com significado.&lt;/b&gt; &lt;b&gt;Com isso, podemos obter&lt;/b&gt; previsões de atividades e resultados futuros de uma organização, o que chamamos de &lt;b&gt;conhecimento,&lt;/b&gt; a partir disso, o administrador pode tomar decisões.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Agora, vamos processar os três exemplos citados no tópico &quot;Dados&quot; acima:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;u&gt;Exemplo 1:&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFxpCotAacmUsN3shSd40g6tqNgLxa_sOaxnDvRqM4Qu-b8gewhMfSBtKPOj11VxBqJVpxcLZ-OdigV-TohdCRhXLAq_H0DoX1gemN48g9Y18VaT8uj7EH78Rg0dIab463hJzMvcvyiP0k/s1600/ex2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;dados, informacao, conhecimento, qual a diferenca&quot; border=&quot;0&quot; data-original-height=&quot;249&quot; data-original-width=&quot;474&quot; height=&quot;168&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFxpCotAacmUsN3shSd40g6tqNgLxa_sOaxnDvRqM4Qu-b8gewhMfSBtKPOj11VxBqJVpxcLZ-OdigV-TohdCRhXLAq_H0DoX1gemN48g9Y18VaT8uj7EH78Rg0dIab463hJzMvcvyiP0k/s320/ex2.png&quot; title=&quot;dados, informacao, conhecimento, qual a diferenca&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Opa, &lt;b&gt;agora todos aqueles dados fazem algum sentido,&lt;/b&gt; certo? Isso é possível &lt;b&gt;porque, os dados agora estão organizados e estão apresentados a nós de maneira compreensível.&lt;/b&gt; Mediante isso, temos o conhecimento de que se trata de informações referentes a uma determinada pessoa.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;u&gt;Exemplo 2:&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&quot;A camiseta que o Welinton estava usando era de cor &lt;b&gt;laranja&lt;/b&gt;.&quot;&lt;br /&gt;&lt;br /&gt;Legal, quando &lt;b&gt;tínhamos&amp;nbsp;apenas o dado &quot;laranja&quot;, poderíamos até arriscar em deduzir o que seria, &lt;/b&gt;alguém &lt;b&gt;poderia&lt;/b&gt; dizer que se referia a&lt;b&gt; fruta,&lt;/b&gt; outro poderia dizer que se referia a &lt;b&gt;cor,&lt;/b&gt; quem está certo? &lt;b&gt;Não daria para criar uma afirmativa, pois, o conhecimento só será obtido através do processamento deste dado. Entra aqui, a questão da abstração, que rasamento falando, é a capacidade de analisar e coletar informações do mundo real,&lt;/b&gt; o dado é o menor nível de abstração, enquanto a informação é um nível maior de abstração, &lt;b&gt;sendo assim, chegamos ao verdadeiro sentido deste dado, que no caso, estava se referindo a &quot;cor&quot; e não a &quot;fruta&quot;.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;u&gt;Exemplo 3:&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&quot;No dia &lt;b&gt;23,&lt;/b&gt; de agosto, haverá uma reunião com todos os integrantes da equipe &lt;b&gt;ClipaTec&lt;/b&gt; Informática, as &lt;b&gt;19:30,&lt;/b&gt; onde será tratado o assunto referente a &lt;b&gt;produção&lt;/b&gt; de conteúdo no blog.&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Top né? &lt;b&gt;Os dados&lt;/b&gt; que foram &lt;b&gt;apresentados no tópico anterior, estão destacados em negrito, &lt;/b&gt;repare que, anteriormente &lt;b&gt;não faziam o menor sentido, agora, já é possível termos um entendimento do que se trata.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Os exemplos citados, são bem simples, mas tenho convicção que você conseguiu compreender completamente a diferença entre esses dois conceitos.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Agora, a frase de Goldratt (1985) faz sentido: &quot;Existem dados, mas faltam informações.&quot;, &lt;/b&gt;correto? É importante que estes dois conceitos estejam bem claros na sua mente.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Mediante a tudo isso, começou a surgir, a necessidade da segurança da informação (que é um assunto que pretendo falar em outro artigo), pois, dentro de uma organização, a informação é muito valiosa.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #073763; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;u&gt;3. Conclusão&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Podemos concluir&lt;/b&gt; então, dizendo &lt;b&gt;que, os dados não possuem significado&lt;/b&gt; relevante, &lt;b&gt;não levam a nenhuma compreensão&lt;/b&gt; a princípio, mas &lt;b&gt;a partir do processamento,&lt;/b&gt; ou seja, &lt;b&gt;da análise e organização, gera uma informação contextualizada,&lt;/b&gt; que nos leva a uma compreensão melhor, &lt;b&gt;e partir disso, obtemos um conhecimento.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Agora vou deixar vocês com muito desejo, mas a imagem abaixo vai facilitar ainda mais sua compreensão:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpP_TIY8jGF9G1hJP_uJJZ2ol0Tr0jx3j-h1kengL6SgzZ0lj5EhTyJMr1DpfLWXQ_9-CoDVdAmT2xyZsFF759ORYMa46jJXFeenrJyA85n3kWQj0GRRx9nMPoD6_xls0buPQscWByBGmm/s1600/imgEx.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;dados, informacao, conhecimento, qual a diferenca&quot; border=&quot;0&quot; data-original-height=&quot;545&quot; data-original-width=&quot;680&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpP_TIY8jGF9G1hJP_uJJZ2ol0Tr0jx3j-h1kengL6SgzZ0lj5EhTyJMr1DpfLWXQ_9-CoDVdAmT2xyZsFF759ORYMa46jJXFeenrJyA85n3kWQj0GRRx9nMPoD6_xls0buPQscWByBGmm/s320/imgEx.png&quot; title=&quot;dados, informacao, conhecimento, qual a diferenca&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Corrigindo então, a frase dita no início do artigo, o correto é: entra dados, processa-se dados e sai informação.&lt;/b&gt; Se você leu este artigo até o final, nunca mais você pode errar isso.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;A pirâmide abaixo, resume muito bem tudo isso que falamos neste artigo:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIJJvTNAbPb2qTxZTSR_zq3eLr5MlkRFORGwFv02dkIMQEpgu6c9rP8z8DD2VAFjNmccjLkKI6sNXXcrKK_kemB97fkS8CseVTQzUhAM-PSQ3V0o4qtyS5Ow6NoTE7540gUB_2uWa8r40Q/s1600/piramideConhecimento.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;dados, informacao, conhecimento, qual a diferenca&quot; border=&quot;0&quot; data-original-height=&quot;359&quot; data-original-width=&quot;510&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIJJvTNAbPb2qTxZTSR_zq3eLr5MlkRFORGwFv02dkIMQEpgu6c9rP8z8DD2VAFjNmccjLkKI6sNXXcrKK_kemB97fkS8CseVTQzUhAM-PSQ3V0o4qtyS5Ow6NoTE7540gUB_2uWa8r40Q/s320/piramideConhecimento.png&quot; title=&quot;dados, informacao, conhecimento, qual a diferenca&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Bom, espero que você tenha tido um ótimo aproveitamento, caso ainda tenha dúvida, deixe seu comentário, um grande abraço até o próximo.&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;(Por Welinton J. Dias)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/6048610215964476802/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2018/03/dados-e-informacao-qual-diferenca.html#comment-form' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/6048610215964476802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/6048610215964476802'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2018/03/dados-e-informacao-qual-diferenca.html' title='Dados e Informação, qual a diferença?'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZGE9LB8tmzKKc4hyphenhyphenrd2n39lJQegQ0_JNREZmL116vafFXYsCHlGv8rJqSidAL7bXf5iQ4XRY1R5B72em2adwgJ-i6QUh4F3ayqXmanRWF6vx9LHDaECRsfYiilr5l7Xv3FsL8MFXSD7HV/s72-c/if_System_Information_MSConfig_99056.png" height="72" width="72"/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-8208609709107871104</id><published>2018-02-28T05:30:00.000-03:00</published><updated>2018-02-28T05:30:47.157-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="Tutoriais"/><title type='text'>Cadastro Delphi POO + MVC + DAO - Camada DAO - Parte 4</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJI2wEJSYL1Y4HLGFzcLdFgDdvWJSbgOR9iHiCji1-WwO99fEznxel5fmuFZwI-j2eG4BTiyufLONoltkKycHHl4E7yWzngS5TTC8L_I8YdH9ENvSPu3o8N2ohAzieCkadGBvlOqQJ8rjv/s1600/if_data_transport_44670.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi crud poo mvc camada dao&quot; border=&quot;0&quot; data-original-height=&quot;128&quot; data-original-width=&quot;128&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJI2wEJSYL1Y4HLGFzcLdFgDdvWJSbgOR9iHiCji1-WwO99fEznxel5fmuFZwI-j2eG4BTiyufLONoltkKycHHl4E7yWzngS5TTC8L_I8YdH9ENvSPu3o8N2ohAzieCkadGBvlOqQJ8rjv/s1600/if_data_transport_44670.png&quot; title=&quot;delphi crud poo mvc camada dao&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Salve, salve galeraaaaa. Estamos de volta &lt;a href=&quot;https://www.clipatecinformatica.com.br/2016/07/serie-cadastro-delphi-poo-mvc-dao.html&quot; target=&quot;_blank&quot;&gt;nesta saga&lt;/a&gt;, e neste artigo iremos continuar a implementação da camada DAO Cliente. Sem perca de tempo, com o projeto aberto no Delphi, vamos dar continuidade. No &lt;a href=&quot;https://www.clipatecinformatica.com.br/2018/02/cadastro-delphi-poo-mvc-dao-camada-dao-parte-3.html&quot; target=&quot;_blank&quot;&gt;artigo anterior&lt;/a&gt;, implementamos os métodos &quot;GerarID&quot; e &quot;Pesquisar&quot;. Seguindo a ordem das declarações, agora vamos implementar o método &quot;CarregarCliente&quot;. Segue a implementação:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbeDDJl54RJkpQ4mE4pm_7I-mqenlEnM-QvBcIR40Lb54hGCLGKuN2NG4swdi1UgcOJ0z_8dXDSEs0q9f4e1SR3It0fZuJhWgR1YYbOIp9KZY4caFrE9WYkoXse2bDDODDp2UXBJ31mtvY/s1600/mvc39.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi crud poo mvc camada dao&quot; border=&quot;0&quot; data-original-height=&quot;446&quot; data-original-width=&quot;884&quot; height=&quot;321&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbeDDJl54RJkpQ4mE4pm_7I-mqenlEnM-QvBcIR40Lb54hGCLGKuN2NG4swdi1UgcOJ0z_8dXDSEs0q9f4e1SR3It0fZuJhWgR1YYbOIp9KZY4caFrE9WYkoXse2bDDODDp2UXBJ31mtvY/s640/mvc39.PNG&quot; title=&quot;delphi crud poo mvc camada dao&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;&quot;&gt;&lt;b&gt;Na linha 64 estamos declarando uma variável de instância do tipo TSQLDataSet para que possamos executar nossa instrução SQL.&lt;/b&gt; Estamos mostrando as duas formas para que você possa optar por qual usar, seja adicionando o componente diretamente no Data Module ou criando em tempo de execução.&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
Na linha 66 criamos ele na memória, na linha 68 &lt;b&gt;conectamos o componente com o banco de dados, visto que, esta conexão está encapsulada no componente &quot;sqlConexao&quot;&lt;/b&gt; que por sua vez, está dentro do Data Module &quot;DmConexao&quot;. Da linha 69 a 71, estamos atribuindo ao componente, nossa instrução SQL, alimentando o parâmetro do SQL com o parâmetro passado pelo método. Como vocês observaram, este método pede o parâmetro &quot;oCliente&quot; do tipo &quot;TCliente&quot;, ou seja, um objeto &quot;Cliente&quot; será passado por parâmetro e &lt;b&gt;o método vai alimentar os atributos deste objeto com os valores que serão recuperado do banco de dados através da instrução SQL. &lt;/b&gt;Então, na instrução SQL, estamos buscando todas as informações referentes ao cliente cujo código foi passado pelo parâmetro &quot;iCodigo&quot;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Se você observar, está ocorrendo um erro no tipo &quot;TCliente&quot;, isso ocorre porque precisamos dar uses em nossa camada Cliente Model, pois a classe TCliente está declarada nela, então, pressione &quot;Alt + F11&quot; e selecione a unit &quot;uClienteModel&quot;, deixe marcado a opção &quot;Interface&quot; e dê &quot;OK&quot;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Legal, agora o erro no tipo TCliente sumiu. Continuando a explicação do método, da linha 75 a 82, estamos recuperando a informação retornada do SQL e atribuindo para as propriedades do objeto. Na linha 85, apenas liberamos o objeto TSQLDataSet da memória.&lt;/div&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Repare que o objeto &quot;oCliente&quot; não foi instanciado, porque o mesmo já vai estar criado em outra camada, então, este parâmetro representa o objeto já criado, apenas estamos alimentando as propriedades dele com as devidas informações retornadas pela execução do SQL.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Agora vamos implementar o método &quot;Inserir&quot;:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxPKQfc0I4VEKitD_1KUEmrXFTuUm9hGlEs68UnCLNK-BShYlPOP7NHZ5Z0O27Ohatzl1HHFEVvhGPpkvSwuD_ezeNTF29pcAanWAuLnxBNlE7sgR1YUuFeJTKWUgA-FgkaPq89LOAC7-5/s1600/mvc42.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi crud poo mvc camada dao&quot; border=&quot;0&quot; data-original-height=&quot;406&quot; data-original-width=&quot;693&quot; height=&quot;374&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxPKQfc0I4VEKitD_1KUEmrXFTuUm9hGlEs68UnCLNK-BShYlPOP7NHZ5Z0O27Ohatzl1HHFEVvhGPpkvSwuD_ezeNTF29pcAanWAuLnxBNlE7sgR1YUuFeJTKWUgA-FgkaPq89LOAC7-5/s640/mvc42.PNG&quot; title=&quot;delphi crud poo mvc camada dao&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;&quot;&gt;&lt;b&gt;Este método, também pede um parâmetro do tipo &quot;TCliente&quot;, que nada mais é que o objeto já criado contendo informações, onde estas informações serão lidas e gravadas no banco de dados.&lt;/b&gt; O segundo parâmetro, é um parâmetro de saída, isso significa que, após a execução do método, este parâmetro irá conter uma informação, é importante ressaltar que parâmetros do tipo &quot;var&quot; e &quot;out&quot;, podemos dizer que é um container para uma varável que já existe do outro lado, de onde está sendo chamado este método. Vamos entender melhor isso nas implementações dos métodos da camada &quot;view&quot;.&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
Na linha 126, estamos usando o componente &quot;sqlInserir&quot; que está no &quot;DmCliente&quot; que já está configurado com a instrução SQL que fizemos &lt;a href=&quot;https://www.clipatecinformatica.com.br/2018/02/cadastro-delphi-poo-mvc-dao-camada-dao-parte-2.html&quot; target=&quot;_blank&quot;&gt;na parte 2&lt;/a&gt;, e também estamos usando o objeto &quot;oCliente&quot; passado por parâmetro.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Na linha 128, estamos alimentando o primeiro parâmetro do SQL, que é o campo &quot;ID&quot; existente na tabela &quot;Cliente&quot; do banco de dados. Note que estamos chamando o método &quot;GerarID&quot;, que como vimos, irá gerar o código sequencial e retorná-lo para quem está chamando.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Da linha 129 a 132, estamos fazendo uma pequena verificação, caso o código da cidade seja zero, anulamos o parâmetro, para não ocorrer erro de chave estrangeira, pois a cidade cujo código é zero não existe na tabela &quot;Cidade&quot; do banco.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Resumindo, da linha 128 a 136 estamos alimentando os parâmetros do SQL de Insert com as informações do objeto Cliente. Na linha 138 tentamos persistir esses dados no banco, se nenhuma exceção for levantada, a função retorna True, ou seja, verdadeiro, deu tudo certo, caso contrário, cairá na exceção, a mensagem de erro será capturada pelo bloco &quot;except&quot; na linha 142, e a função, retornará False, ou seja, Falso, deu algo errado.&lt;/div&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Muito bem galera, vamos parando por aqui, no próximo artigo, vamos concluir a implementação da camada DAO Cliente. Até lá, abraço.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Este artigo faz parte da série &lt;a href=&quot;https://www.clipatecinformatica.com.br/2016/07/serie-cadastro-delphi-poo-mvc-dao.html&quot; target=&quot;_blank&quot;&gt;Cadastro em Delphi POO + MVC + DAO&lt;/a&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;(Por ClipaTec Informática)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/8208609709107871104/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2018/02/cadastro-delphi-poo-mvc-dao-camada-dao-parte-4.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/8208609709107871104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/8208609709107871104'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2018/02/cadastro-delphi-poo-mvc-dao-camada-dao-parte-4.html' title='Cadastro Delphi POO + MVC + DAO - Camada DAO - Parte 4'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJI2wEJSYL1Y4HLGFzcLdFgDdvWJSbgOR9iHiCji1-WwO99fEznxel5fmuFZwI-j2eG4BTiyufLONoltkKycHHl4E7yWzngS5TTC8L_I8YdH9ENvSPu3o8N2ohAzieCkadGBvlOqQJ8rjv/s72-c/if_data_transport_44670.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-2873447428893734459</id><published>2018-02-27T10:11:00.002-03:00</published><updated>2018-02-27T10:11:41.256-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="Programação"/><title type='text'>Delphi: Métodos e Parâmetros</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgY-1rDwO6AD2PFhe72SUHId2XzfkBA-PsbX_VuU0gZOi9kzIdRQ2B7hIyv_BTGMyCtG9JfeQPwS7REHMPRzCC8gsyT2A51vYJZdUdITuuWwbn4R4afJtBF6XUgOdc1sVPU42ANYvpyoUE/s1600/if_text-x-pascal_24983.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;delphi metodos parametros&quot; border=&quot;0&quot; data-original-height=&quot;128&quot; data-original-width=&quot;128&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgY-1rDwO6AD2PFhe72SUHId2XzfkBA-PsbX_VuU0gZOi9kzIdRQ2B7hIyv_BTGMyCtG9JfeQPwS7REHMPRzCC8gsyT2A51vYJZdUdITuuWwbn4R4afJtBF6XUgOdc1sVPU42ANYvpyoUE/s1600/if_text-x-pascal_24983.png&quot; title=&quot;delphi metodos parametros&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #20124d;&quot;&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #20124d;&quot;&gt;&lt;u&gt;Métodos&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;Um software&lt;/b&gt;, resumidamente falando, &lt;b&gt;nada mais é que um aglomerado de instruções&lt;/b&gt; que quando executadas, apresentam a solução para um determinado problema que está sendo processado. Digamos que o problema seja informatizar uma fixa de cadastro de cliente, &lt;b&gt;o software irá fornecer meios para capturar&lt;/b&gt; tais &lt;b&gt;dados, que serão processados e armazenados de forma inteligente e organizada, sendo possíveis serem recuperados com facilidade posteriormente.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;As linguagens de programação, oferecem meios para gerar estas instruções, é o que chamamos de métodos ou rotinas.&lt;/b&gt; Os métodos nada mais são que as instruções que compõem um sistema.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Basicamente, &lt;b&gt;existem dois tipos de métodos, aquele que processa os dados e gera um retorno deste processamento,&lt;/b&gt; para que este retorno seja utilizado para outra finalidade, por exemplo, um determinado método calcula um desconto que foi aplicado em uma venda por meio de uma porcentagem, e retorna este valor para ser subtraído do valor total da venda, então note que neste caso, o método devolveu um valor, que foi utilizado em outro método, o método que calcularia o valor final a ser pago pelo cliente.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;Existe também, o método que não gera um retorno, ele simplesmente processa os dados e não há a necessidade de gerar um retorno.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;Cada linguagem tem sua forma de diferenciar estes dois tipos de métodos,&lt;/b&gt; isto é, o que retorna e o que não retorna. &lt;b&gt;No Java, estes métodos são diferenciados pela presença ou ausência da palavra &quot;void&quot; na assinatura do método. &lt;/b&gt;Quando um método é &lt;b&gt;void,&lt;/b&gt; significa que ele não retorna nenhuma informação, caso contrário, o método gera um retorno.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;No Delphi, a diferenciação entre estes métodos, está nas palavras &quot;function&quot; e &quot;procedure&quot;. &lt;/b&gt;Ao declarar um método no Delphi, em sua assinatura, esta especificação é o primeiro elemento, ou seja, é necessário definir primeiramente se o método retorna alguma informação &quot;function&quot; ou não &quot;procedure&quot;. Exemplo:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Georgia, Times New Roman, serif;&quot;&gt;procedure ConfigurarPerfilUsuario;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;No exemplo acima, &lt;b&gt;temos um método que não retorna nenhuma informação,&lt;/b&gt; sabemos disso &lt;b&gt;porque ele inicia com a palavra &quot;procedure&quot;,&lt;/b&gt; logo, uma procedure, é um método que não retorna informação. Agora veja o seguinte exemplo:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Georgia, Times New Roman, serif;&quot;&gt;function GravarCliente: Boolean;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Já neste caso, &lt;b&gt;temos um método que retorna alguma informação, pois, ele inicia com a palavra &quot;function&quot;,&lt;/b&gt; logo, uma function, é um método que retorna uma informação.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;No Java,&lt;/b&gt; um método que retorna informação, &lt;b&gt;este retorno é definido pelo comando &quot;return&quot;, já no Delphi, pelo comando &quot;Result&quot;.&lt;/b&gt; Obrigatoriamente, &lt;b&gt;o valor a ser retornado, deve ser do mesmo tipo indicado na assinatura do método.&lt;/b&gt; Ainda utilizando o exemplo acima da function &quot;GravarCliente&quot;, note que em sua assinatura, estamos dizendo que o retorno dela é do tipo booleano (Boolean) (True/False - Verdadeiro/Falso). &lt;b&gt;No Delphi, o tipo de retorno é o último elemento na assinatura do método.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #20124d; font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;&lt;u&gt;Parâmetros&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;As vezes, para que os dados sejam processados, os métodos precisam de alguns valores de entrada,&lt;/b&gt; estes valores são passados no momento em que chamamos o método.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Na assinatura de um método, podemos definir &lt;b&gt;o que chamamos de parâmetros,&lt;/b&gt;&amp;nbsp;podendo ser um ou vários. Exemplo:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Georgia, Times New Roman, serif;&quot;&gt;procedure AplicarCreditoCliente(iCodigoCliente: Integer; nValorCredito: Real);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;No exemplo acima,&lt;/b&gt; temos um método que vai adicionar a um determinado cliente um valor de crédito, então, eu preciso dizer quem é este cliente e qual o valor do crédito, então, &lt;b&gt;passamos para o método estes dois valores de entrada&lt;/b&gt; para que o processamento seja realizado. &lt;b&gt;Então, temos um método com dois parâmetros.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;No Delphi, um parâmetro deve ter nome seguido do tipo de dados&lt;/b&gt; que o mesmo vai receber:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Georgia, Times New Roman, serif;&quot;&gt;procedure CalcularIdade(dDataNascimento: TDate);&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;No exemplo acima, temos um parâmetro chamado &quot;dDataNascimento&quot;, e seu tipo é &quot;TDate&quot;, &lt;/b&gt;ou seja, é necessário passar um valor de entrada do tipo data como parâmetro para o método.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;Quando temos mais de um parâmetro, separamos por &quot;;&quot; (ponto e vírgula), todos os parâmetros devem ter nome seguido do tipo,&lt;/b&gt; como vimos no exemplo acima do método &quot;AplicarCreditoCliente&quot;. Exemplo:&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Georgia, Times New Roman, serif;&quot;&gt;procedure NomeDoMetodo(sParametro1: string; iParametro2: Integer; nParametro3:Real);&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;Quando temos mais de um parâmetro do mesmo tipo, podemos separá-los por &quot;,&quot; (vírgula), definindo o tipo após o último,&lt;/b&gt; exemplo:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Georgia, Times New Roman, serif;&quot;&gt;function AlterarLancamento(iCodigo: Integer; nValor, nMulta, nJuros: Real): Boolean;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Os parâmetros &quot;nValor, nMulta e nJuros&quot;, por serem do mesmo tipo, foram separados por &quot;,&quot; e somente após o último foi definido o tipo deles, mas, nada impede de você passar o tipo para cada um separadamente:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Georgia, Times New Roman, serif;&quot;&gt;function AlterarLancamento(iCodigo: Integer; nValor: Real; nMulta: Real; nJuros: Real): Boolean;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;Podemos também, definir um valor padrão para um parâmetro,&lt;/b&gt; caso o mesmo não seja passado no momento em que for chamado. Mas deve-se tomar muito cuidado com isso, &lt;b&gt;este tipo de parâmetro se torna opcional e deve ser o último na assinatura do método,&lt;/b&gt; e no máximo um. Exemplo:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Georgia, Times New Roman, serif;&quot;&gt;procedure GerarChaveLiberacaoSistema(iCodigoCliente: Integer; bMensal: Boolean = True);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;Note que &lt;b&gt;o último parâmetro &quot;bMensal&quot; já possui um valor padrão definido&lt;/b&gt; no método, sendo este, &lt;b&gt;True,&lt;/b&gt; ou seja, &lt;b&gt;este parâmetro&lt;/b&gt; agora &lt;b&gt;é opcional,&lt;/b&gt; então, no momento em que o mesmo for chamado, &lt;b&gt;o compilador Delphi não vai obrigar passar um valor de entrada para ele,&lt;/b&gt; pois, caso não exista este valor, &lt;b&gt;ele assumirá o valor True por padrão.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #20124d; font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;&lt;u&gt;Conclusão&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;Todo software é composto por métodos, que são declarações em blocos independentes, que podem ser chamados a partir de locais diferentes.&lt;/b&gt; Os métodos são capazes de processar dados, tomar decisões, gerar resultados com a finalidade de solucionar os problemas propostos. Existem métodos que dentro deles, fazem chamadas a outros métodos que também fazem chamadas a outros, e assim sucessivamente, formando um aninhamento de métodos. Também, existem métodos recursivos, ou seja, que chamam a si mesmos em determinadas situações. Existem parâmetros variáveis e constantes, mas tudo isso serão assuntos para um outro artigo, meu objetivo aqui, foi apenas dar uma introdução no conceito de método principalmente usando o Delphi como linguagem de programação. Até o próximo, um grande abraço.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;&lt;b&gt;(Por Welinton J. Dias)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/2873447428893734459/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2018/02/delphi-metodos-e-parametros.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/2873447428893734459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/2873447428893734459'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2018/02/delphi-metodos-e-parametros.html' title='Delphi: Métodos e Parâmetros'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgY-1rDwO6AD2PFhe72SUHId2XzfkBA-PsbX_VuU0gZOi9kzIdRQ2B7hIyv_BTGMyCtG9JfeQPwS7REHMPRzCC8gsyT2A51vYJZdUdITuuWwbn4R4afJtBF6XUgOdc1sVPU42ANYvpyoUE/s72-c/if_text-x-pascal_24983.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-1808089961858095402</id><published>2018-02-24T06:00:00.000-03:00</published><updated>2018-02-26T08:14:04.183-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="Tutoriais"/><title type='text'>Cadastro Delphi POO + MVC + DAO - Camada DAO - Parte 3</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJI2wEJSYL1Y4HLGFzcLdFgDdvWJSbgOR9iHiCji1-WwO99fEznxel5fmuFZwI-j2eG4BTiyufLONoltkKycHHl4E7yWzngS5TTC8L_I8YdH9ENvSPu3o8N2ohAzieCkadGBvlOqQJ8rjv/s1600/if_data_transport_44670.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;crud delphi mvc dao poo&quot; border=&quot;0&quot; data-original-height=&quot;128&quot; data-original-width=&quot;128&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJI2wEJSYL1Y4HLGFzcLdFgDdvWJSbgOR9iHiCji1-WwO99fEznxel5fmuFZwI-j2eG4BTiyufLONoltkKycHHl4E7yWzngS5TTC8L_I8YdH9ENvSPu3o8N2ohAzieCkadGBvlOqQJ8rjv/s1600/if_data_transport_44670.png&quot; title=&quot;crud delphi mvc dao poo&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Aôô meu povo, tudo bem com vocês? No &lt;a href=&quot;https://www.clipatecinformatica.com.br/2018/02/cadastro-delphi-poo-mvc-dao-camada-dao-parte-2.html&quot; target=&quot;_blank&quot;&gt;artigo anterior&lt;/a&gt;, implementamos nossas instruções SQL, agora &lt;b&gt;vamos começar a implementar os métodos da camada DAO.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Legal, com o projeto aberto no Delphi, vamos para o &quot;DmCliente&quot;, e declare os seguintes métodos dentro da seção &quot;public&quot;:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigs1fkgkfkBDQvXLLsNnUAIkFvWoLFz2bApRhTUP3AzBC5ccHK_q-Oco4pwLN17CX406iN2xdvl_l3o8O5NaWHxDls_MBL_e0AJFhoEvzPZQgd0bBKKj-2_b2hqMQGr1LX5SOxteVTzpBG/s1600/mvc37.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;crud delphi mvc dao poo&quot; border=&quot;0&quot; data-original-height=&quot;140&quot; data-original-width=&quot;551&quot; height=&quot;161&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigs1fkgkfkBDQvXLLsNnUAIkFvWoLFz2bApRhTUP3AzBC5ccHK_q-Oco4pwLN17CX406iN2xdvl_l3o8O5NaWHxDls_MBL_e0AJFhoEvzPZQgd0bBKKj-2_b2hqMQGr1LX5SOxteVTzpBG/s640/mvc37.PNG&quot; title=&quot;crud delphi mvc dao poo&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Pressione a tecla de atalho &quot;Shift + Ctrl + C&quot; para que os métodos sejam declarados na seção &quot;Implementation&quot; da &quot;Unit&quot;. Vá até a declaração do método &quot;GerarID&quot; e vamos implementá-lo.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;O método &quot;GerarID&quot; simplesmente é responsável por gerar o código sequencial (chave primária) do cadastro de cliente, implemente-o da seguinte forma:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRUSa4eXjaH3ZCnGlhbvbJce7CaSnkwhxs7hnPh2uWRobTyL8XUYYeleKbEGDtMOfueFLkedhepd-Wc-sRUTA8QL4XmS-9s91F5fYcy43ciwI73U8A2F2Wq8HKvw3pEsCKwFkKfRbpG3Th/s1600/mvc41.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;crud delphi mvc dao poo&quot; border=&quot;0&quot; data-original-height=&quot;290&quot; data-original-width=&quot;644&quot; height=&quot;288&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRUSa4eXjaH3ZCnGlhbvbJce7CaSnkwhxs7hnPh2uWRobTyL8XUYYeleKbEGDtMOfueFLkedhepd-Wc-sRUTA8QL4XmS-9s91F5fYcy43ciwI73U8A2F2Wq8HKvw3pEsCKwFkKfRbpG3Th/s640/mvc41.PNG&quot; title=&quot;crud delphi mvc dao poo&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Na linha 108, estamos declarando um objeto/variável do tipo &quot;TSQLDataSet&quot;. Este objeto será um componente do tipo TSQLDataSet, que utilizaremos para executar nossa instrução SQL em tempo de execução, logo após o seu uso, descartamos da memória.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Na linha 110, estamos criando este objeto na memória, na linha 114 conectamos ele ao nosso banco que está encapsulado no componente &quot;sqlConexao&quot; que está dentro do Data Module &quot;DmConexao&quot;, para isso, pressione as teclas &quot;Alt + F11&quot;, na lista que aparecer, selecione o &quot;DmCliente&quot;, deixa a opção &quot;Interface&quot; marcada e dê &quot;OK&quot; para darmos &quot;uses&quot; nele dentro do &quot;DmCliente&quot;. Agora conseguimos referenciar o componente &quot;sqlConexao&quot; sem erros.&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Na linha 115 passamos nossa instrução SQL que está buscando o código do último registro e incrementando um a este código, desta forma, obtemos o número de sequência para o novo registro que estará sendo cadastrado. Na linha 116 abrimos o DataSet e na linha 117 retornamos este código sequencial pra quem chamou este método. Note que o tipo de retorno deste método é &quot;Integer (Inteiro)&quot;.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Por fim, a linha 120 apenas está liberando o objeto que criamos anteriormente da memória.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;O próximo método a ser implementado, é o método &quot;Pesquisar&quot;. Note que este método pede dois parâmetros, o &quot;sNome&quot; que será o nome do cliente a ser pesquisado na base de dados e o &quot;aStringGrid&quot; que é o componente &quot;TStringGrid&quot; que vai mostrar o resultado desta pesquisa em forma de tabela visualmente para o cliente lá na aba de pesquisa do formulário de cadastro.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Segue sua implementação:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZiLv3V-F5t6P1J9jAfh_I-4GbNL0BmvWZ8E2HPpj_ozesZtEF1qBXZA9vbUxGuhU1T03ALL34ZQUWuCAAEJ_x0msdu1qVrqc2DeoDhpoLout8CRkusmUNW1lY4fT6_UnR7hsMrNhmK5bP/s1600/mvc43.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;crud delphi mvc dao poo&quot; border=&quot;0&quot; data-original-height=&quot;529&quot; data-original-width=&quot;657&quot; height=&quot;513&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZiLv3V-F5t6P1J9jAfh_I-4GbNL0BmvWZ8E2HPpj_ozesZtEF1qBXZA9vbUxGuhU1T03ALL34ZQUWuCAAEJ_x0msdu1qVrqc2DeoDhpoLout8CRkusmUNW1lY4fT6_UnR7hsMrNhmK5bP/s640/mvc43.PNG&quot; title=&quot;crud delphi mvc dao poo&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwDT3XOInrrJcLwoaBO5O4BHtNJcZhWccuZSgL3j9u-oab441ZRLmX00sY06bJXG5u0tpzDXxzRDOhCXCOV2j2yjCBgLaag07jWqpRnZkr-B-2p8wjCsK2akNJ8NSBilNO8vZbfzAQMKvk/s1600/mvc45.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;crud delphi mvc dao poo&quot; border=&quot;0&quot; data-original-height=&quot;309&quot; data-original-width=&quot;545&quot; height=&quot;362&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwDT3XOInrrJcLwoaBO5O4BHtNJcZhWccuZSgL3j9u-oab441ZRLmX00sY06bJXG5u0tpzDXxzRDOhCXCOV2j2yjCBgLaag07jWqpRnZkr-B-2p8wjCsK2akNJ8NSBilNO8vZbfzAQMKvk/s640/mvc45.PNG&quot; title=&quot;crud delphi mvc dao poo&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Para configurar o componente Grid, precisamos definir as colunas e linhas que receberão os valores providos pelo resultado da execução da instrução SQ, para configurarmos as linhas da nossa Grid, vamos criar uma variável chamada &quot;iTotal&quot; do tipo &quot;Inteiro&quot;, é exatamente isso que está sendo feito na linha 151. Na linha 154 inicializamos o valor desta variável com um, garantindo que teremos pelo menos uma linha na Grid. A quantidade de linhas a ser configurada, deve ser exatamente a mesma quantidade de registros retornados pelo SQL, caso contrário alguns registros podem não aparecer, se caso a quantidade de linha for menor que a quantidade de registros retornados, por isso, vamos criando as linhas conforme percorremos os registros. Da linha 157 a 162 estamos apenas alimentando o parâmetro &quot;nome&quot; da instrução SQL atribuída ao componente &quot;sqlPesquisar&quot; conforme fizemos no artigo anterior desta série. Da linha 166 a 178 estamos configurando as colunas da Grid, com seus títulos e tamanhos.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Agora, da linha 180 a 191 estamos atribuindo ao objeto Grid os registros retornados do SQL.&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Não vamos explicar todos os comandos porque já é do conhecimento de vocês, mas, caso tenham alguma dúvida sobre algum comando ou implementação, deixe seu comentário que explicaremos a você.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Vamos ficando por aqui. No próximo artigo seguiremos implementando nossa camada DAO Cliente. Até lá, abraço.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Este artigo faz parte da série de &lt;a href=&quot;https://www.clipatecinformatica.com.br/2016/07/serie-cadastro-delphi-poo-mvc-dao.html&quot; target=&quot;_blank&quot;&gt;Cadastro em Delphi POO + MVC + DAO&lt;/a&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;(Por ClipaTec Informática)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/1808089961858095402/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2018/02/cadastro-delphi-poo-mvc-dao-camada-dao-parte-3.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/1808089961858095402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/1808089961858095402'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2018/02/cadastro-delphi-poo-mvc-dao-camada-dao-parte-3.html' title='Cadastro Delphi POO + MVC + DAO - Camada DAO - Parte 3'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJI2wEJSYL1Y4HLGFzcLdFgDdvWJSbgOR9iHiCji1-WwO99fEznxel5fmuFZwI-j2eG4BTiyufLONoltkKycHHl4E7yWzngS5TTC8L_I8YdH9ENvSPu3o8N2ohAzieCkadGBvlOqQJ8rjv/s72-c/if_data_transport_44670.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-468796348175967659</id><published>2018-02-23T11:35:00.001-03:00</published><updated>2018-02-23T11:35:37.407-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="Programação"/><title type='text'>Delphi: Escopo de Classe</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQyNMVXizUNu41lZ78H5FBu4FJ2qBGXbsFdv44XK9pDgvh__TNWUbWqBHQYbN0l56BZn9Mz269EeTzByQDVRP1ekgT-KJdCDqCdlCNEJV4my7s5CygHjxJy3EWYQ_rqEL3ybunLbudguUh/s1600/if_ms_access2_99599.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;escopo visibilidade classe delphi&quot; border=&quot;0&quot; data-original-height=&quot;128&quot; data-original-width=&quot;128&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQyNMVXizUNu41lZ78H5FBu4FJ2qBGXbsFdv44XK9pDgvh__TNWUbWqBHQYbN0l56BZn9Mz269EeTzByQDVRP1ekgT-KJdCDqCdlCNEJV4my7s5CygHjxJy3EWYQ_rqEL3ybunLbudguUh/s1600/if_ms_access2_99599.png&quot; title=&quot;escopo visibilidade classe delphi&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Salve, salve! &lt;b&gt;Quem disse que o Delphi não da suporte a programação orientada a objetos? Quem diz isso, certamente não o conhece direito.&lt;/b&gt; Neste artigo vamos falar sobre a visibilidade de um objeto (instância da classe).&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;As definições de visibilidade nas classes Delphi é importante, e devem ser configuradas com cuidado. Através destas definições determinamos se os elementos da classe (atributos, métodos, etc) é visível ou não.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #660000; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;No Delphi temos os seguintes escopos de visibilidade do mais restritivo ao menos restritivo: strict private, private, strict protected, protected, public e published.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Quando vamos criar nossas classes no Delphi, estas implementações são feitas dentro de uma unit, e na mesma unit você pode ter uma ou várias classes, e também podemos implementar classes em outra(s) unit(s), e as vezes, determinados atributos e/ou métodos de uma classe devem/podem ser acessador por outras já outros atributos e/ou métodos não podem, e ainda, talvez a restrição seja apenas para as classes que não são descendentes, e por ai vai. Isso tudo vai ficar mais claro a medida em que formos explicando.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Antes de falar da visibilidade strict private e strict protected, &lt;b&gt;precisamos entender que no Delphi temos o conceito de classes amigas,&lt;/b&gt; o que é isso? &lt;b&gt;Quando mais de uma classe é criada na mesma unit, elas são consideradas amigas,&lt;/b&gt; sendo assim, mesmo que um atributo ou método esteja declarado dentro da seção &quot;private&quot; ou &quot;protected&quot; de uma classe, todas as classes que estão presentes na mesma unit terão acesso a eles, ou seja, em tese, &lt;b&gt;um atributo ou método declarado em private somente é acessado somente pela própria classe e um atributo ou método declarado em protected somente é acessado pela própria classe e suas descendentes, porém, com este conceito de classes amigas, as demais classes conseguem ter acesso, exceto as classes que estão em outra unit, isto é, as inimigas, &lt;/b&gt;beijo kkkkk (só pra descontrair).&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Aí você talvez esteja pensando, mas pra que toda esta explicação antes de falar do escopo de visibilidade strict private e strict protected? Tudo! Exatamente por isso meus caros, quando eu tenho mais de uma classe dentro da mesma unit, e não quero que as classes amigas tenham acesso aos atributos e métodos privados ou protegidos, então basta declarar o atributo ou método dentro do escopo strict private, desta maneira, somente a própria classe terá acesso a eles, ou strict protected, onde somente a própria classe e filhas terão acesso,&amp;nbsp; ou seja, as classes amigas não conseguirão mais acessa-los. Tomem muito cuidado com esses escopos, nós defendemos a ideia de que cada classe esteja implementada em uma unit, porém, se quiser ter mais de uma classe na mesma unit, e quiser garantir a privacidade de um atributo ou método somente a própria classe e as descendentes, deve-se usar o escopo &quot;strict private&quot; ao invés de &quot;private&quot; ou &quot;strict protected&quot; ao invés de &quot;protected&quot;.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Ufa, parece um tanto confuso entender tudo isso, mas vamos entender os demais escopos, isso vai ajudar a entender melhor.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #0c343d; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;u&gt;Privado (private)&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Como já foi explicado anteriormente, os atributos e métodos declarados dentro desta seção só podem ser acessados pela própria classe e pelas classes amigas, portanto, as classes que estão em outras units (inimigas) não conseguem ter acesso.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #0c343d; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;u&gt;Protegido (protected)&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Os atributos e métodos declarados neste escopo, podem ser acessados pela própria classe, classes descendentes (filhas) e pelas classes amigas.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #0c343d; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;u&gt;Público (public)&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Neste escopo, qualquer classe podem acessar os atributos e métodos, ou seja, todas, seja amiga, seja inimiga, filha ou não.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #0c343d; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;u&gt;Publicado (published)&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;É igual ao escopo public, porém, pode também ser acessado via RTTI, um exemplo disso, é quando conseguimos acessar os atributos e métodos pelo Object Inspector de um determinado objeto, como um &quot;TEdit&quot; por exemplo.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Nas versões novas do Delphi onde foram feitas modificações na RTTI, este escopo perde um pouco o sentido, visto que, com as novas modificações, já é possível ter acesso aos atributos e métodos dos outros escopos também.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Antes de finalizarmos este artigo, existe um escopo pouco falado, o &quot;automated&quot;.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #0c343d; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;u&gt;Automatizado (automated)&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Este escopo é semelhante ao public, com apenas um incremento, onde as informações de tipo automático (automation type information) são geradas, muito utilizadas em classes &quot;Windows&quot;. Os &quot;Automation Objects&quot; permitem trabalhar com objetos de aplicações como &quot;Word&quot; por exemplo, ou seja, é pertinente a API OLE Automation.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Muito bem, agora que tudo ficou mais claro, apenas ressaltando:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #0c343d; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;u&gt;Estritamente Privado (strict private)&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Apenas a própria classe pode ter acesso, as classes amigas, inimigas e filhas não possuem acesso.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #0c343d; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;u&gt;Estritamente Protegido (strict protected)&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Apenas a própria classe e classes filhas podem ter acesso, as classes amigas e inimigas não possuem acesso.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Assim chegamos ao final deste artigo. Agora que você conhece a diferença entre os escopos de visibilidade, usem com cuidado. Estes escopos são extremamentes importantes quando trabalhamos com criação de componentes por exemplo. Qualquer dúvida, deixe seu comentário, até mais. Abraço.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;(Por ClipaTec Informática)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/468796348175967659/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2018/02/delphi-escopo-de-classe.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/468796348175967659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/468796348175967659'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2018/02/delphi-escopo-de-classe.html' title='Delphi: Escopo de Classe'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQyNMVXizUNu41lZ78H5FBu4FJ2qBGXbsFdv44XK9pDgvh__TNWUbWqBHQYbN0l56BZn9Mz269EeTzByQDVRP1ekgT-KJdCDqCdlCNEJV4my7s5CygHjxJy3EWYQ_rqEL3ybunLbudguUh/s72-c/if_ms_access2_99599.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7914785733761945904.post-6697754678562271014</id><published>2018-02-22T08:30:00.000-03:00</published><updated>2018-02-22T08:30:23.440-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="Tutoriais"/><title type='text'>Cadastro Delphi POO + MVC + DAO - Camada DAO - Parte 2</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX0p8ACrX5zc1IOFABjsyFVc_jeORCLbpKKO_6LTkHcj0QVnj-UnsXtAy6C5k_oTsPCoPMup55Xk2ehUm7ck41uUaq0E39rWK_1SfLkR83tuswiWPuKcyviwi44x_PC-EbMBLU4rS3zGb9/s1600/if_data_transport_44670.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;crud delphi poo mvc dao&quot; border=&quot;0&quot; data-original-height=&quot;128&quot; data-original-width=&quot;128&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX0p8ACrX5zc1IOFABjsyFVc_jeORCLbpKKO_6LTkHcj0QVnj-UnsXtAy6C5k_oTsPCoPMup55Xk2ehUm7ck41uUaq0E39rWK_1SfLkR83tuswiWPuKcyviwi44x_PC-EbMBLU4rS3zGb9/s1600/if_data_transport_44670.png&quot; title=&quot;crud delphi poo mvc dao&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;yupiiii, olá, olá clipatequeiros de plantão, bora dar continuidade &lt;a href=&quot;https://www.clipatecinformatica.com.br/2016/07/serie-cadastro-delphi-poo-mvc-dao.html&quot; target=&quot;_blank&quot;&gt;nessa série&lt;/a&gt;. &lt;b&gt;Neste artigo, vamos continuar implementando a camada DAO. &lt;/b&gt;Sem perca de tempo, com o projeto aberto no Delphi, &lt;b&gt;crie um novo &quot;Data Module&quot;, defina o &quot;Name = DmCliente&quot; e salve como &quot;uDmCliente&quot; dentro da pasta DAO.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Adicione quatro componentes &quot;TSQLDataSet&quot; e altere a propriedade &quot;Name&quot; de cada um para &quot;sqlPesquisar&quot;, &quot;sqlInserir&quot;, &quot;sqlAlterar&quot; e &quot;sqlExcluir&quot;.&lt;/b&gt; Agora adicione um componente &quot;TDataSetProvider&quot;, altere a propriedade &quot;Name&quot; para &quot;dspPesquisar&quot; e na propriedade &quot;DataSet&quot; aponte para o componente &quot;sqlPesquisar&quot;. Agora adicione um componente &quot;TClientDataSet&quot;, altere a propriedade &quot;Name&quot; para &quot;cdsPesquisar&quot; e na propriedade &quot;ProviderName&quot; aponte para o componente &quot;dspPesquisar&quot;.&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0SkAWTJf87HCGKFFrUdfML4G-kDahi77H00dmkydtWZbf2O6SLniwQdRS_ZZo976XxJCff4_Styh7bgvG_DqabC6ifmN0lPad4BHZhtLiEG21WOUxv1Nr1RBCk2QFbhtPcIm2vqgWX8dV/s1600/mvc36.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;crud delphi poo mvc dao&quot; border=&quot;0&quot; data-original-height=&quot;215&quot; data-original-width=&quot;327&quot; height=&quot;210&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0SkAWTJf87HCGKFFrUdfML4G-kDahi77H00dmkydtWZbf2O6SLniwQdRS_ZZo976XxJCff4_Styh7bgvG_DqabC6ifmN0lPad4BHZhtLiEG21WOUxv1Nr1RBCk2QFbhtPcIm2vqgWX8dV/s320/mvc36.PNG&quot; title=&quot;crud delphi poo mvc dao&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;OK, &lt;b&gt;agora, precisamos alimentar os componentes TSQLDataSet com seus respectivos comandos SQL.&lt;/b&gt; Então, selecione o componente &quot;sqlPesquisar&quot; e na propriedade &quot;CommandText&quot; adicione a seguinte instrução SQL:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&quot;select c.id, c.nome, c.telefone, cid.nome as cidade from cliente c left join cidade cid on (c.id_cidade = cid.id) where c.nome like :nome&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Agora precisamos configurar o tipo do parâmetro &quot;nome&quot;&lt;/b&gt; presente na nossa instrução SQL. Não vamos entrar em detalhes na explicação do SQL, basicamente estamos trazendo algumas informações do banco de dados referente ao cliente, dando opção de pesquisar por nome apenas. Você pode incrementar este SQL adicionando mais opções de pesquisa.&lt;b&gt; Para configurar o parâmetro, clique no botão elíptico (botão com três pontinhos...) da propriedade &quot;Params&quot; do &quot;sqlPesquisar&quot;. A janela que lista os parâmetros contidos no SQL será aberta,&lt;/b&gt; como só temos um &quot;o nome&quot;, então apenas ele aparece. &lt;b&gt;Clique sobre este parâmetro &quot;nome&quot; e na propriedade &quot;DataType&quot; selecione o tipo &quot;ftString&quot;.&lt;/b&gt; Feito isso, pode fechar esta janela, porque agora nosso componente &quot;sqlPesquisar&quot; já sabe que o parâmetro &quot;nome&quot; é um parâmetro de entrada que receberá um valor do tipo &quot;string (texto)&quot; que será repassado e substituído no comando SQL.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Agora, clique com o botão direito do mouse sobre o componente &quot;cdsPesquisar&quot; e selecione a opção &quot;Fetch Params&quot;, apenas para que este componente também tenha conhecimento do parâmetro &quot;nome&quot;.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Show de bola, agora, selecione o componente &quot;sqlInserir&quot; e na propriedade &quot;CommandText&quot; dele, adicione a seguinte instrução SQL:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&quot;insert into CLIENTE (ID, ID_CIDADE, NOME, CPF, RG, TELEFONE) values (:ID, ID_CIDADE, :NOME, :CPF, :RG, :TELEFONE)&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Agora, vá na propriedade &quot;Params&quot; para configurarmos o tipo dos parâmetros igual fizemos com o &quot;sqlPesquisar&quot;. Segue o tipo de cada parâmetro: &quot;ID = ftInteger; ID_CIDADE = ftInteger; NOME = ftString; CPF = ftString; RG = ftString; TELEFONE = ftString&quot;. Após ter configurado todos estes parâmetros, pode fechar a janela.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Selecione o componente &quot;sqlAlterar&quot; e na propriedade &quot;CommandText&quot; adicione o seguinte comando SQL:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&quot;update CLIENTE set ID_CIDADE = :ID_CIDADE, NOME = :NOME, CPF = :CPF, RG = :RG, TELEFONE = :TELEFONE, where (ID = :ID)&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Configure os tipos dos parâmetros conforme fizemos no &quot;sqlInserir&quot;. Muito bem, pra finalizarmos, selecione o componente &quot;sqlExcluir&quot; e na propriedade &quot;CommandText&quot; adicione o seguinte comando SQL:&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&quot;delete from CLIENTE where (ID = :ID)&quot;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Configure o parâmetro &quot;ID&quot; para &quot;ftInteger&quot;.&lt;/div&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Ufa, finalmente chegamos ao fim de mais um artigo, no qual, configuramos todas as instruções SQL. No próximo artigo, vamos começar a implementação dos métodos na camada DAO. Esperamos vocês, até lá.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Este artigo faz parte da série &lt;a href=&quot;https://www.clipatecinformatica.com.br/2016/07/serie-cadastro-delphi-poo-mvc-dao.html&quot; target=&quot;_blank&quot;&gt;Cadastro Delphi POO + MVC + DAO&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;georgia&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;(Por ClipaTec Informática)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.clipatecinformatica.com.br/feeds/6697754678562271014/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.clipatecinformatica.com.br/2018/02/cadastro-delphi-poo-mvc-dao-camada-dao-parte-2.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/6697754678562271014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7914785733761945904/posts/default/6697754678562271014'/><link rel='alternate' type='text/html' href='http://www.clipatecinformatica.com.br/2018/02/cadastro-delphi-poo-mvc-dao-camada-dao-parte-2.html' title='Cadastro Delphi POO + MVC + DAO - Camada DAO - Parte 2'/><author><name>ClipaTec Informática</name><uri>http://www.blogger.com/profile/18294632474709957315</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='18' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggb4gHHteZ8-h3QDjAWlpUpxUTwi-y5cjq5C3DUDLUbJLOR4QVfRcF9R-L_xY1_MjBnnA1Zd0LKcaC_uv2njSScGg7yEWssW-dr2uqA_DzoMF1VdCes8C0z9IJ3ym09_kWLWUusIEQjMYRLl3ptRuxPh4ISTCLQtZM48zslGGNGuXnHjc/s1600/21.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX0p8ACrX5zc1IOFABjsyFVc_jeORCLbpKKO_6LTkHcj0QVnj-UnsXtAy6C5k_oTsPCoPMup55Xk2ehUm7ck41uUaq0E39rWK_1SfLkR83tuswiWPuKcyviwi44x_PC-EbMBLU4rS3zGb9/s72-c/if_data_transport_44670.png" height="72" width="72"/><thr:total>0</thr:total></entry></feed>