Criando Componente !!!!
Estou criando uma componente derivando da Library RxLib. Estou decendendo da TRxDbGrid, pois estou otimizando seu uso para facilitar meu trabalho, fazendo com que eu posso colocar um comando SQL na própria grid e a grid cuida do resto pra mim, podendo também selecionar uma campo para ordenar e sua respectiva forma de ordenação. A RxDbGrid possui um evento que é o OnGetBtnParam, que desenha do lado do título da coluna uma imagem, e estou usando isso para mostar a forma de ordenação da coluna. Mas estou com um problema, quero fazer com que o componente já faça isso pra mim. A declaração desse evento é uma procedure () of object; e as variáveis usadas para setar o desenho são para a própria unit, mas o evento possibilita vc setar essas variáveis (são do tipo var NomeVariavel !!) . Agora eu não sei como eu chamo essa procedure pra fazer antes de executar o próprio evento que pode ainda ser setado na grid, as validações para eu desenhar. Alguém pode me dizer como poderia fazer isso ? obrigado. Rafael Heise
Rafael Heise
Curtidas 1
Respostas
Anonymous
01/02/2003
seguinte cara, num sei se entendi direito mas lá vai.
primeiro vc criar uma variável assim
var
evento_antigo: tnotifyevent (repare que o tipo tem que ser o mesmo tipo do evento que vc quer substituir)
ai vc cria uma função assim:
procedure evento_novo(sender: tobject);
begin
<seu código>
if assigned(evento_antigo) then
evento_antigo(sender);
end;
depois vc faz o seguinte:
na rotina create (ou na rotina onde vc associa o evento) coloque as linhas abaixo:
evento_angito := grid.OnGetBtnParam;
grid.OnGetBtnParam := evento_novo;
qdo o evento ocorrer ele executará o seu código e depois o código antigo;
[b:e304ae9d9c]OBS.: vc tem que saber qual é o tipo do evento (tnotifyevent, tcreateevent, etc...) e quais são os parâmetros. creio que vc sabe isso[/b:e304ae9d9c]
até mais
primeiro vc criar uma variável assim
var
evento_antigo: tnotifyevent (repare que o tipo tem que ser o mesmo tipo do evento que vc quer substituir)
ai vc cria uma função assim:
procedure evento_novo(sender: tobject);
begin
<seu código>
if assigned(evento_antigo) then
evento_antigo(sender);
end;
depois vc faz o seguinte:
na rotina create (ou na rotina onde vc associa o evento) coloque as linhas abaixo:
evento_angito := grid.OnGetBtnParam;
grid.OnGetBtnParam := evento_novo;
qdo o evento ocorrer ele executará o seu código e depois o código antigo;
[b:e304ae9d9c]OBS.: vc tem que saber qual é o tipo do evento (tnotifyevent, tcreateevent, etc...) e quais são os parâmetros. creio que vc sabe isso[/b:e304ae9d9c]
até mais
GOSTEI 0