Evento Personalizado Global

Delphi

17/10/2006

Olá.
Preciso personalizar um evento de m determinado TMaskEdit, para todos os forms do aplicativo, pensei em algo como segue abaixo, mas consegui.
O código está em uma unit que funciona como biblioteca:

procedure LimpaComponentes(pForm: TForm; pLimpaProcesso: Boolean);
var
iContador: Integer;

begin
for iContador := 0 to pForm.ComponentCount - 1 do
begin
if pLimpaProcesso then
begin
if pForm.Components[iContador] is TMaskEdit then
begin
if (TMaskEdit(pForm.Components[iContador]).EditMask = ´99/A999-9;0;_´) then
begin
TMaskEdit(pForm.Components[iContador]).Hint := ´Click duplo para limpar´;
TMaskEdit(pForm.Components[iContador]).OnDblClick := Custom_ProcessoDblClick;
TMaskEdit(pForm.Components[iContador]).ShowHint := True;
TMaskEdit(pForm.Components[iContador]).Cursor := crHandPoint;
end;
end;
end;
end;
end;


Nigro

Nigro

Curtidas 0

Respostas

Nigro

Nigro

17/10/2006

sobe


GOSTEI 0
Rjun

Rjun

17/10/2006

Não me parece ser uma boa ideia você criar um evento global. Não seria mais interessante você criar um componente que herdasse de TMASKEDIT e nele fazer o tratamento?


GOSTEI 0
Nigro

Nigro

17/10/2006

Olá Rogério
Obrigado pelo interesse...
Vamos lá...
O sistema já exite, são inúmeras telas, e dentro de cada tela são vários componentes, seria inviável mudar o componente a essa altura.
Teria uma saída?


GOSTEI 0
Leonardobhbr

Leonardobhbr

17/10/2006

aparaentemente seu codigo ta todo certo só que o delphi não compreende que uma biblioteca de funçoes consiga escutar eventos como o duploclique por isso está dando o erro este evente tem que está amarra do em alguma tela para ter o handler;

Custom_ProcessoDblClick;

tente colocar o evento em uma unit com formulário e faça a chamada
form.Custom_ProcessoDblClick;


que deve funcionar


GOSTEI 0
Nigro

Nigro

17/10/2006

funcionou


GOSTEI 0
POSTAR