DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


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.






Estenda seu Delphi XE
Aprenda a criar experts e plug-ins
 
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.
Existem mais de 100 interfaces na OTA, e elas são divididas em vários grupos. Não serão abordados todos os grupos nesse artigo, apenas:
"


ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



[Este post ainda não foi associado a uma sequência]
Publicidade
Autor
Vitor Luiz Rubio

Analista de Sistemas Sr. na Editora Revista dos Tribunais. Trabalha com Delphi desde a versão 3. Formado em Processamento de Dados pela FATEC-SP


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03