Lamento discordar...

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Teste;
  private
    procedure ExecuteProcName(Obj: TObject; Name: string);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;



implementation

{$R *.dfm}

type
  TExec = procedure of object;


procedure TForm1.ExecuteProcName(Obj: TObject; Name: string);
var
  Rotina: TMethod;
  Exec: TExec;
begin
  Rotina.Data := Pointer(Obj);
  Rotina.Code := Obj.MethodAddress(Name);
  if not Assigned(Rotina.Code) then
    Exit;
  Exec := TExec(Rotina);
  Exec;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ExecuteProcName(Self,'Teste');
end;

procedure TForm1.Teste;
begin
     ShowMessage('Teste');
end;






-----Mensagem original-----
De: Demian Lessa [mailto:[EMAIL PROTECTED]
Enviada em: segunda-feira, 20 de dezembro de 2004 20:04
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: RES: [delphi-br] Chamar uma função a partir de uma variável



No Delphi, não faz. A não ser que você utilize:

  #1) compilação com arquivo de mapa e saiba traduzir nome -> endereço e,
      além disso, montar a pilha de chamada da rotina dinamicamente;

  #2) um motor de script para interpretar e executar seu código de forma
      independente, "externamente" ao programa principal mas permitindo a
      troca de dados através da interface com esse motor de script;

Das opções, a melhor é a primeira. O Pascal Script 3.0 é um componente
OS que implementa scripts em Pascal. Conta com várias facilidades que
certamente permitirão você fazer o que você quer e muito mais:

http://www.remobjects.com/page.asp?id={9A30A672-62C8-4131-BA89-EEBBE7E302E6}

Cordialmente,

Demian Lessa

> O que ocorre é que o nome da função está numa tabela no banco de dados.
> Preciso fazer uma consulta para trazer o nome da função, que vem como
string, e a partir dessa string chamar a funcão.
>
> function TfrmImportarRegistros.teste() :string;
> begin
>    result:= 'hello';
> end;
>
> procedure TfrmImportarRegistros.Button1Click(Sender: TObject);
> var
>    var : string;
> begin
>    var := qryFuncaoNOME_FUNCAO.Value;
>
>    //como chamar a funcao teste a partir da string var?
> end;
>
> Valeu!!
>
> Juarez


--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]

Links do Yahoo! Grupos












-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a