OnExecute dinâmico

Delphi

23/08/2003

Pessoal, estou num beco sem saída. Tenho um objecto (digamos, um menu) e um procedimento chamado Teste.

Para o menu escrevo o seguinte:

MenuTeste.onexecute := Teste;

Até aqui não há problema. O que pretendo fazer é guardar a palavra ´Teste´ num arquivo de texto, ler essa palavra e (dependendo da palavra) executar o procedure cujo nome é o lido no arquivo.

Haverá alguma alma caridosa com a solução?
Um bacalhau aflito


Bacalhau

Bacalhau

Curtidas 0

Respostas

Cebikyn

Cebikyn

23/08/2003

Você poderia chamar a procedure pelo nome:

function ExecProc(MyProcStr : String):boolean;
Var
  MyProc : procedure of object;
Begin
  TMethod(myProc).data:=self;
  TMethod(MyProc).code :=MethodAddress(MyProcStr);
  result:=true;
  if not Assigned(MyProc) Then
    result:=false
  else
    MyProc;
end;


Passe o nome da procedure para a função a cima e ela executará a procedure para você.

Um detalhe: só funciona para procedures tipo [i:5dabaa6c10]published[/i:5dabaa6c10]


GOSTEI 0
Bacalhau

Bacalhau

23/08/2003

Cebikyn, foi em cheio!!! Muito obrigado. Estou ainda com um pequeno obstáculo, mas o objectivo principal foi conseguido.

Agora tenho uma base comum para todo o meu software, executando procedures, funções em dlls, outros executáveis, tuudo!

A coisa ainda está meio feia, mas quando for consistente, envio uma cópia. Só preciso saber o mail.

abraço do bacalhau


GOSTEI 0
POSTAR