Esse artigo faz parte da revista Clube Delphi edição 47. Clique aqui para ler todos os artigos desta edição

Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML. 

 

Editores de Componentes na Prática

Parte I: Conceitos e configuração automática do acesso com dbExpress

Com um duplo clique em um ImageList da VCL você verá o editor que auxilia na configuração de suas imagens; ao fazer o mesmo em um componente descendente de TDataSet (como

TClientDataset, TSQLQuery etc.), será exibido o conhecido Field Editor. Essas telas (algumas vezes mini-aplicativos completos) que simplificam a configuração de componentes são chamadas de Editores de Componente, e são o assunto desta série de artigos em duas partes.

Apresentaremos dois exemplos construídos passo a passo. O primeiro, bem simples, mostra conceitos básicos através da criação de um editor no estiloOlá Mundopara o componente Button da VCL. O segundo demonstra como criar um editor para o componente SQLQuery do dbExpress, que pode ser bastante útilele permite que, com apenas alguns cliques seja configurado um acesso dbExpress completo, usando os componentes SQLConnection, o próprio SQLQuery, um DataSetProvider, um ClientDataSet e um DataSource, sem que seja necessário inserir esses componentes no formulário ou no Data Module, nem conectá-los manualmente.

 

Nota Um assunto relacionado ao tratado aqui é a criação de Editores de Propriedade. Veja mais no artigo de Ivan Martins, na Edição 37.

Conceitos básicos

Vamos ao primeiro exemplo. Clique em File|New>Other>Package (Figura 1) e no editor do pacote clique no botão Options. Clique na aba Description e na opção Description digite “Button - Editor de componente”. Como um editor de componente é utilizado somente pela IDE do Delphi (ele não é compilado junto com aplicações), devemos marcar a opção Designtime only em Usage Options (Figura 2).

 

Figura 1. Criando um pacote

 

Figura 2. Configurando o pacote como designtime e fornecendo uma descrição

 

Clique em File|New>Unit e altere a seção interface da unit como mostrado a seguir:

 

uses

  DesignEditors;

 

type

  TMeuEditor = class (TComponentEditor)

  public

    function GetVerbCount : integer; override;

    function GetVerb (Index : integer): string; override;

    procedure ExecuteVerb (Index : integer); override;

    procedure Edit; override;

  end;

 

  procedure Register;

 

Salve o pacote e a unit, mantendo os nomes padrões. Como você pode ver, para criar um editor de componente devemos criar uma subclasse de TComponentEditor (declarada na unit DesignEditors.pas)ou uma subclasse de um de seus descendentes –, e redefinir seus métodos virtuais (override).

Pressione Shift+Ctrl+C para criar os cabeçalhos de implementação dos métodos, e implemente o método Edit da seguinte forma (esse método é disparado quando é dado um duplo clique sobre o componente):

 

...

Quer ler esse conteúdo completo? Tenha acesso completo