Esse artigo faz parte da revista Clube Delphi edição 15. 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. 

 

Criando um Componente Data-Aware

Conheça o objeto TFieldDataLink

 

Na edição anterior, aprendemos a criar dois componentes visuais no Delphi. Vimos como criá-los à partir do zero, sendo um componente totalmente novo e também a criá-los sendo filho de um componente já existente e apenas modificando suas funcionalidades e/ou adicionando novas. Nesta edição veremos a última parte dessa série de componentes e criaremos um componente Data-Aware, ou seja, linkado à banco de dados com as propriedades DataField e DataSource.

Componentes Data-Aware se caracterizam pela capacidade de se conectarem a componentes filhos da classe TDataSet. Esta conexão se dá, normalmente, através de um componente TDataSource. O componente TDBEdit, por exemplo, é um componente Data-Aware. Com ele é possível manipular de maneira extremamente fácil o conteúdo de tabelas dos banco de dados.

 

Criando um componente Data-Aware

 

Nosso último componente será um Data-Aware derivado de um TPanel. Esse componente terá como funcionalidade a visualização de cores, sendo que se um registro conter um valor negativo, aparecerá uma mensagem informando que não existe cor definida. Lembre-se que você também pode criar um componente Data-Aware totalmente novo.

O componente se chamará TDBPanelColor.

 

Objeto de Ligação

 

Depois de criada a unit precisamos criar a conexão com a origem dos dados que precisamos apresentar. Esta conexão é efetuada usando uma classe especial que o Delphi possui: TFieldDataLink.

Esta classe é implementada de forma a disparar alguns eventos quando situações especiais acontecem na origem dos dados. Em nosso exemplo usaremos o evento OnDataChange que é disparado todas as vezes que há uma alteração no buffer de dados. Vejamos como deve ficar nossa unit:

 

unit DBPanelColor;

 

interface

 

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, DBCtrls;

 

type

...

Quer ler esse conteúdo completo? Tenha acesso completo