{"id":683,"date":"2010-01-27T10:00:34","date_gmt":"2010-01-27T02:00:34","guid":{"rendered":"http:\/\/www.andreanolanusse.com\/pt\/?p=683"},"modified":"2013-05-01T22:01:34","modified_gmt":"2013-05-02T05:01:34","slug":"delphi-live-templates","status":"publish","type":"post","link":"http:\/\/www.andreanolanusse.com\/pt\/delphi-live-templates\/","title":{"rendered":"Delphi Live Templates"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-691\" style=\"border: 0pt none; margin: 4px;\" title=\"Delphi Live Template\" alt=\"\" src=\"http:\/\/www.andreanolanusse.com\/pt\/wp-content\/uploads\/2010\/01\/codetemplate.png\" width=\"292\" height=\"218\" srcset=\"http:\/\/www.andreanolanusse.com\/pt\/wp-content\/uploads\/2010\/01\/codetemplate.png 414w, http:\/\/www.andreanolanusse.com\/pt\/wp-content\/uploads\/2010\/01\/codetemplate-233x175.png 233w\" sizes=\"(max-width: 292px) 100vw, 292px\" \/>Entre os in\u00fameros recursos adicionados ao Delphi nos \u00faltimos anos para aumentar produtividade o Live Templates \u00e9 um dos mais interessantes. Live Templates foi adicionado a partir do Delphi 2005 e permite voc\u00ea escrever mais c\u00f3digo sem muita digita\u00e7\u00e3o, pois est\u00e1 baseado em Templates. Este templates s\u00e3o arquivos XML o que lhe permite alterar os templates j\u00e1 existentes e tamb\u00e9m criar novo.<\/p>\n<p>At\u00e9 o Delphi 2009 os arquivos templates podem ser localizados no diret\u00f3rio: C:\\Program Files\\Embarcadero\\RAD Studio\\6.0\\ObjRepos\\Code_Templates<\/p>\n<p>A partir do Delphi 2010 os arquivos est\u00e3o no diret\u00f3rio C:\\Program Files\\Embarcadero\\RAD Studio\\7.0\\ObjRepos\\en\\Code_Templates, basicamente foi adicionado o diret\u00f3rio en, referente ao idioma ingl\u00eas, se voc\u00ea utiliza o Delphi em outro idioma dever\u00e1 consider\u00e1-lo.<\/p>\n<p>Ao pressionar CTRL+J voc\u00ea tem uma lista de templates pr\u00e9-definidos:<\/p>\n<ul>\n<li>Declara\u00e7\u00e3o de vari\u00e1veis<\/li>\n<li>For<\/li>\n<li>While<\/li>\n<li>Cria\u00e7\u00e3o de classes em diferentes formatos<\/li>\n<li>E muito mais<\/li>\n<\/ul>\n<p>V\u00e1rios outros templates podem ser criados, por exemplo um la\u00e7o (while) em um DataSet, adicionar um lembrete (TO-DO) que algo tem que ser feito, um c\u00f3digo espec\u00edfico referenciado um framework pr\u00f3prio, etc. Abaixo dois exemplos:<\/p>\n<p>Ao digitar <strong>noteof<\/strong> e pressionar <strong>TAB<\/strong>, ser\u00e1 executado o Live Template <strong>noteof<\/strong>, que adiciona o c\u00f3digo abaixo:<\/p>\n<pre class=\"brush: pascal;\">  while not dataset.eof do\r\n  begin\r\n\r\n    dataset.Next;\r\n  end;\r\n\r\n;<\/pre>\n<pre class=\"brush: xml;\">Abaixo o template respons\u00e1vel pela m\u00e1gica, para utilizar este template basta gravar o c\u00f3digo abaixo em um arquivo XML e na respectiva pasta mencionada anteriormente.\r\n\r\n<!--?xml version=\"1.0\" encoding=\"utf-8\" ?--><script type=\"text\/javascript\" language=\"Delphi\">\/\/ <![CDATA[\r\n\t\t\t  InvokeCodeCompletion;\r\n\r\n\/\/ ]]><\/script>dataset dataset to loop through Loop through a dataset while not eof Andreano Lanusse <code><![CDATA[while not |dataset|.eof do\r\nbegin\r\n|*||end|\r\n|*||dataset|.Next;\r\nend;\r\n]]> <\/code> ;<\/pre>\n<p>Outro exemplo \u00e9 utilizar o recurso TODO do Delphi de forma mais produtiva, podemos adicionar coment\u00e1rios no c\u00f3digo que nos lembre de fazer algo, uma revis\u00e3o, altera\u00e7\u00e3o, exclus\u00e3o, etc. Quando abrimos a lista de TO-DO ( Menu View-&gt; To-Do List) o mesmo ir\u00e1 percorrer todo o c\u00f3digo do seu projeto e mostrar a lista de TO-DO, apenas um duplo-clique e voc\u00ea esta posicionado no ponto exato do c\u00f3digo.<\/p>\n<p>A seguir o template criado para adicionar TO-DO, digite <strong>todo<\/strong> e pressione <strong>TAB<\/strong>, informe o nome do respons\u00e1vel, nome da categoria para esta tarefa e a a\u00e7\u00e3o a ser executado.<\/p>\n<pre class=\"brush: pascal;\">{TODO -oOwner -cGeneral : ActionItem}\r\n;<\/pre>\n<p>Abaixo o c\u00f3digo XML para execu\u00e7\u00e3o deste Live Template, novamente grave este c\u00f3digo em um arquivo XML e salve na pasta de templates.<\/p>\n<pre class=\"brush: xml;\"><!--?xml version=\"1.0\" encoding=\"utf-8\" ?-->\r\n\r\n\t\t\tOwner\r\n\t\t\tName of the person responsible for this task\r\n\r\n\t\t\tGeneral\r\n\t\t\tCategory name for this task\r\n\r\n\t\t\tActionItem\r\n\t\t\tAction necessary for this task\r\n\r\n\t\t<code>\r\n\t\t\t<![CDATA[{TODO -o|Owner| -c|Category| : |ActionItem|}]]>\r\n\t\t<\/code>\r\n\t\tCreate a TODO item\r\n\t\tAndreano\r\n\r\n;<\/pre>\n<p>Muito mais pode ser feito com o Live Templates, com certeza voc\u00ea j\u00e1 deve ter algumas id\u00e9ias e quer saber como criar estes templates, para isso recomendo a leitura do artigo <a href=\"http:\/\/delphi.wikia.com\/wiki\/Live_Templates_Technical_Info\" target=\"_blank\"><strong>Live Templates Technical Info<\/strong><\/a><\/p>\n<p>E caso tenha algum live template que deseja compartilhar com a comunidade, me envie que irei postar aqui no blog.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Entre os in\u00fameros recursos adicionados ao Delphi nos \u00faltimos anos para aumentar produtividade o Live Templates \u00e9 um dos mais interessantes. Live Templates foi adicionado a partir do Delphi 2005 e permite voc\u00ea escrever mais c\u00f3digo sem muita digita\u00e7\u00e3o, pois est\u00e1 baseado em Templates. Este templates s\u00e3o arquivos XML o que lhe permite alterar os [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4202,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_s2mail":"no","footnotes":""},"categories":[102],"tags":[181,85],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Delphi Live Templates | Andreano Lanusse | Tecnologia e Desenvolvimento de Software<\/title>\n<meta name=\"description\" content=\"Entre os in\u00fameros recursos adicionados ao Delphi nos \u00faltimos anos para aumentar produtividade o Live Templates \u00e9 um dos mais interessantes. Live Templates\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.andreanolanusse.com\/pt\/delphi-live-templates\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Delphi Live Templates | Andreano Lanusse | Tecnologia e Desenvolvimento de Software\" \/>\n<meta property=\"og:description\" content=\"Entre os in\u00fameros recursos adicionados ao Delphi nos \u00faltimos anos para aumentar produtividade o Live Templates \u00e9 um dos mais interessantes. Live Templates\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.andreanolanusse.com\/pt\/delphi-live-templates\/\" \/>\n<meta property=\"og:site_name\" content=\"Andreano Lanusse | Tecnologia e Desenvolvimento de Software\" \/>\n<meta property=\"article:published_time\" content=\"2010-01-27T02:00:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2013-05-02T05:01:34+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.andreanolanusse.com\/pt\/wp-content\/uploads\/2011\/09\/Icon_Delphi.png\" \/>\n\t<meta property=\"og:image:width\" content=\"170\" \/>\n\t<meta property=\"og:image:height\" content=\"170\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@andreanolanusse\" \/>\n<meta name=\"twitter:site\" content=\"@andreanolanusse\" \/>\n<meta name=\"twitter:label1\" content=\"Est. tempo de leitura\">\n\t<meta name=\"twitter:data1\" content=\"2 minutos\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#website\",\"url\":\"http:\/\/www.andreanolanusse.com\/pt\/\",\"name\":\"Andreano Lanusse | Tecnologia e Desenvolvimento de Software\",\"description\":\"Andreano Lanusse blog - artigos, tutoriais e v&iacute;deos sobre tecnologia, desenvolvimento de software (Delphi XE4, C#, PHP, .NET) e t&eacute;cnicas de programa&ccedil;&atilde;o\",\"publisher\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#\/schema\/person\/620bd05e81598c3aba4781796cbe8903\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"http:\/\/www.andreanolanusse.com\/pt\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"ImageObject\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/delphi-live-templates\/#primaryimage\",\"inLanguage\":\"pt-BR\",\"url\":\"http:\/\/www.andreanolanusse.com\/pt\/wp-content\/uploads\/2011\/09\/Icon_Delphi.png\",\"contentUrl\":\"http:\/\/www.andreanolanusse.com\/pt\/wp-content\/uploads\/2011\/09\/Icon_Delphi.png\",\"width\":170,\"height\":170},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/delphi-live-templates\/#webpage\",\"url\":\"http:\/\/www.andreanolanusse.com\/pt\/delphi-live-templates\/\",\"name\":\"Delphi Live Templates | Andreano Lanusse | Tecnologia e Desenvolvimento de Software\",\"isPartOf\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/delphi-live-templates\/#primaryimage\"},\"datePublished\":\"2010-01-27T02:00:34+00:00\",\"dateModified\":\"2013-05-02T05:01:34+00:00\",\"description\":\"Entre os in\\u00fameros recursos adicionados ao Delphi nos \\u00faltimos anos para aumentar produtividade o Live Templates \\u00e9 um dos mais interessantes. Live Templates\",\"breadcrumb\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/delphi-live-templates\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.andreanolanusse.com\/pt\/delphi-live-templates\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/delphi-live-templates\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/\",\"url\":\"http:\/\/www.andreanolanusse.com\/pt\/\",\"name\":\"In\\u00edcio\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/delphi-live-templates\/#webpage\"}}]},{\"@type\":\"Article\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/delphi-live-templates\/#article\",\"isPartOf\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/delphi-live-templates\/#webpage\"},\"author\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#\/schema\/person\/620bd05e81598c3aba4781796cbe8903\"},\"headline\":\"Delphi Live Templates\",\"datePublished\":\"2010-01-27T02:00:34+00:00\",\"dateModified\":\"2013-05-02T05:01:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/delphi-live-templates\/#webpage\"},\"commentCount\":2,\"publisher\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#\/schema\/person\/620bd05e81598c3aba4781796cbe8903\"},\"image\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/delphi-live-templates\/#primaryimage\"},\"keywords\":[\"Delphi\",\"IDE\"],\"articleSection\":[\"Delphi\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\/\/www.andreanolanusse.com\/pt\/delphi-live-templates\/#respond\"]}]},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#\/schema\/person\/620bd05e81598c3aba4781796cbe8903\",\"name\":\"Andreano Lanusse\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#personlogo\",\"inLanguage\":\"pt-BR\",\"url\":\"http:\/\/0.gravatar.com\/avatar\/6a9c6f73c7c480fb826c7303288abfd3?s=96&d=mm&r=g\",\"contentUrl\":\"http:\/\/0.gravatar.com\/avatar\/6a9c6f73c7c480fb826c7303288abfd3?s=96&d=mm&r=g\",\"caption\":\"Andreano Lanusse\"},\"logo\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#personlogo\"},\"sameAs\":[\"https:\/\/twitter.com\/andreanolanusse\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/posts\/683"}],"collection":[{"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/comments?post=683"}],"version-history":[{"count":0,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/posts\/683\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/media\/4202"}],"wp:attachment":[{"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/media?parent=683"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/categories?post=683"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/tags?post=683"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}