Na verdade não é um TButton que estou trabalhando, é um TJvDesktopAlert. Usei o 
TButton para tentar ser mais simples. Peço desculpas pela explicação ruim. Vou 
tentar ser mais claro: copiei apenas a parte relevante do código, na qual 
explico as partes em negrito:
 
- JvDesktopalert: é o component do Project Jedi, que mostra um aviso semelhante 
ao do MSN Messenger;
- Mens: registro que cria o JvDesktopalert. Como serão criados vários 
dinamicamente, optei por fazer assim.
- alarmes: variável de referência ao record.
- OnMessageClick: Evento nativo do componente JvDesktopalert.
- EventoClick: é o meu evento em si, que teoricamente dispara o OnMessageClick. 
Esse evento está perdido lá embaixo, pois não sei onde colocá-lo.
 
Espero ter esclarecido. Agradeço antecipadamente qualquer ajuda.
 
 
 
 
unit un_hospedagens;
 
interface
 
uses
  (...), JvDesktopAlert;
 
type
  TDespertador = record
  Mens      : TJvDesktopAlert;
  end;
 
  Tfo_hospedagens = class(TForm)
  private
    { Private declarations }
    alarmes : array of Tdespertador;
  public
    { Public declarations }
  end;
 
var
  fo_hospedagens: Tfo_hospedagens;
 
implementation
 
{$R *.dfm}
 
procedure Tfo_hospedagens.btAlarmeClick(Sender: TObject);
begin
      setlength(alarmes,length(alarmes) + 1);
      with alarmes[high(alarmes)] do
       begin
        Mens := TJvDesktopAlert.Create(self);
        with Mens do
         OnMessageClick := EventoClick;
       end;
     end;
end;
 
 
// segue o evento perdido
procedure EventoClick;
var DA: TJvDesktopAlert;
begin
  DA.Close(FALSE);
end; 
 







----- Mensagem original ----
De: Ricardo César Cardoso <[EMAIL PROTECTED]>
Para: delphi-br@yahoogrupos.com.br
Enviadas: Quinta-feira, 20 de Setembro de 2007 10:15:03
Assunto: Re: Res: [delphi-br] componentes criados dinamicamente

Agora vc que me confundiu: 

Vc tem mais de um tipo de OnClick? Por exemplo se clicou no botão 1 faz 
determinado procedimento e se for em botão 2 faz outro? Pq se for assim, basta 
vc codificar os eventos e sugeriria um type para tratar.

Sds,
Ricardo.

Fabinho <gatascheguei@ yahoo.com. br> escreveu: Obrigado pela atenção, Ricardo. 
Mas o problema é que esse meu TButton é criado um array dinâmico. Suponho que 
eu preciso de um desses três:

Criar uma classe para tratar o evento;
Criar um type para tratar o evento;
Criar uma procedure of object para tratar o evento;

E agora?

----- Mensagem original ----
De: Ricardo César Cardoso <ricardo_engsoft@ yahoo.com. br>
Para: [EMAIL PROTECTED] os.com.br
Enviadas: Quinta-feira, 20 de Setembro de 2007 9:37:44
Assunto: Re: [delphi-br] componentes criados dinamicamente

Tá na mão:

/*********** ********* ****/
procedure TForm1.FormMouseDow n(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var b:tbutton;
begin
b:=Tbutton.create( self);
b.visible:=false;
b.parent:=self;
b.left:=x;
b.top:=y;
b.name:='Btn' +inttostr( contador) ;
b.Caption:=' Clique-me' ;
inc(contador) ;
b.visible:=true;
b.onclick:=clicou; // <= aqui está o que vc precisa. É só descrever o 
procedimento na procedure "Clicou"
end;

procedure TForm1.clicou( sender: TObject);
begin
ShowMessage( 'Clicou!! !');
end;
/*********** ********* ***/

Fabinho <gatascheguei@ yahoo.com. br> escreveu: Senhores, criei um componente 
dinamicamente, mas não consigo associar um evento a ele. Por exemplo, se eu 
criar um TButton, quero criar um evento Onclick pra ele. Como faço?

Flickr agora em português. Você clica, todo mundo vê.
http://www.flickr. com.br/

[As partes desta mensagem que não continham texto foram removidas]

_

Flickr agora em português. Você clica, todo mundo vê. Saiba mais.

[As partes desta mensagem que não continham texto foram removidas]

Flickr agora em português. Você clica, todo mundo vê.
http://www.flickr. com.br/

[As partes desta mensagem que não continham texto foram removidas]





Flickr agora em português. Você clica, todo mundo vê. Saiba mais.

[As partes desta mensagem que não continham texto foram removidas]





      Flickr agora em português. Você clica, todo mundo vê.
http://www.flickr.com.br/

[As partes desta mensagem que não continham texto foram removidas]

Responder a