Estenda seu Delphi XE - Artigo Clube Delphi 125
Neste artigo será mostrado como usar a OTA (Open Tools API) para criar experts. Experts são extensões e plug-ins para o Delphi, que vão desde editores de código a organizadores de componentes.
Atenção: esse artigo tem um vídeo complementar. Clique e assista!
Neste artigo será mostrado como usar a OTA (Open Tools API) para criar experts. Experts são extensões e plug-ins para o Delphi, que vão desde editores de código a organizadores de componentes.
Para que serve
Experts são extensões para Delphi com os mais variados objetivos. Eles visam diminuir o tempo que se gasta com tarefas repetitivas, como renomear componentes, trocar toda uma classe de componentes, organizar e formatar código, dar check-in ou check-out em um repositório de uma ferramenta de versionamento, backup dos fontes entre outros.
Em que situação o tema é útil
Sempre que existir a necessidade de fazer alguma tarefa repetitiva pode existir algum expert que auxilie. Se não existir pode ser feito um. Pode-se inclusive tornar o Delphi muito mais útil por meio de experts e vender assim produtos baseados em experts comerciais.
Resumo do DevMan
Este artigo abordará o básico de experts: quais as interfaces devem ser usadas, como implementá-las, como criar, como debugar, e como tornar o desenvolvimento de software mais ágil com a ajuda deles. Serão mostrados alguns experts para agilizar tarefas rotineiras do nosso dia – a – dia. Com isso você poderá não só criar experts para Delphi, mas para C++ Builder também. Eles auxiliam a economizar tempo e dinheiro automatizando tarefas, como deploy por exemplo.
Alguns experts estão tão consolidados na comunidade Delphi que se tornaram essenciais. Quem hoje ficaria sem o GExperts, ou o CNExperts? Sem contar os vários plug-ins que já vêm com o próprio Delphi, por exemplo a versão XE já vem com um plug-in para integração com o SVN.
Trabalhar com experts envolve criar bibliotecas (DLL ou BPL) que serão usadas pelo próprio Delphi e podem interagir com quase qualquer janela do Delphi, desde as janelas de código até as de edição de formulário. Para desenvolver essas bibliotecas é necessário implementar algumas interfaces que são pouco conhecidas e pouco documentadas do Delphi. É possível encontrar na internet material a respeito da OTA (Open Tools API), mas sempre em inglês, desatualizado e fragmentado.
Este artigo não visa documentar toda a OTA porque muitas páginas seriam necessárias para isso. O objetivo deste é apenas introduzir o leitor nas técnicas de criação de complementos para o IDE fazendo um extenso uso de interfaces, packages e POO. Para que não seja muito extenso e enfadonho assume-se que o leitor já está familiarizado com esses assuntos.
É um pré-requisito para o entendimento desse artigo um conhecimento sólido em criação de pacotes e BPLs e em interfaces e POO. Outro pré-requisito importante é o uso da versão Architect do produto, pois as versões inferiores não possuem o código fonte da ToolsAPI.pas.
É necessário compreender os perigos de criar partes do IDE do Delphi. Um acesso a um objeto destruído ou qualquer erro causará instabilidade. Por isso existe a necessidade de manter-se um bom programa de backup e / ou controle de versão e de se ativar o auto-save para as units. Há uma lista de interfaces que usaremos neste artigo, mas a Open Tools API tem muitas outras. Ler o código da unit ToolsAPI.pas e os comentários será essencial para seu aprendizado.
Ao se implementar várias interfaces muitos métodos necessitarão apenas existir, não precisando ser implementados com um corpo. Isso porque o Delphi pode já ter outras classes de wizards e plug-ins já registrados que implementam esses métodos e fazem alguma coisa. Além disso, muitas funções devem retornar string vazia ou qualquer outro valor padrão para que o Delphi decida automaticamente qual valor usar. Certos métodos são implementados apenas em wizards mais complexos.
Qualquer wizard ou expert para o Delphi deve ser registrado. Quando isso ocorre um objeto da classe que você criou é adicionado em uma lista de objetos do mesmo tipo ou interface. Isso quer dizer que nem todos os experts que você escrever substituirão funções do Delphi. Alguns se agregarão e executarão antes ou depois das funções nativas do Delphi, e mesmo assim, dependendo do tipo de Wizard, você pode escolher se o nativo do Delphi será usado ou não.
Muitas coisas o Delphi faz sozinho, sem usar nenhum wizard, os wizards são apenas “pontos de entrada/comunicação” com as funções do Delphi.
É interessante que alguns métodos de alguns tipos de interfaces da OTA nunca serão chamados pelo IDE. Isso acontece porque esses métodos foram reservados para uma implementação futura e estão aguardando o dia em que a equipe de desenvolvimento do Delphi fará implementações no IDE que chamem esses métodos. Vale salientar que a OTA nunca foi completamente documentada e que está em evolução. A cada versão do Delphi ela muda um pouco."
[...] continue lendo...Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo