No Palm, para acessar o menu é necessário clicar na barra de título, porém, pode ser que seu form não tenha barra de título, você não quis, sendo assim ele ocupa toda a área da tela.
Então, vou postar aqui uma forma de chamar o menu atravez de um botão.
O menu tem que estar criado normalmente no Resources e associado ao Form.
Para chamar o Menu, nós iremos usar as rotinas abaixo, ambas se encontram no arquivo PalmOS/Menu_.pas.
MenuInit - sua declaração é MenuInit(resourceId: UInt16): MenuBarPtr; external sysTrapMenuInit; Ela retorna o ponteriro para o menu referente ao resourceId passado como parâmetro.
MenuSetActiveMenu - sua declaração é function MenuSetActiveMenu(menuP: MenuBarPtr): MenuBarPtr; external sysTrapMenuSetActiveMenu; Ela ativa o Menu passado como ponteiro no parâmetro.
MenuGetActiveMenu - declaração function MenuGetActiveMenu: MenuBarPtr; external sysTrapMenuGetActiveMenu; Retorna um ponteiro referente ao menu ativo.
MenuDrawMenu - declaração procedure MenuDrawMenu(menuP: MenuBarPtr); external sysTrapMenuDrawMenu; Desenha na tela o menu passado como parâmetro em forma de ponteiro.
Entã, para chamar o menu basta incluir o código abaixo.
MenuSetActiveMenu(MenuInit(Menu1));
MenuDrawMenu(MenuGetActiveMenu);
uma outra forma seria guardar o ponterio do menu que foi ativado, assim não precisaremos usar a função MenuGetActiveMenu, pois já temos o ponteiro para o menu.
var
MenuP: MenuBarPtr;
begin
MenuP := MenuInit(Menu1);
MenuSetActiveMenu(MenuP);
MenuDrawMenu(MenuP);
end;
Nenhum comentário:
Postar um comentário