terça-feira, 2 de abril de 2013

Code Template



E ai galera... nesse artigo vou mostrar como criar templates para utilizar dentro de sua IDE.

Já experimentou escrever a palavra "For" no editor de código do Delphi e depois pressionar a tecla TAB, SPACE ou ENTER ??
Exatamente. O Delphi completa a estrutura de um loop "for I := 0 to List.Count - 1 do". Chamamos esse recurso de CodeTemplate.
Templates servem para agilizar a escrita de códigos corriqueiros em nossos sistemas. Quando você escreve Begin e pressiona ENTER, a palavra End é escrita automaticamente e o cursor do mouse fica entre o Begin..End, também temos aqui o uso de templates. O mais legal nisso tudo é que podemos escrever nossos próprios templates ou alterar os já existentes utilizando notação XML.
Normalmente os arquivos de template ficam salvos na pasta: 
C:\Program Files\Embarcadero\RAD Studio\7.0\ObjRepos\en\Code_Templates\Delphi 
O caminho pode variar de acordo com a sua versão do Delphi. O caminho exibido nesse artigo refere-se ao caminho encontrado no Delphi 2010.

Criando CodeTemplates para integrar com a IDE do Delphi.

Quantas vezes você precisa apresentar algum tipo de mensagem para o usuário do seu sistema? 
Quase que toda hora né... e ai o que tem que ser feito? Escrever e escrever repetidamente essas mensagens.      
Pois bem, vamos agilizar a escrita das mensagens que serão exibidas em nosso sistema:
Crie um novo documento texto no Windows (Todos sabemos como fazer isso).
Copie o conteúdo XML abaixo para esse documento.


<?xml version="1.0" encoding="utf-8" ?>

<codetemplate xmlns="http://schemas.borland.com/Delphi/2005/codetemplates"
version="1.0.0">
<template name="mbox" invoke="auto">
<point name="expr">
<script language="Delphi">
InvokeCodeCompletion;
</script>
<text>
Informe a Mensagem
</text>
<hint>
Conteúdo da Mensagem
</hint>
</point>
<point name="Caption">
<script language="Delphi">
InvokeCodeCompletion;
</script>
<text>
Título da Mensagem
</text>
<hint>
Informe o Título
</hint>
</point>
<description>
Application.MessageBox
</description>
<author>
Rafael
</author>
<code language="Delphi" context="methodbody" delimiter="|"><![CDATA[Application.MessageBox('|expr|', '|Caption|', MB_OK + MB_ICONINFORMATION);]]>
</code>
</template>
</codetemplate>



Salve o documento dentro da pasta de templates do Delphi com a extensão (.xml). Lembrando que o caminho varia de acordo com a sua versão do Delphi.

Abra o Delphi e no editor de código digite mbox e pressione TAB, veja o resultado. Se tudo deu certo algo como a linha abaixo deve ser visualizada:
Application.MessageBox('Informe a Mensagem', 'Título da Mensagem', MB_OK + MB_ICONINFORMATION);

Bem galera, com isso vimos um pouco sobre como utilizar templates para agilizar o nosso trabalho (não é preguiça de escrever é o jeito RAD de ser).
O arquivo é auto explicativo na sua grande parte, mas se precisarem de alguma ajuda para interpretar, entrem em contato que terei prazer em deixar as dicas. Grato a todos e bom uso.

7 comentários :

Unknown disse...

Fala ai, meu irmão.
Como sugestão de um pentelho que é ruim de XML como eu, porque não colocou em outra cor a parte que é variável no template ?
Tu botou 'vaira' em vez de 'varia' (que cara mais chato).
Aquela do 'jeito RAD de ser' matou a pau.
Abração.

Unknown disse...

Buenas caro amigo "detalhista" Joel. huashauhs

Quanto tempo meu velho. Só pra te tranquilizar, editei o XML do Post e corrigi o português em "vaira" conforme solicitado.

Mamãe sempre disse pra eu estudar, mas decidi ser programador, hehehe.

Grande abraço!.

targuz disse...

Ola rafael, gostei do seu post sobre "code template", mas no conseguir roda no Delphi XE. o pode ser Obrigado.

Unknown disse...

Olál targuz. Pode indicar o que realmente ocorre pra vc? Uso assim no XE2 e 3 e não tive problemas.

Aguardo retorno.

Targuz disse...

Ola Rafael, fiz como manda o figurino, na hora de testar o código no XE não aparece nada e não da nenhuma msg.
Grato pela atenção.

Unknown disse...

Podes me adicionar nos teus contatos do GMail que mantemos contato e resolvemos pra vc essa parada.

rafael.br07@gmail.com

Targuz disse...

Ok.. ja add..
Muito obrigado.