OK Eric. 

Eu entendo que a chamada dinâmica é um recurso que podemos utilizar em
vários casos mas teremos limitações qto ao tipo de declaração do método o
que complica ao ser utilizado nos métodos de componentes padrão do delphi.
Se o problema for realizar a chamada proposta então sugiro a vc utilizar
essas chamada em componentes derivados para que publiquem (PUBLISHED) os
métodos que você quer utilizar. Nesse caso você terá que se atentar em
chamar somente métodos com o devido atributo. Outra forma que posso sugerir
é o uso de scripters e adaptar as chamadas necessárias para isso. Scripters
podem te dar uma grande mão neste ponto pq você não ficará limitado as
chamadas de métodos PUBLISHED. No caso de scripter uma chamada seria algo do
tipo:

 

Form.RodarScript(‘edit.SetFocus;’);

 

Logicamente tem outros detalhes mas chega bem perto daquilo que você deseja
fazer, acredito eu.  Somente descarte scripter caso vc precise de
permformance na operação.

Já busquei várias alternativas para chamadas dinâmicas. Já sofri bastante
com esse tipo de problema pq tive que implementar chamadas de métodos pelo
nome e esses métodos podiam ter parâmetros. Caso ainda não seja isso, nos
explique o problema para que possamos tentar te auxiliar.

 

 

Sergio Uetanabaro

 

 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de eric_developer
Enviada em: quinta-feira, 15 de julho de 2010 16:16
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: RES: RES: RES: RES: [delphi-br] MethodAddress retornando NIL

 

  

Sergio,
isso já sabemos, passei um exemplo prático que obviamente não funciona e
para que possam entender e alguem me sugerir uma "alternativa que funcione"
para o que eu quero, entendeu ??

--- Em delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br>
, Sérgio T. Uetanabaro <s...@...> escreveu
>
> Eric,
> 
> 
> 
> Note que a função "SetFocus" do TWinControl é PUBLIC e não PUBLISHED. Por
> isso o METHODADDRESS não vai achar o método na chamada ExecMethod( edit1,
> 'SETFOCUS' )
> 
> 
> 
> []´s
> 
> 
> 
> Sergio Uetanabaro





[As partes desta mensagem que não continham texto foram removidas]

Responder a