Fórum MainMenu #197066
25/11/2003
0
de um objeto TMenuItem? ou como converter a string para o tipo
TNotifyEvent?
Elenice
Curtir tópico
+ 0Posts
25/11/2003
Rafael Heise
não entendi sua pergunta...
Gostei + 0
25/11/2003
Elenice
quando clico sobre um desses itens estou ativando
o evento ´onclick´ do componente. Mas estou criando
o menu dinamicamente, na inicializaçao do programa, e para
isso preciso definir tambem o que acontecera qdo alguem
clicar sobre esse menu (onclick). Soh que o evento onclick
eh do tipo TNotifyEvent, e o que eu gostaria de colocar
no onclick eh do tipo string. Existe um modo de converter
string para o TNotifyEvent???
Gostei + 0
25/11/2003
Rafael Heise
Você não vai conseguir fazer isso do jeito que você está pensando..
Como é do tipo TNotifyEvent, você precisa assimilar com TNotifyEvent.
Para isso, crie as procedures da maneira que você quer, e depois associe elas via código
MenuItem.OnClick := MeuClick;
beleza?!
Talvez isso te ajude a resolver seu problema.
Agora se você tem as suas procedures, e quer a partir do nome texto associar o evento, dai você tem que usar uma programação mais pesada que nem tenho certeza se vai mesmo funcionar ou não... então, teria que ver...
Mas talvez uma outra saida seria você usar ActionList. Talvez seja melhor... de uma olhada nisso... talvez ache o que você quer...
Gostei + 0
25/11/2003
Elenice
todas as propriedades de construcao do menu vao vir de uma tabela,
inclusive a procedure a ser executada, ou seja, o nome dela,
que eu estava retirando da tabela como string....
Gostei + 0
25/11/2003
Beppe
case TMenuItem(Sender).Tag of 0: Abre; 1: Fecha; 2: Salva; 3: Etc; end;
Gostei + 0
25/11/2003
Rafael Heise
Já que você tem tudo do banco de dados, e traz as funções como string, você já deve ter as funções prontas na sua form certo?
Então você pode criar um record que contém os campos nome e endereco, como sendo string e TNotifyEvent respectivamente.
Dai quando você criar a sua form, você chama uma procedure sua, que aloca todas as procedures suas que você pretende usar para colcoar nos click. e para isso, você tem que ter uma variável na form que é um array da quantidade de procedure do tipo que você criou.
Então, nessa procedure, você seta para cada posição do array, o nome e a procedure que você vai usar. Depois você faz um for em cima desse array, e testa, se for do nome passado, você retorna o valor do endereco.
dai no caso é uma função que passa uma string e devolve um tnotifyevent.
não sei se da pra fazer diferente. fiquei tentando usar propinfo e talz, mas não deu certo... então...
acho que essa é a saída mais fácil atualmente!
valeu
Gostei + 0
26/11/2003
Beppe
Gostei + 0
26/11/2003
Elenice
Gostei + 0
26/11/2003
Rafael Heise
para cada posição do array você precisa setar manualmente qual a procedure é equivalente!
lamento...
Gostei + 0
26/11/2003
Elenice
umas 500 pelo menos...
Mas muito obrigada assim mesmo...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)