Mais até agora vc não disse qual o problema que vc quer resolver. Qual a sua necessidade? Por que vc precisa que os métodos sejam executados pelo nome?
Em 15 de julho de 2010 14:22, eric_developer <developer.syst...@yahoo.com>escreveu: > > > 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 <delphi-br%40yahoogrupos.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 <delphi-br%40yahoogrupos.com.br>[mailto: > delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br>] Em > > nome de eric_developer > > Enviada em: quinta-feira, 15 de julho de 2010 12:07 > > Para: delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.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 <delphi-br%40yahoogrupos.com.br><mailto: > delphi-br%40yahoogrupos.com.br <delphi-br%2540yahoogrupos.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] > > > > > [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: delphi-br-ow...@yahoogrupos.com.br 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: delphi-br-unsubscr...@yahoogrupos.com.br <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html