Menu selected
Menu selected {( subMenu )} -> Resultado
Parâmetro | Tipo | Descrição | |
---|---|---|---|
subMenu | Text | ← | Referência de menu contendo o item selecionado |
Resultado | Integer | ← | Comando de menu selecionado "Palavra Superior": número de menu Palavra inferior: Número de comando de menu |
Esse comando não é seguro para thread e não pode ser usado em código adequado.
Descrição
Menu selected é utilizado só quando são mostrados formulários. Esta função detecta o comando de menu escolhido no menu no caso de um submenu hierárquico, retorna a referência do submenu.
Dica: sempre que seja possível, utilize métodos associados com comandos de menu em uma barra associada (com um número de barra negativo) ao invés de utilizar Menu selected. As barras de menus associadas são mais fáceis de administrar, já que não é necessário provar sua seleção. Entretanto, se são utilizados os comandos APPEND MENU ITEM ou INSERT MENU ITEM, deve utilizar Menu selected porque as linhas de menus adicionadas por esses comandos não têm métodos associados.
O comando Menu selected pode ser utilizado para trabalhar com submenus hierárquicos. Quando se seleciona uma linha de um menu hierárquico mais além do primeiro nível, o comando devolve, no parâmetro opcional submenu, a referência (tipo MenuRef, cadeia de 16 caracteres) do submenu ao qual pertence a linha selecionada. Se o comando de menu não conter um submenu hierárquico, este parâmetro recebe uma cadeia vazia.
Menu selected devolve o número do menu selecionado, um inteiro longo. Para encontrar o número de menu, divida Menu selected por 65,536 e converta o resultado em um inteiro. Para obter o número do comando de menu, calcule o módulo de Menu selected com o coeficiente 65,536. Utilize as seguintes fórmulas para calcular o número de menu e do comando de menu:
Menu:=Menu selected\ 65536
comando de menu:=Menu selected% 65536
Da mesma forma pode extrair estes valores utilizando os Operadores bitwise como no exemplo a seguir:
Menu:=(Menu selected & 0xFFFF0000)>>16
comando de menu:=Menu selected & 0xFFFF
Se nenhum comando de menu estiver selecionado, Menu selected devolve 0.
Exemplo
O método a seguir de formulário utiliza Menu selected para proporcionar os argumentos menu e linha de menu a SET MENU ITEM MARK:
Case of
:(FORM Event=On Menu Selected)
C_STRING(16;$MenuRefIncludingItem)
var $ref;$MenuNum;$MenuItemNum : Integer
$ref:=Menu selected($MenuRefIncludingItem)
$MenuNum:=$ref\65536
$MenuItemNum:=$ref%65536
SET MENU ITEM MARK(MenuRefIncludingItem;$MenuItemNum;Char(18))
End case
Nota: o evento de formulário On Menu Selected não é ativado se nenhuma linha estiver selecionada, $MenuRefIncludingItem sempre é dado e $MenuNum vale 0 se o menu não é um dos menus da barra.
Ver também
Gestão de Menus