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

 

 

Если подсказка длинная, то удобно ее разместить в две или более строк.

Code:

procedure TForm1.FormCreate(Sender: TObject);

begin

Button1.Hint := 'Only one string';

Button2.Hint := 'There will be' + #13#10 + 'two strings';

Form1.ShowHint := true;

end;

 

Следующий код помещает главную иконку приложения в окошки подсказок.

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

 

Когда приложение отображает подсказку, он создает экземпляр HintWindowClass, чтобы представить окно используется для отображения подсказки.

Приложения могут настраивать это окно, создавая потомок THintWindow и присвоение его Переменной HintWindowClass при запуске приложения.

 

 С помощью следующего кода можно просто создать пользовательские подсказки. Нужно просто сменить процедурную "Paint".

 

Это показывает следующий код:

 

 З.Ы. Пристегните (uses CoolHint) к любой форме с hint'ами и любуйтесь подсказками.

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

 Это демонстрирует описанный ниже код:

Этот пример показывает, как сделать, чтобы на StatusBar выводилась длинная подсказка при поднесении мыши к объекту.

 

В Windows 2000, формат структуры NotifyIconData, которая используется для работы с иконками в Трее (которая, кстати, называется "The Taskbar Notification Area" :) значительно отличается от предыдущий версий Windows. Однако, эти изменения НЕ отражены в юните ShellAPI.pas в Delphi 5.