GARANTIR DESCONTO

Fórum Criar comp em tempo de execução com eventos onclick e outros #277500

15/04/2005

0

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


Levisants

Levisants

Responder

Posts

16/04/2005

Raserafim

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.

...
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.


Responder

Gostei + 0

16/04/2005

Levisants

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.


Responder

Gostei + 0

16/04/2005

Marco Salles

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..


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar