|
Olá Pablo,
Todo Form pode ter um menu, correto? O que acontece quando você
possui um MDI com menu e este
MDI chama um Form que também possui menus? O menu do Form aparece
no local do menu do MDI.
Ao contrário do que você imagina, isto não é
uma excessão, isto é a regra. Mesmo que o form não
possua nada no menu, quando você abre um form sem menu dentro
do MDI o form faz uma cópia do
menu do MDI para si próprio e sobrescreve o menu do MDI. Só
que com uma diferença, nesta cópia
não são reconhecidos menus dinâmicos. A única
alternativa é criar uma função que refaça a
criação dos
menus dinâmicos no SAM_CreateComplete de cada formulário
criado, e sempre que o formulário for
destruído você deve postar (SalPostMsg) uma mensagem própria
(PAM_...) para o MDI executar a
mesma função, pois o retorno do focus para o MDI faz
cum ele recrie o seu menu fixo novamente,
excluindo os dinâmicos.
Faça este teste. Já faz algum tempo que criei uma classe
multilingua que traduz todos os objetos em
tempo de execução, incluindo menus, e neste desenvolvimento
me deparei com diversos problemas
envolvendo menus, não me lembro exatamente de todos, mas se
você precisar de mais alguma dica
posso vasculhar a documentação novamente atrás
de novas informações.
--
Erasmo Bispo de Oliveira Junior
Analista de Sistemas
SoftWay - Verge informática Ltda
(019) 231-9436
[EMAIL PROTECTED]
Pablo Acylino wrote:
Olá
pessoal, o caso dessa vez é com a função VisMenuInsert:
- A idéia é obter a montagem de um menu inserindo itens com
a função VisMenuInsert, a partir de um popupmenu já
criado fixo diretamente no MDI. No SAM_Createcomplete, do MDI, realizo
o while inserindo os menuitens (com a função)
de acordo com os registros de uma table, até aí tudo bem,
o menu é criado, consigo chamar as telas com a passagem de parâmetros,
porém qdo. chamo qq outra tela de um outro popupmenu os itens do
popup dinâmico ñ aparecem mais, utilizo de acordo com o help,
a system variable lParam para para obter o handle do popup dinãmico,
o pq isso ocorre se a montagem foi feita uma só vez no sam_createcomplete,
já tentei armazenar o valor inicial da lParam, para o caso de perda
de referência, mas o problema continuou.
Caso alguém já tenha utilizado a função, e
queira me auxiliar e ñ entendeu o meu problema, posso detalhar mais,
com todo prazer.
--
Erasmo Bispo de Oliveira Junior
Analista de Sistemas
SoftWay - Verge informática Ltda
(019) 231-9436
[EMAIL PROTECTED]
|