Implementei sem problemas na semana passada em um sistema meu.

Qual o real problema que vc está tendo?

Sua procedure seria assim:

unit Unit2;
interface
uses ...;
type
  TForm2 = class(TForm)
  ...
  private
    procedure ExecMethod(NoObjecto: TObject; Nome_Metodo: String);
  ...
var
  Form2: TForm2;
type  //tem que ser aqui, não sei explicar por que, mas se por acima do 
form no mesmo type causa erro
  TExec = procedure of object;
...

procedure TForm2.ExecMethod(NoObjecto: TObject; Nome_Metodo: String);
var
  Rotina: TMethod;
  Exec: TExec;
begin
  Rotina.Data := Pointer(NoObjeto);
  Rotina.Code := NoObjeto.MethodAddress(Nome_Metodo);//Aqui que causa 
erro pra vc?
  if not Assigned(Rotina.Code) then
    exit;
  Exec := TExec(Rotina);
  Exec;
end;

...

O que eu percebi é se o método que vc quer chamar nã estiver nas 
declarações do FORM no lugar certo, o MethodAddress não encontra, tentei 
por em private e não achou, troquei o local da declaração pra acima do 
private e funcionou, no meu caso chamo uma procedure de outro form, pra 
que nesse não tenha acesso a banco de dados e está funcionando.


Verifique teu código e se tiver mais erros nos avise pra ver se pudemos 
lhe ajudar.

Alosi
DigitalSystem
Bento Gonçalves-RS


eric_developer escreveu:
> isso é muito diferente do que preciso, mesmo assim obrigado.
>
> --- Em delphi-br@yahoogrupos.com.br, Fabricio Colombo 
> <fabricio.colombo....@...> escreveu
>   
>> Para o método SetFocus, seria melhor vc chamar direto o método. Por exemplo,
>> se vc estiver em um form, bastaria chamar
>>
>> Self.FocusControl(edit1)
>>
>> ou vc cria um método seu
>>
>> procedure TForm1.SetFocusComponent(AComponent: TComponent);
>> begin
>>   if AComponent is TWinControl then
>>     TWinControl(AComponent).SetFocus;
>> end;
>>
>> Que outros métodos vc precisa invocar? Praticamente todos os métodos comuns
>> entre os componentes visuais, estão presentes em TControl e TWinControl, que
>> são as classes base.
>>
>>
>>
>> Em 14 de julho de 2010 20:49, eric_developer
>> <developer.syst...@...>escreveu:
>>
>>     
>>> executar métodos, irei passar para minha função, o objeto e a string com o
>>> nome do método, exemplo:
>>>
>>> myCallMethod( edit1, 'SETFOCUS' ) ;
>>>
>>> --- Em delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br>,
>>> Fabricio Colombo <fabricio.colombo.mva@> escreveu
>>>
>>>       
>>>> O que vc está pretendendo fazer Eric?
>>>>
>>>> Em 14 de julho de 2010 16:02, Mário Guedes <jmarioguedes@>escreveu:
>>>>         
>>>>> Eu fiz assim:
>>>>>
>>>>>
>>>>>
>>>>>           
>>> http://eugostododelphi.blogspot.com/2010/04/como-executar-um-metodo-pelo-nome.html
>>>       
>>>>> *José Mário Silva Guedes*
>>>>> e-mail: jmarioguedes@ <jmarioguedes%40gmail.com>
>>>>>           
>>>>> [As partes desta mensagem que não continham texto foram removidas]
>>>>>
>>>>>
>>>>>
>>>>>           
>>>> [As partes desta mensagem que não continham texto foram removidas]
>>>>
>>>>         
>>>  
>>>
>>>       
>> [As partes desta mensagem que não continham texto foram removidas]
>>
>>     
>
>
>
>
> ------------------------------------
>
>   

Responder a