Este é um post disponível para assinantes MVPEste 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.
ClubeDelphi 125
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da ClubeDelphi 125
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da ClubeDelphi 125
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
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 MVPEste post também está disponível para assinantes da ClubeDelphi DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais!

[Este post ainda não foi associado a uma sequência]
Você está em:
canal Delphi
Vitor Luiz Rubio
Space do autor
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



0
0
