Criar comp em tempo de execução com eventos onclick e outros
Boa noite como que eu faço pra criar um componente com um evento eu sei criar um componente normal, mas com evento ainda não sei como fazer.
Teria como vocês me ajudarem, outra coisa que não consegui fazer é o seguinte eu tentei criar um scrollbox criado em tempo de execução e dentro dele tentei criar outros componentes mas não consegui.
Preciso de uma ajuda...
Obrigado
Teria como vocês me ajudarem, outra coisa que não consegui fazer é o seguinte eu tentei criar um scrollbox criado em tempo de execução e dentro dele tentei criar outros componentes mas não consegui.
Preciso de uma ajuda...
Obrigado
Levisants
Curtidas 0
Respostas
Raserafim
15/04/2005
para criar um componente dinamicamente vc deve basicamente, e principalmente: declarar uma variável do tipo do objeto que vc quer criar; instanciar o objeto; e definir a propriedade Parent.
desta forma vc cria um componente dinamicamente. para colocar um componente dentro do outro, basta na proipriedade Parent vc colocar o nome do componente que será o pai.
... uses ......, StdCtrls; //declare a unit q tem o tipo de classe q vc vai usar. ... var .....; Botao: TButton; implementation ... Botao := TButton.Create(Self); Botao.Parent := Self; //defina as outras propriedades
desta forma vc cria um componente dinamicamente. para colocar um componente dentro do outro, basta na proipriedade Parent vc colocar o nome do componente que será o pai.
GOSTEI 0
Levisants
15/04/2005
Isso já consegui fazer, valeu
Mas agora gostaria de saber como por enventos em um objeto criado em tempo de execução.
Tipo assim eu crio um botao e nele eu crio uma rotina que ira executar um arquivo.
Pra cada objeto ele irá criar um evento e o mesmo irá executar uma rotina.
Mas agora gostaria de saber como por enventos em um objeto criado em tempo de execução.
Tipo assim eu crio um botao e nele eu crio uma rotina que ira executar um arquivo.
Pra cada objeto ele irá criar um evento e o mesmo irá executar uma rotina.
GOSTEI 0
Marco Salles
15/04/2005
Mas agora gostaria de saber como por enventos em um objeto criado em tempo de execução.
A Idéia esta na teoria de Ponteiro de métodos... Voce deve atribuir um método do formulário ao componente que voce esta criando em RumTime... O Método será executado , mesmo que voce o tenha definido dentro de outra classe (neste caso citado , foi o Formulário)
[b:42d37bd575]Assim no Formulário definiremos o método :[/b:42d37bd575]
type
TForm1 = class(TForm)
procedure ClickBotao(sender:Tobject);
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.DFM}
[b:42d37bd575]implementaremos o método[/b:42d37bd575]
procedure TForm1.ClickBotao(sender: Tobject); begin Showmessage(´evento on click´); end;
Veja , foi definido o método no formulário e foi implementado o método...
Agora simplismente podemos atribuir ao método OnClick De Um Botão Criado em RumTime a o método Compátivel do Objeto Form
Veja:
Botao := TButton.Create(Self); Botao.Parent := Self; //defina as outras propriedades Botao.OnClik:=Form1.ClickBotao; //atribuição do método
Esta tecnica pode ser extendida para muitos componentes e muitos outros eventos..
GOSTEI 0