RES: RES: [delphi-br] Chamar uma função a partir de uma variável

2004-12-21 Por tôpico Melqui Pinho

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

2004-12-20 Por tôpico Diogo

 

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

2004-12-20 Por tôpico Juarez Nasato

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

2004-12-20 Por tôpico Demian Lessa

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