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

 

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

 

Автор: Олег Кулабухов

 Ниже описан один прием показа окна

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

 

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

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 Вашего приложения.

 

Подсказки на месте используются для отображения текстовых строк для объектов, которые были обрезаны,

Например, в TreeView. Следующий код был протестирован только на стандартный элемент управления listbox.

После соответствующей модификации вы можете использовать советы по другим виртуальным видеомагнитофонам.

 (Скопируйте только следующий код в файл блока Form1)

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

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

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

 

 Демонстрирует всплывающую подсказку для определенного элемента  управления (Control), возвращает ссылку на hint-объект,  поэтому в дальнейшем подсказка может быть спрятана вызовом 

RemoveHint (смотри ниже).