200 likes | 344 Views
Criação de Componentes em Delphi. Autor: Christiano Lima Santos Orientador: Prof. Antônio Monteiro Freire. Sumário. Motivação Conceito de Componente Hierarquia dos Componentes Algumas Classes Já Existentes Controle de Acesso aos Dados Passos Para Criar um Componente
E N D
Criação de Componentes em Delphi Autor: Christiano Lima Santos Orientador: Prof. Antônio Monteiro Freire
Sumário • Motivação • 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
Motivação • Vantagens do Delphi: • Orientado a Objetos Mais legibilidade e praticidade; • Ferramenta RAD desenvolvimento fácil e rápido de sistemas; • Trabalha com componentes aumenta a reusabilidade; • Delphi permite a criação de componentes a partir dos já existentes;
Conceito de Componente • Componentes são objetos descendentes do tipo TComponent, possuindo então a capacidade de ser mostrado na paleta de componentes e também de operar em "Design-time“; • São objetos (visuais ou não) aos quais são associados propriedades, métodos e eventos;
Conceito de Componente • Propriedade • São formas seguras de acesso a atributos do componente; • Permitem a alteração de valores em design-time; • Evento • São conexões entre acontecimentos e determinadas rotinas; • Sempre que um acontecimento ocorrer (por exemplo, clique do mouse), o evento associado é disparado e então dá início à rotina associada; • Método • São funções e procedimentos, disponíveis ou não ao usuário final;
Hierarquia dos Componentes TComponent ... TButtonControl TButton TRadioButton Button 1 Button 2 RadioButton 1
Algumas Classes Já Existentes... • TComponent - Componentes não visuais; • TWinControl - se for necessário que o componente tenha "handles". • TGraphicControl - Componentes visuais que não 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 inacessível; • Protected acessível somente aos descendentes; • Public acessível a todos; • Published acessível e visível 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 características do novo componente; • Somar as propriedades, eventos e métodos necessários 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 visível e invisível (“pisca”) alternadamente; • Devemos então derivá-lo da classe TLabel; • As únicas units que usaremos são: Classes, StdCtrls, ExtCtrls; • É necessário termos um Timer e a velocidade nele, então 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 • Método 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 então 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); //obrigatório! 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; //obrigatório! end;
Referências Bibliográficas • Help do Borland Delphi 6 • http://www.dpi.ufv.br/downloads/cursoKylix/Material/Apostilas/ccind.htm
Exercício • Criar um componente TGradientImage que exibe um gradiente de cores em um retângulo.