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