Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alexandre Becker

Menu dinâmico em delphi?

Recommended Posts

Acredito q esta não deve ser táo dificil.....pra carregar um menu dinamico de um arquivo tudo ok.......varmenu:tmenuitem;begin//ler do arquivo de menus novo := TMenuItem.Create(Self); novo.Caption := 'testeeeeeeee'; menu.Items.Add(novo);//componente já inserido no form tmenu com nome menu// novo.OnClick:=winexec('calc.exe',sw_shownormal);????????//aki esta o problemaend;no meu arquivo vou ter o nome do menu q sera criadoassim eu o carreguei no sistemao problema eh.... quero deixar um codigo dentro deste para chamar algo quando clicar no menuex: winexec('calc.exe',sw_shownormal);isto seria no onclick e sera gerado tbem no arquivo, vindo de fora do delphialguem sabe como faz???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poderia fazer no momento de clicar, ele lê o arquivo txt, procura pelo item que foi clicado, podendo usar o caption ou o name informado para o item de menu, encontra o registro no arquivo, e pega a informação do programa em questão, no arquivo poderia ser escrito separado por ;, algo do tipo:

Calculadora;calc.exeBloco de Notas;notepad.exe

No caso o caption do menu seria Calculadora, então procura no arquivo por Calculado, acha a linha e pega o que tem depois do ; e então executa pelo WinExec...Outra coisa que seria mais simples eria usar um arquivo .ini, pois precisaria somente chamar comandos e o prórpio .ini iria retornar as informações desejadas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK ate ae fica fácil de fazer..... eu ate ja fiz um arquivoq eu leio e interpretotipificado da seguinte formamenu,submenu,nome,caption,comandoentao0101cadclientes Cadastro de Clientes winexec('clientes.exe',sw_shownormal); 0102cadfornecedores Cadastro de Fornecedores carregadll('fornecedores.dll'); meu problema esta em unicamenteatribuir o comando ao evento onclick do novo item de menu criadosomento o comando winexec nao satifaz pq tenho chamadas de dlls dinamicas em minha aplicacao, com ex: acima....gostaria de saber como colocar o comando no onclick e de que forma o mesmo seria interpretado.....tipo......novomenu.onclick:=carregadll('fornecedores.dll');isto eu ja tentei nao nao funcionaae coloquei no arquivo a ser interpretado + um campo q diz se eh pra utilizar o carrega.dll ou winexec.......mas e se no futuro eu tiver + tipo? terei q ficar fazendo isto para todos??eu ja vi alguma coisa de como carregar no onclick de um componente um comando externo, mas infelizmente nao gravei .....se souber de + alguma coisa dá um toque ae!!valeu pela ajuda!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem.... pra quem interessar aki vai....declarar a procedure procedure CapturaClick(Sender : TObject);procedure TFmenu.CapturaClick(Sender: TObject);begin ShowMessage('Você escolheu a fonte: ' + TMenuItem(Sender).Caption);end;novo.OnClick:=capturaclick;serve para qualquer componente q tenha o evento onclick!!para mim ficou show de bola!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.