Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как показать подсказки Hints для элементов меню

Delphi , Синтаксис , Hint подсказки

Как показать подсказки Hints для элементов меню

В примере создается обработчик события Application.Hint - подсказки меню изображаются на status Panel:


type
  TForm1 = class(TForm)
    Panel1: TPanel;
    MainMenu1: TMainMenu;
    MenuItemFile: TMenuItem;
    MenuItemOpen: TMenuItem;
    MenuItemClose: TMenuItem;
    OpenDialog1: TOpenDialog;
    procedure FormCreate(Sender: TObject);
    procedure MenuItemCloseClick(Sender: TObject);
    procedure MenuItemOpenClick(Sender: TObject);
  private
    {Private declarations}
    procedure HintHandler(Sender: TObject);
  public
    {Public declarations}
end;

var
  Form1: TForm1;

implementation
{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Panel1.Align := alBottom;
  MenuItemFile.Hint := 'File Menu';
  MenuItemOpen.Hint := 'Opens A File';
  MenuItemClose.Hint := 'Closes the Application';
  Application.OnHint := HintHandler;
end;

procedure TForm1.HintHandler(Sender: TObject);
begin
  Panel1.Caption := Application.Hint;
end;

procedure TForm1.MenuItemCloseClick(Sender: TObject);
begin
  Application.Terminate;
end;

procedure TForm1.MenuItemOpenClick(Sender: TObject);
begin
  if OpenDialog1.Execute then
    Form1.Caption := OpenDialog1.FileName;
end;

Программный код для простого приложения с меню, использующего компонент TMainMenu из Delphi. Для отображения подсказок для пунктов меню используется событие Application.OnHint.

Вот как это работает:

  1. В процедуре FormCreate панель Panel1 выравнивается в нижнюю часть формы.
  2. Свойство Hint для каждого пункта меню (MenuItemFile, MenuItemOpen и MenuItemClose) устанавливается на строку, которая будет отображаться как подсказка при наведении мыши на пункт меню.
  3. Событие Application.OnHint присваивается процедуре HintHandler.
  4. Когда какой-либо из пунктов меню кликнут, соответствующий обработчик события OnClick (например, MenuItemOpenClick или MenuItemCloseClick) будет вызван.
  5. В процедуре HintHandler свойство Caption панели Panel1 устанавливается на текст подсказки из Application.Hint, что эффективно отображает подсказку на статусной панели.

Для отображения подсказок для элементов меню без использования события Application.OnHint можно использовать компонент TPopupMenu и обработчик события OnPopup. Вот пример:

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    MainMenu1: TMainMenu;
    MenuItemFile: TMenuItem;
    MenuItemOpen: TMenuItem;
    MenuItemClose: TMenuItem;
    OpenDialog1: TOpenDialog;
    procedure FormCreate(Sender: TObject);
    procedure MenuItemCloseClick(Sender: TObject);
    procedure MenuItemOpenClick(Sender: TObject);
  private
    { Private declarations }
  public
  end;

var
  Form1: TForm1;

implementation

uses System.SysUtils, System.Variants, System.Classes; {$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Panel1.Align := alBottom;
  MenuItemFile.Hint := 'File Menu';
  MenuItemOpen.Hint := 'Opens A File';
  MenuItemClose.Hint := 'Closes the Application';
end;

procedure TForm1.MenuItemCloseClick(Sender: TObject);
begin
  Application.Terminate;
end;

procedure TForm1.MenuItemOpenClick(Sender: TObject);
begin
  if OpenDialog1.Execute then
    Form1.Caption := OpenDialog1.FileName;
end;

procedure TForm1.PopupMenuCloseUp(Sender: TObject);
var
  PopupMenu: TPopupMenu;
begin
  PopupMenu := Sender as TPopupMenu;
  if PopupMenu.PopUp then
    Panel1.Caption := PopupMenu.HintText;
end;

В этом примере обработчик события OnPopup компонента TPopupMenu обрабатывается в отдельной процедуре (PopupMenuCloseUp). Эта процедура проверяет, закрыт ли popup-меню, и устанавливает свойство Caption панели Panel1 на текст подсказки из popup-меню.

Статья описывает, как создавать и отображать подсказки (hints) для элементов меню в приложении Delphi с помощью обработчика события Application.Hint.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Hint подсказки ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:35:41/0.0054481029510498/1