RES: RES: [delphi-br] Chamar uma função a partir de uma variável
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
RES: [delphi-br] Chamar uma função a partir de uma variável
Acho que do jeito abaixo sai o que vc deseja []s function TDtmImportarRegistros.teste :string; begin result:= 'hello'; end; procedure TfrmImportarRegistros.Button1Click(Sender: TObject); var var : string; begin var := teste; showmessage(var); end; _ De: Juarez Nasato [mailto:[EMAIL PROTECTED] Enviada em: segunda-feira, 20 de dezembro de 2004 07:58 Para: [EMAIL PROTECTED] Assunto: [delphi-br] Chamar uma função a partir de uma variável Olá a todos, Tenho a função: function TDtmImportarRegistros.teste():string; begin result:= 'hello'; end; e quero chamá-la a partir do conteúdo de uma variável: procedure TfrmImportarRegistros.Button1Click(Sender: TObject); var var, res : string; begin var := 'teste()'; res := pchar(var); showmessage(res); end; Tentei com pchar, mas não funcionou, alguém tem alguma dica Obrigado, []s Juarez - Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador do Yahoo! agora. [As partes desta mensagem que não continham texto foram removidas] -- 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] Yahoo! Grupos, um serviço oferecido por: http://br.rd.yahoo.com/SIG=12a9bre4i/M=264379.5078783.6203979.1588051/D=brc lubs/S=2137111264:HM/EXP=1103628392/A=2191897/R=0/SIG=10vqa2grn/*http:/br.di versao.yahoo.com/ http://br.rd.yahoo.com/SIG=12a9bre4i/M=264379.5078783.6203979.1588051/D=brc lubs/S=2137111264:HM/EXP=1103628392/A=2191897/R=1/SIG=10vqa2grn/*http:/br.di versao.yahoo.com/ São PauloRio de JaneiroCuritibaPorto AlegreBelo Horizonte Brasília _ 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] mailto:[EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos Termos http://br.yahoo.com/info/utos.html do Serviço do Yahoo!. [As partes desta mensagem que não continham texto foram removidas] -- 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
Re: RES: [delphi-br] Chamar uma função a partir de uma variável
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 Diogo [EMAIL PROTECTED] wrote: Acho que do jeito abaixo sai o que vc deseja []s function TDtmImportarRegistros.teste :string; begin result:= 'hello'; end; procedure TfrmImportarRegistros.Button1Click(Sender: TObject); var var : string; begin var := teste; showmessage(var); end; _ De: Juarez Nasato [mailto:[EMAIL PROTECTED] Enviada em: segunda-feira, 20 de dezembro de 2004 07:58 Para: [EMAIL PROTECTED] Assunto: [delphi-br] Chamar uma função a partir de uma variável Olá a todos, Tenho a função: function TDtmImportarRegistros.teste():string; begin result:= 'hello'; end; e quero chamá-la a partir do conteúdo de uma variável: procedure TfrmImportarRegistros.Button1Click(Sender: TObject); var var, res : string; begin var := 'teste()'; res := pchar(var); showmessage(res); end; Tentei com pchar, mas não funcionou, alguém tem alguma dica Obrigado, []s Juarez - Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador do Yahoo! agora. [As partes desta mensagem que não continham texto foram removidas] -- 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] Yahoo! Grupos, um serviço oferecido por: http://br.rd.yahoo.com/SIG=12a9bre4i/M=264379.5078783.6203979.1588051/D=brc lubs/S=2137111264:HM/EXP=1103628392/A=2191897/R=0/SIG=10vqa2grn/*http:/br.di versao.yahoo.com/ http://br.rd.yahoo.com/SIG=12a9bre4i/M=264379.5078783.6203979.1588051/D=brc lubs/S=2137111264:HM/EXP=1103628392/A=2191897/R=1/SIG=10vqa2grn/*http:/br.di versao.yahoo.com/ São PauloRio de JaneiroCuritibaPorto AlegreBelo Horizonte Brasília _ 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] mailto:[EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos Termos http://br.yahoo.com/info/utos.html do Serviço do Yahoo!. [As partes desta mensagem que não continham texto foram removidas] -- 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] Yahoo! Grupos, um serviço oferecido por:PUBLICIDADE - 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 Termos do Serviço do Yahoo!. - Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador do Yahoo! agora. [As partes desta mensagem que não continham texto foram removidas] -- 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
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 * 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