Pessoal

Nunca tive de criar nada em run-time que precisasse implementar eventos 
criados também em run-time. E Jamais criei qualquer componente.
Agora, me veio uma necessidade de criar um painel de mensagens 
específico, com as características do sistema, e estou esbarrando em um 
problema...

Criar o painel em run-time, tudo bem... eu fiz e isso é mole... meu 
problema é fazer a implementação do método onClick de um determinado 
botão que está no painel para este fechar... Procurei umas informações 
sobre o TNotifyEvent, mas não consegui ver como se aplica, pois eles 
implementam mais exemplos paa a criação de componente, e não é isso que 
desejo... Quero apenas apresentar um painel partindo de dentro de um 
procedure que está na minha biblioteca de funções genéricas...

Meu código é esse:

// Início do Codigo
Procedure PainelMensagem(TopMsg, Msg: String; xPai:TWinControl);
var
  Panel1: TPanel;
  Label1: TLabel;
  SpeedButton1: TSpeedButton;
  Panel2: TPanel;
  Procedure fechapainel;
     begin
       Panel1.Visible := False;
       Panel1.Destroy;
     end;
begin
  Panel1 := TPanel.Create(application);
  Label1 := TLabel.Create(application);
  SpeedButton1 := TSpeedButton.Create(application);
  Panel2 := TPanel.Create(application);
  //Panel1.Parent := xPai;
  with Panel1 do
  begin
    Name := 'Panel1';
    Parent := xPai;
    Left := 175;
    Top := 159;
    Width := 413;
    Height := 296;
    BevelInner := bvLowered;
    BorderWidth := 3;
    ParentFont := False;
    TabOrder := 0;
  end;
  with Label1 do
  begin
    Name := 'Label1';
    Parent := Panel1;
    Left := 16;
    Top := 46;
    Width := 380;
    Height := 204;
    Alignment := taCenter;
    AutoSize := False;
    Caption := 'Label1';
  end;
  with SpeedButton1 do
  begin
    Name := 'SpeedButton1';
    Parent := Panel1;
    Left := 175;
    Top := 262;
    Width := 63;
    Height := 23;
    Caption := '&Ok';
    Flat := True;
    OnClick := FechaPainel
  end;
  with Panel2 do
  begin
    Name := 'Panel2';
    Parent := Panel1;
    Left := 5;
    Top := 5;
    Width := 403;
    Height := 29;
    Align := alTop;
    Caption := TopMsg;
    Color := 8404992;
    ParentFont := False;
    TabOrder := 0;
  end;
  With panel1 do
     begin
       Visible := True;
       Top := Trunc( ((parent.Height - height) / 2) );
       left := Trunc( ((parent.width - width) / 2) );
     end;
end;

// Fim do Codigo

Está me retornando um erro de
Incmpatible types - > 'Method Pointer and regular procedure'


Luz pls!!!


Sds

__________________________________
Emanuel Coutinho
Salvador-Ba-Brasil


Responder a