Você está na página 1de 20

Criao de Componentes em Delphi

Autor: Christiano Lima Santos Orientador: Prof. Antnio Monteiro Freire

Sumrio
Motivao Conceito de Componente Hierarquia dos Componentes Algumas Classes J Existentes Controle de Acesso aos Dados Passos Para Criar um Componente Construindo um componente visual: BlinkLabel

Motivao
Vantagens do Delphi:
Orientado a Objetos Mais legibilidade e praticidade; Ferramenta RAD desenvolvimento fcil e rpido de sistemas; Trabalha com componentes aumenta a reusabilidade;

Delphi permite a criao de componentes a partir dos j existentes;

Conceito de Componente
Componentes so objetos descendentes do tipo TComponent, possuindo ento a capacidade de ser mostrado na paleta de componentes e tambm de operar em "Design-time; So objetos (visuais ou no) aos quais so associados propriedades, mtodos e eventos;

Conceito de Componente
Propriedade
So formas seguras de acesso a atributos do componente; Permitem a alterao de valores em design-time;

Evento
So conexes entre acontecimentos e determinadas rotinas; Sempre que um acontecimento ocorrer (por exemplo, clique do mouse), o evento associado disparado e ento d incio rotina associada;

Mtodo
So funes e procedimentos, disponveis ou no ao usurio final;

Hierarquia dos Componentes


TComponent

...
TButtonControl

TButton

TRadioButton

Button 1

Button 2

RadioButton 1

Algumas Classes J Existentes...


TComponent - Componentes no visuais; TWinControl - se for necessrio que o componente tenha "handles". TGraphicControl - Componentes visuais que no tenham "handles (esta classe tem os metodos Paint e Canvas) TCustomControl - Esta classe tem "handle" de janela, eventos e propriedades comuns e, principalmente, os metodos Canvas e Paint.

Controle de Acesso aos Dados


Todo componente em Delphi um objeto proveniente da classe definida;
Encapsulamento dos Dados;

H quatro tipos de controle de acesso:


Private inacessvel; Protected acessvel somente aos descendentes; Public acessvel a todos; Published acessvel e visvel no Object Inspector;

Passos Para Criar um Componente


Derivar o componente novo a partir de outro existente, o qual servir como base para somar as caractersticas do novo componente; Somar as propriedades, eventos e mtodos necessrios para o componente novo. Registrar o componente, inclusive o bitmaps adicional, arquivos de ajuda, etc; Instalar o componente novo na paleta de componentes;

Construindo um Componente Visual: BlinkLabel


Trata-se de um componente que se torna visvel e invisvel (pisca) alternadamente; Devemos ento deriv-lo da classe TLabel; As nicas units que usaremos so: Classes, StdCtrls, ExtCtrls; necessrio termos um Timer e a velocidade nele, ento vamos inseri-los...

procedure TBlinkLabel.MudaVelocidade (valor : integer); Begin If FVelocidade <> valor then begin FVelocidade := valor; if valor < 0 then FVelocidade:=0; if FVelocidade = 0 then FTimer.Enabled:=False else FTimer.Enabled:=True; FTimer.Interval:=FVelocidade; Visible:=True; end; end;

Construindo um Componente Visual: BlinkLabel


Mtodo Piscar;
Ser disparado pelo evento OnTimer de nosso FTimer;

protected procedure piscar(Sender : TObject);

procedure TBlinkLabel.piscar(Sender : TObject); Begin if FTimer.Enabled then Visible := not(Visible); end;

Construindo um Componente Visual: BlinkLabel


Definir ento a propriedade Velocidade; published property Velocidade: integer read FVelocidade write MudaVelocidade default 400;

Construindo um Componente Visual: BlinkLabel


Definindo o construtor e destruidor;
public constructor Create(AOwner : TComponent); override; destructor Destroy; override;

Construindo um Componente Visual: BlinkLabel


constructor TBlinkLabel.Create(AOwner : TComponent); begin inherited Create(AOwner); //obrigatrio! FTimer := TTimer.Create(Self); //criar objetos FVelocidade := 400; FTimer.Enabled:=True; FTimer.OnTimer:=piscar; FTimer.Interval:=FVelocidade; end;

Construindo um Componente Visual: BlinkLabel


destructor TBlinkLabel.Destroy; begin FTimer.Free; //destruir objetos criados inherited destroy; //obrigatrio! end;

Referncias Bibliogrficas
Help do Borland Delphi 6 http://www.dpi.ufv.br/downloads/cursoKyli x/Material/Apostilas/ccind.htm

Exerccio
Criar um componente TGradientImage que exibe um gradiente de cores em um retngulo.

Você também pode gostar