Fórum Criar um evento onclick para um menu em tempo de execução #236791
08/06/2004
0
Estava precisando saber como criar um evento onclick para um menu cujo os itens serão montados a partir de um banco de dados em tempo de execução.
Agradecido
Luizbhering
Curtir tópico
+ 0Posts
08/06/2004
Xanatos
A Cada MenuItem que voce criar tente fazer isso:
Item:= TMenuItem.Create(Self);
Item.Name:= ´Teste´;
Item.Caption:= ´Teste´;
Item.OnClick:= Padrao1.OnClick;
MainMenu1.Items.Add(Item);
Voce cria uma opcao padrao e deixa ela invisivel! ela só vai servir pra voce ter em cada opcao de menu um evento onclick!!!
Depois voce implementa dentro desse Padrao1.OnClick a chamada ao formulario desejado!!!
Tenta ai e vamos ver o que dá!!! :idea:
Gostei + 0
09/06/2004
Paulo_amorim
Crie um procedimento com parametro (Sender: TObject)...
P. Ex.:
procedure MinhaFuncao(Sender: TObject);
Depois é soh atribuir...
Menu.OnClick := MinhaFuncao:
Espero que ajude
Até+
Gostei + 0
09/06/2004
Motta
Crie TActions e quando criar o MenuItem a vincule ao menu.
Gostei + 0
09/06/2004
Xanatos
Gostei + 0
09/06/2004
Xanatos
Obrigado.
Gostei + 0
09/06/2004
Rômulo Barros
Sobe ^
Gostei + 0
09/06/2004
Paulo_amorim
Olá
TNotify event é, na realidade, uma procedure...
Quando vc cria uma procedure com os mesmos parâmetros que um TNotifyEvent ele deveria aceitar...
Garanta que criou a procedure com os mesmos parametros...
Se não funciona, que erro dá?
Espero que ajude
Até+
Gostei + 0
09/06/2004
Xanatos
Valeu!!!
Gostei + 0
14/06/2004
Info.wtomfs
Form := ´Frm_Clientes´; // Essa Variável contém o form que está
gravado no banco
Formulario := TForm(FindClass(´t´+Form));
Nome.ClassName := Formulario;
Application.CreateForm(TComponentClass(Nome),Form);
Formulario.Name := Form;
Formulario.Show;
Isso Cria o Form Normalmente, só que se eu tentar acessar qualquer componente deste form através de outro da erro de memória.
Ex:
do Botão qualquer de um form qualquer,
Label1.Caption := Frm_Usuarios.Edit1.text;
Isso dá erro
Quem puder ajudar eu agradeço...
Gostei + 0
14/06/2004
Paulo_amorim
Olá
Perae, até onde eu vi, esse Frm_Usuarios não está sendo declarado...
O problema ocorre porcausa do Edit1 ou do Label1
Se eh por causa do Label, tente especificar o form
Frm_Clientes.Label1.Caption...
Espero que ajude
Até+
Gostei + 0
14/06/2004
Xanatos
Ele ta querendo dizer que quando for feita uma chamada dinamica ao Frm_Usuarios que vai ser através do menu dinamico...e através de uma string ´Frm_Usuarios´. e depois tentar acessar este form atraves da
Label1.Caption := Frm_Usuarios.Edit1.text;
o Programa gera um erro de access violation por que o sistema nao acha o Frm_Usuarios ! pois ele vai criado nao atravéz do Frm_Usuarios : TFrm_Usuarios e sim de uma variavel Form: TForm.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)