Use uma linguagem de codificação específica para programar aplicativos Delphi para exibir uma dica ou dica de ferramenta, quando o mouse passar sobre um componente do menu. Se a propriedade "ShowHint" estiver definida como "true" e você adicionar texto à propriedade "hint", essa mensagem será exibida quando o mouse for colocado sobre o componente (um TButton, por exemplo).
Ativar dicas para itens de menu
Devido à maneira como o Windows foi projetado, mesmo se você definir o valor da propriedade dica como um item de menu, a dica pop-up não será exibida. No entanto, os itens do menu Iniciar do Windows exibem dicas. O menu favoritos no Internet Explorer também exibe dicas de itens de menu.
É possível usar o evento OnHint da variável global de aplicativo em Delphi aplicativos para exibir dicas de itens de menu em uma barra de status.
O Windows não expõe as mensagens necessárias para oferecer suporte a um evento OnMouseEnter tradicional. No entanto, a mensagem WM_MENUSELECT é enviada quando o usuário seleciona um item de menu.
A implementação WM_MENUSELECT do TCustomForm (ancestral do TForm) define a dica do item de menu como "Aplicativo. Dica "para que possa ser usado no aplicativo. Evento OnHint.
Se você deseja adicionar dicas pop-up de itens de menu (dicas) aos menus do aplicativo Delphi, concentre-se na mensagem WM_MenuSelect.
Dicas pop-up
Como você não pode confiar no aplicativo. ActivateHint para exibir a janela de dica para itens de menu (como o manuseio do menu é completamente feito por janelas), para exibir a janela de dica, você deve criar sua própria versão da janela de dica, derivando uma nova classe do "THintWindow".
Veja como criar uma classe TMenuItemHint. Esta é uma dica viúva que realmente é exibida para itens do menu!
Primeiro, você precisa manipular a mensagem do Windows WM_MENUSELECT:
tipo
TForm1 = classe(TForm)
...
privado
procedimento WMMenuSelect (var Msg: TWMMenuSelect); mensagem WM_MENUSELECT;
fim...
implementação...
procedimento TForm1.WMMenuSelect (var Msg: TWMMenuSelect);
var menuItem: TMenuItem; hSubMenu: HMENU;
início
herdado; // do TCustomForm (para que Application. Dica é atribuída)
menuItem: = nada;
E se (Msg. MenuFlag <> $ FFFF) ou (Msg. IDItem <> 0) então
início
E se Msg. MenuFlag e MF_POPUP = MF_POPUP então
início
hSubMenu: = GetSubMenu (Msg. Menu, Msg. IDItem);
menuItem: = Auto. Cardápio. FindItem (hSubMenu, fkHandle);
fim
outro
início
menuItem: = Auto. Cardápio. FindItem (Msg. IDItem, fkCommand);
fim;
fim; miHint. DoActivateHint (menuItem);
fim; (* WMMenuSelect *)
Informações rápidas: a mensagem WM_MENUSELECT é enviada para a janela do proprietário de um menu quando o usuário seleciona (mas não clica) em um item de menu. Usando o método FindItem da classe TMenu, você pode obter o item de menu selecionado no momento. Os parâmetros da função FindItem estão relacionados às propriedades da mensagem recebida. Depois de saber qual item de menu o mouse acabou, chamamos o método DoActivateHint da classe TMenuItemHint. A variável miHint é definida como "var miHint: TMenuItemHint" e é criada no formulário OnCreate manipulador de eventos.
Agora, o que resta é a implementação da classe TMenuItemHint.
Aqui está a parte da interface:
TMenuItemHint = classe(THintWindow)
privado
activeMenuItem: TMenuItem;
showTimer: TTimer;
hideTimer: TTimer;
procedimento HideTime (Remetente: TObject);
procedimento ShowTime (Remetente: TObject);
público
construtor Criar (AOwner: TComponent); sobrepor;
procedimento DoActivateHint (menuItem: TMenuItem);
destruidor Destruir; sobrepor;
fim;
Basicamente, a função DoActivateHint chama o método ActivateHint do THintWindow usando a propriedade Hint do TMenuItem (se estiver atribuída). O showTimer é usado para garantir que a HintPause do Aplicativo decorra antes que a dica seja exibida. O hideTimer usa Application. HintHidePause para ocultar a janela de dica após um intervalo especificado.
Usando dicas de itens de menu
Embora alguns possam dizer que não é um bom design exibir dicas para itens de menu, há situações em que realmente exibir dicas de itens de menu é muito melhor do que usar uma barra de status. Uma lista de itens de menu usada mais recentemente (MRU) é um desses casos. Um menu personalizado da barra de tarefas é outro.