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

Показ всплывающих подсказок компонентов

Delphi , Компоненты и Классы , Создание компонент

Показ всплывающих подсказок компонентов

Автор: Ralph Friedman

В нормальной ситуации всплавающие подсказки появляются непосредственно под областью компонента. Возможно ли их показывать несколько выше?


unit Unit1;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls, DB, DBTables, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
  private { Private-Deklarationen }
  public { Public-Deklarationen }
    procedure DoShowHint(var HintStr: string; var CanShow: Boolean;
      var HintInfo: THintInfo);
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.DoShowHint(var HintStr: string; var CanShow:
  Boolean; var HintInfo: THintInfo);
begin
  with HintInfo do
    if HintControl = Button1 then
    begin
      HintPos.X := Left + Button1.Left;
      HintPos.Y := Top + (Button1.Top);
    end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnShowHint := DoShowHint;
end;

end.

Это проект программирования на Delphi, демонстрирующий, как отображать всплывающие подсказки (попап-индикаторы) для компонентов в форме. Процедура DoShowHint вызывается при наведении курсора на компонент с присвоенной всплывающей подсказкой и позволяет разработчику кастомизировать позицию и содержимое всплывающей подсказки.

В этом конкретном реализации процедура DoShowHint проверяет, является ли контролем, наведенным курсором, кнопкой (TButton, конкретно Button1), и adjusts its position accordingly. Properties HintPos.X and HintPos.Y are set to the left edge and top edge of the button plus its own left and top edges, respectively.

Процедура FormCreate настраивает обработчик события OnShowHint приложения, который вызывает процедуру DoShowHint, когда всплывающая подсказка ожидаются быть отображенной.

В ответ на ваш вопрос, можно отобразить всплывающие подсказки над компонентом вместо того, чтобы отображать их непосредственно ниже. Это можно достичь, изменяя properties HintPos.X и HintPos.Y. Например, вы можете установить HintPos.X в левый край кнопки минус ширина всплывающей подсказки (чтобы сместить ее от левого края) и установить HintPos.Y в верхний край кнопки минус высота всплывающей подсказки (чтобы сместить ее от верхнего края).

Вот обновленная реализация, которая отображает всплывающие подсказки над компонентом:

procedure TForm1.DoShowHint(var HintStr: string; var CanShow: Boolean; var HintInfo: THintInfo);
begin
  with HintInfo do
    if HintControl = Button1 then
    begin
      HintPos.X := Left + Button1.Left - Width;
      HintPos.Y := Top + Button1.Top - Height;
    end;
end;

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

В статье рассматривается возможность изменения позиции всплывающих подсказок компонентов в приложении Delphi, показывая их не только непосредственно под областью компонента, но и на более высоком уровне.


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

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




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


:: Главная :: Создание компонент ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-04-10 19:18:03/0.0034160614013672/0