Fórum Atribuindo Eventos dinamicamente? Quem sabe? #196826

24/11/2003

0

Galera, tô com um problema.

Preciso atribuir um evento dinamicamente, mas dá sempre uma msg de erro na compilação.

Dêem uma olhada:

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
procedure cabec(Sender: TObject);

var
Form1: TForm1;

implementation

{$R *.dfm}

//O evento OnPrintHeader recebe o mesmo parâmetro
procedure cabec(Sender: TObject);
Begin
//apenas um teste
(Sender as Tbasereport).printxy(0,0,´teste´);
end;


procedure TForm1.Button1Click(Sender: TObject);
Var
Rvsys1:TrvSystem;
begin
Rvsys1:=TrvSystem.Create(self);
Rvsys1.OnPrintHeader:=cabec;
Rvsys1.execute;
end;

Qd mando compilar, dá este erro:
Incompatible types: Method pointer and Regular procedure.

Não entendi nada.
Como posso resolver este problema?
Alguem q usa o Rave programado, sabe como fazer para executar o relatório dentro de uma função? Pois é isto q estou tentando fazer.

Obrigado


Aledeol

Aledeol

Responder

Posts

24/11/2003

Beppe

Então o que falta?


Responder

Gostei + 0

24/11/2003

Beppe

Então o que falta?


Respondi na questão errada! :oops:

Um evento só pode receber um método, que é uma rotina dentro de uma classe, então você coloca sua procedure dentro de uma classe.

Então é só puxar cabec pra dentro do form. Ex: TForm1.cabec(...)


Responder

Gostei + 0

25/11/2003

Aledeol

Valeu, funcionou.

Mas mesmo assim, isto não me soa bem.

Deve haver uma outra forma de colocar reports programados do Rave em uma função.


Obrigado


Responder

Gostei + 0

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

Aceitar