Marcos P. M. de Souza wrote:

> Estive dando um olhada na imprementação de classes e vi e os componentes são
> na verdade um caso especial de classes.
> Existem variaos componetes na internet que vem com o código fonte junto.
>  
> O q eu quero saber é se posso e como devo fazer para utilizar os códigos
> fonte desses componetes como se fossem classes ...nao como componentes
> instalados...
> Desse modo, no turbo delphi, poderia utilizar as classes de um componentes e
> utiliza-lo sem instalar..

Ao abrir o .dfm -- o formulário de um projeto -- você pode ver o nome de 
cada objeto que você possui, seguido por sua classe, e abaixo suas 
propriedades e outros objetos que o compõe. Por exemplo:

Object Panel1: TPanel
   Left = 64
   Top = 32
   Object Edit1: TEdit
     Left = 32
     Text = 'Conteudo'
     Top = 12
   end
end

Para você criar estes objetos em Runtime, basta:

Panel1 := TPanel.Create(Self);
Panel1.Left := 64;
Panel1.Top := 32;
Edit1 := TEdit.Create(Self);
Edit1.Parent := Panel1;
Edit1.Left := 32;
Edit1.Text := 'Conteudo';
Edit1.Top := 12;

ou seja, copiar o que está no dfm e adaptar para a linguagem. Use o 
Parent para indicar aonde que o componente está inserido visualmente, 
por exemplo, o Edit acima está dentro de um Panel. Se o componente 
estiver diretamente no formulário, basta ignorar o Parent.

Mas você tem alguns problemas ao usar esta abordagem:

1. você não consegue ver o resultado em tempo de design, tem que rodar 
seu programa;

2. você não consegue utilizar o expert de algum componente, pois o 
expert tem que ser registrado na ide para que possa funcionar.

3. você fica mais dependente da documentação porque não consegue ver as 
propriedades do componente. Aqui o Code Insight ajuda bastante.

--
Joao Morais

Responder a