Chamar método
Como faço para chamar um método cujo nome esta contido em um string?
Rjun
Curtidas 0
Respostas
Massuda
08/04/2005
Você poderia dar um exemplo do que pretende fazer?
GOSTEI 0
Rjun
08/04/2005
O que pretendo fazer e montar um menu dinamico com todas as opçoes em uma tabela.
[b:f2f845e465]Estrutura da tabela[/b:f2f845e465]
Codigo
Descricao
Imagem
Acao
No campo acao tem q estar o método que será executado quando determinado menu for acionado. Em C# faço isso usando Reflection. Teria algo parecido em Delphi ?
[b:f2f845e465]Estrutura da tabela[/b:f2f845e465]
Codigo
Descricao
Imagem
Acao
No campo acao tem q estar o método que será executado quando determinado menu for acionado. Em C# faço isso usando Reflection. Teria algo parecido em Delphi ?
GOSTEI 0
Massuda
08/04/2005
...Em C# faço isso usando Reflection. Teria algo parecido em Delphi ?
O mais próximo do Reflection em Delphi é o mecanismo de RTTI, mas esse mecanismo só funciona com propriedades publicadas, não com métodos da classe.GOSTEI 0
Rjun
08/04/2005
Mas não teria outra alternativa para fazer o que quero ?
GOSTEI 0
Massuda
08/04/2005
Mas não teria outra alternativa para fazer o que quero ?
Abandonando completamente a idéia de usar algo parecido com Reflection...Um jeito bem simples seria quando criar o menuitem, fazer uma busca em uma lista de ações possíveis... algo mais ou menos assim (pseudo código)
type TMeuItem = record Acao: string; OnClick: TNotifyEvent; end; ... const TABELA_DE_HANDLES: array[0..N] of TMeuItem = ( (Acao: ´Abrir´), ... (Acao: ´Sair´), ); // este trecho cria os menuitem´s ... begin ... // preenche a tabela de handles... TABELA_DE_HANDLES[0].OnClick = Abrir; // Abrir é um método ... TABELA_DE_HANDLES[N].OnClick = Sair; // Sair é um método // cria um item do menu // ... pega a Acao na tabela // ... busca um TABELA_DE_HANDLES[i].Acao = Acao // ... faz menuitem.OnClick := TABELA_DE_HANDLES[i].OnClick
GOSTEI 0
Rjun
08/04/2005
Obrigado Massuda. Estudarei sua ideia.
GOSTEI 0