segunda-feira, 17 de setembro de 2007

Construção de Componentes IV

Na seqüência de artigos sobre criação de componentes você pode observar que podemos criar um componente funcional, pronto para ser instalado na paleta de Componente. Vimos que é possível testar o novo componente, tanto em tempo de design, quanto em runtime Vimos também que, mesmo depois de instalado, você pode acrescentar novas funcionalidades, e características, recompilar e re-instalar o componente e continuar a testa-lo.

Em seguida listaremos alguns passos básicos que você deve executar sempre que for criar um componente novo:

1 Criar uma unidade (unit) para o componente novo:
No menu File ► New ►Unit

2 Derivar seu componente de um tipo de componente pré-existente, descendente direta ou indiretamente da VCL.

3 Adicionar novas properties (propriedades), methods (métodos), e events (eventos).

4 registrar seu componente na IDE.

5 Criam um bitmap para o componente. De maneira que na palheta de componentes da IDE ele seja exibido com uma imagem exclusiva, podendo assim ser identificado facilmente.

6 Criam um pacote (uma biblioteca de dinâmico-ligação especial – Uma Package) de forma que possa organizar logicamente seus componentes ao registrá-los e instala-los na IDE.

7 Criam um arquivo de Ajuda para seu componente, explicando e suas propriedades, métodos, e eventos, facilitando para outros desenvolvedores a consumo do seu componente.


Criando um bitmap para o componente criado.

Conforme mencionado acima, vamos criar uma imagem, bitmap para representar um componente qualquer criado, na palheta de componentes, aonde foi instalado. Na própria IDE do Delphi existe uma ferramenta para editar imagens. Essa ferramenta, é usada para criarmos os bitmaps, os quais podemos associa-los aos componentes que construímos.

Passo 1: No menu Tools ► Image Editor, você executa o editor de imagem ao qual me refiro.




Passo 2: No menu, do “Image Editor” (do Delphi), File ►New ► Component Resource File (.dcr)

Passo 3: Na janela de diálogo, cujo o título é “untitled1.dcr”, na palavra “Contents” clike com o botão direito do mouse, escolha “New | Bitmap”.



Passo 4: No próximo diálo, será solicitado as dimensões do bitmap. Altere o valor para 24 pixels tanto, para altura (Height), quanto para largura (Width). Em colors, selecione VGA (16 colors).



Passo 5: Em resposta, na tela é criado sub-itens abaixo de “Contents”: Bitmap, abaixo dele, Bitmap1. Com o botão direito do mouse sobre “Bitmap1”, selecione “Rename” para nomearmos nosso arquivo.



Nomeie o bitmap1 com o mesmo nome da classe que define o componente criado por você, totalmente em caixa alta. Por exemplo, usaremos o nosso “TZNDisplayTimerUltimate”. Portanto, re-nomeie o bitmap1 com o nome dessa classe, em caixa alta, veja a seguir: “TZNDISPLAYTIMERULTIMATE”.



Passo 6: Com um duplo click sobre “TZNDISPLAYTIMERULTIMATE” você poderá iniciar a edição do bitmap. Desenhe seu bitmap na tela conforme imagem abaixo.



Passo 7: Para salvar, feche a imagem (menu file | Close), em seguida salve no mesmo diretório onde se encontra a sua package.



Passo 8: Agora, basta codificar a diretiva de compilação que inclui o arquivo bitmap que criamos na package que contém o componente para o qual a imagem foi criada. No exemplo em questão, estamos trabalhando com a mesma package dos artigos anteriores: “ZnConstruindoComponenetes”. Portanto, no Delphi, abra a package e na unit ““ZnConstruindoComponenete.dpk” e codifique conforme o trecho abaixo:



{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES OFF}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$IMPLICITBUILD OFF}

requires
rtl,
vcl,
designide;

contains
ZnCombo in 'ZnCombo.pas',
ZNDisplayTimerUltimate in 'ZNDisplayTimerUltimate.pas',
ZNDisplayTimerProgress in 'ZNDisplayTimerProgress.pas',
ZnGraphicSeta in 'ZnGraphicSeta.pas',
ZNNode in 'ZNNode.pas',
ZnAresta in 'ZnAresta.pas';

end.



Compile e SALVE a package, conforme demonstrado em artigos anteriores.



Um comentário:

  1. Hi, this is not so related to your page, but it is the site you asked me 1 month ago about the abs diet. I tried it, worked well. Well here is the site

    ResponderExcluir

 
BlogBlogs.Com.Br