Попробуйте запустить приложение и навести на кнопку указатель мыши. Никаких сообщений и подсказок пока не должно быть. Закройте программу и перейдите опять в Delphi. Теперь установите в свойстве showHint у компонента или у главной формы значение true. Если вы установите только у компонента, то подсказка будет появляться только у него. Если у формы, то подсказка будет появляться у всех компонентов на форме, у которых есть текст в свойстве Hint и ParentshowHint равно true.
Запустите приложение и проверьте появление подсказки.
Теперь мы добавим к нашему приложению возможность отображения такого же текста в строке состояния. Установите на форму компонент TStatusBar. Теперь перейдите в редактор кода и найдите раздел private. В нем добавьте объявление процедуры showHint:
procedure ShowHint(Sender: TObject);
Имя процедуры может быть и другим (например, MyShowHint), но параметр должен быть именно такой, как показано выше.
Теперь нажмите сочетание клавиш <Ctrl>+<Shift>+<C>, чтобы Delphi создал заготовку для процедуры. Можете и сами написать полностью код, но я ленивый человек и в какой-то степени экономный. Люблю экономить время.
Итак, процедура showHint будет выглядеть следующим образом:
procedure TFormi.ShowHint(Sender: TObj ect);
begin
StatusBarl.SimpleText := Application.Hint;
end;
Наша процедура должна будет вызываться каждый раз, когда надо вывести подсказку. Внутри процедуры мы присваиваем в свойство SimpleText строки состояния текст, находящийся В Application. Hint. А В Application .Hint всегда находится подсказка, которую надо сейчас отобразить.
Теперь создайте обработчик события Onshow для главной формы и в нем напишите следующий код:
procedure TFormi.FormShow(Sender: TObj ect);
begin
Application.OnHint := ShowHint;
end;
Здесь программно назначается процедура showHint в качестве обработчика события OnHint для класса TApplication. Помните, что этот класс реализует функции приложения, у этого класса есть и основные события. Одно из таких событий — OnHint, которое срабатывает, когда нужно отобразить подсказку. Но можно было поступить и проще.
- Поставить на форму компонент TAppiicationEvents с вкладки Additional.
- У этого компонента на вкладке Events создать обработчик события OnHint и там сразу же написать следующий код: StatusBar1.SimpleText:= Application.Hint
Но проблема В ТОМ, ЧТО компонент TApplicationEvents появился только в Delphi 7, а до этого его не было. К тому же, знать, как можно обойтись без него, не помешает.
Теперь попробуем создать строку состояния из нескольких панелей. Выделите строку состояния и дважды щелкните левой кнопкой мыши по свойству Panels. Перед вами должно открыться окно редактора панелей.
В этом окне кнопка В создает новую панель (также можно нажать клавишу <Ins>). Вторая кнопка § удаляет выделенную в окне панель (также можно нажать клавишу <Del>).
Создайте новую панель и в ее свойстве width (ширина) установите значение 200. Теперь создайте еще одну панель. Все, можно закрывать окно.
Перейдите в процедуру обработчик события OnHint и измените ее текст на:
Здесь в свойство Text первой панели строки состояния присваивается текст сообщения (Application.Hint). Во второй панели вы можете выводить любой текст и использовать его по своему усмотрению. Для этого в любом месте кода можно написать: