Colega, não é executar Scripts, por favor veja o que ja postamos.

o pequeno e completo exemplo que foi postado, esta bem claro e fácil, é uma 
pena que há restrições e não consegui montar nada equivalente.

O que faço facilmente em outra linguagem estruturada com poucos recursos OOP, 
parece ser mosca branca de zóio verde ou extravagante demais em Delphi rsrs.

Só me resta aguardar, tentar outros caminhos ou desistir disso, o que acho tão 
simples, é um mistérios aos demais. Fiz uma pesquisa aqui, achei um colega 
querendo o mesmo (tópico de uns 2 anos), entrei em contato com ele e até hoje 
não conseguiu.

--- Em delphi-br@yahoogrupos.com.br, Rubem Rocha <rubem.ro...@...> escreveu
>
> Eric, se você pensa em implementar algum tipo de automação em seus
> aplicativos, envolvendo a manipulação de elementos nele contidos, sugiro
> você pesquisar sobre ferramentas de scripting para Delphi. Uma boa
> alternativa, free e de código fonte aberto, é o PascalScript, da RemObjects
> (http://www.remobjects.com/ps).
> 
>  
> 
> Caso não seja essa a sua necessidade, explique-a melhor, com riqueza de
> detalhes, para que possamos discutir uma alternativa técnica para tal.
> 
>  
> 
> Sds.
> 
>  
> 
> 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 12:07
> Para: delphi-br@yahoogrupos.com.br
> Assunto: Re: RES: [delphi-br] MethodAddress retornando NIL
> 
>  
> 
>   
> 
> Alosi,
> 
> Desta forma eu também já tinha encontrado na internet e na documentação.
> Veja que se você usar sua rotina como exemplifiquei anteriormente, não
> funcionará:
> 
> ExecMethod( edit1, 'SETFOCUS' )
> 
> --- Em delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br>
> , jalosii <jalosii@> escreveu
> >
> > 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
> 
>  
> 
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>


Responder a