В нормальной ситуации всплавающие подсказки появляются
непосредственно под областью компонента. Возможно ли их показывать несколько
выше?
unit Unit1;
interfaceuses
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);
beginwith HintInfo doif HintControl = Button1 thenbegin
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 в верхний край кнопки минус высота всплывающей подсказки (чтобы сместить ее от верхнего края).
Вот обновленная реализация, которая отображает всплывающие подсказки над компонентом:
В обновленной реализации я вычитал ширину и высоту всплывающей подсказки из левого и верхнего краев кнопки, соответственно, чтобы сместить ее над компонентом. Вы можете изменять эти значения, как вам нужно, чтобы достичь желаемой позиции для вашей всплывающей подсказки.
В статье рассматривается возможность изменения позиции всплывающих подсказок компонентов в приложении Delphi, показывая их не только непосредственно под областью компонента, но и на более высоком уровне.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.