Redirecionar procedure (???)

Delphi

02/05/2006

Primeiramente, sei que coloquei um péssimo título para o tópico, mas não sabia como definir direito o assunto...

Bem, Tenho na tela principal do meu sistema um MainMenu cheio de itens ligados às suas respectivas actions cujos eventos OnExecute estão devidamente preenchidos. Só que agora calhou de eu ter de fazer uma checagem antes de executar qualquer item pelo menu. Eu só posso permitir executar o OnExecute das actions se o resultado de uma funcao for True. Inicialmente pensei em ir Action por Action adicionando um If, mas queria saber se isso poderia ser feito de alguma maneira mais inteligente e rápida...

Hoje o código está assim:

function MinhaFuncao:Boolean;
begin
   Result := True;
end;

procedure Action1Execute(Sender: TObject);
begin
   Form1.Show;
end;

procedure Action1Execute(Sender: TObject);
begin
   Form2.Show;
end;

procedure Action1Execute(Sender: TObject);
begin
   Form3.Show;
end;


a maneira mais difícil de fazer o que eu quero seria editar um a um, ficando assim:

function MinhaFuncao:Boolean;
begin
   Result := True;
end;

procedure Action1Execute(Sender: TObject);
begin
   if MinhaFuncao then
   Form1.Show;
end;

procedure Action1Execute(Sender: TObject);
begin
   if MinhaFuncao then
   Form2.Show;
end;

procedure Action1Execute(Sender: TObject);
begin
   if MinhaFuncao then
   Form3.Show;
end;


Eu queria tentar criar uma procedure padrão que fizesse a checagem da função e depois de acordo com o Sender redirecionaria o código para a procedure de Execute apropriada, mas não tenho nem idéia de como começar. Alguém poderia tentar me dar uma luz?

Grato.

t+!


Delphi32

Delphi32

Curtidas 0
POSTAR