Статусная строка
Источник: gurin.tomsknet.ru
Оформил: RT17
Визуальный компонент - статусная строка, используемая для индикации ошибок (или нормального состояния). Компонент отображает строку сообщения и графический образ, соответствующий текущему состоянию. Компонент может быть использован как составная часть более сложной статусной строки.
Класс
TGsvStatusBarIndexDrawEvent = procedure(aIndex: Integer;
const aArgument: String)
of object;
TGsvStatusBarDrawEvent = procedure(aImageIndex: Integer;
const aText: String) of object;
TGsvStatusBar = class(TCustomPanel)
public
procedure Clear;
procedure Draw(aImageIndex: Integer;
const aText: String; aHelpIndex: Integer); overload;
procedure Draw(aImageIndex: Integer; const aText: String);
overload;
procedure IndexDraw(aIndex: Integer; const aArgument: String);
overload;
procedure IndexDraw(aIndex: Integer); overload;
property ImageIndex: Integer read FImageIndex
write SetImageIndex;
property HelpIndex: Integer read FHelpIndex
write SetHelpIndex;
published
property Align;
property Anchors;
property BevelInner;
property BevelOuter;
property BevelWidth;
property BorderWidth;
property BorderStyle;
property Caption;
property Color;
property Ctl3D;
property Enabled;
property Font;
property Locked;
property ParentColor;
property ParentCtl3D;
property ParentFont;
property PopupMenu;
property Visible;
property OnContextPopup;
property OnClick;
property Images: TCustomImageList read FImages
write SetImages;
property ImageHelpIndex: Integer
read FImageHelpIndex write FImageHelpIndex;
property OnIndexDraw: TGsvStatusBarIndexDrawEvent
read FOnIndexDraw write FOnIndexDraw;
property OnDraw: TGsvStatusBarDrawEvent
read FOnDraw write FOnDraw;
end;
Ключевые методы, свойства и события
Метод Clear. Очистка строки.
Метод Draw. Вывод строки сообщения aText, графического
образа с индексом aImageIndex, символизирующего тип собщения и
значка справки, сообщающего о том, что в справочном файле имеется
более подробное сообщение с контекстным индексом aHelpIndex.
Графические образы хранятся в компоненте TImageList, который
устанавливается свойством Images. Значок справки также хранится в
компоненте Images и его индекс определяется свойством
HelpImageIndex. Индекс aImageIndex фактически означает статус
сообщения. Для облегчения его использования целесообразно определить
набор констант статуса, соответствующих графическим образам,
например:
const
errNeutral = -1;
errSuccess = 0;
errWarning = 1;
errError = 2;
errHint = 3;
errWorking = 4;
Метод Draw. Упрощенная версия предыдущего метода - не
устанавливает индекс контекстной справки. На статусной строке будет
отображаться только один значок, определяемый aImageIndex.
Метод IndexDraw. Этот метод используется для вывода
статусного сообщения, которое задается не строкой и графическим
образом, а индексом сообщения aIndex и строковым аргументом
aArgument. Этот метод удобно использовать, когда сообщения об
ошибках формируются со ссылкой на некоторую таблицу ошибок,
содержащую текст сообщения и его статус. Сама таблица ошибок может
быть реализована любым способом, например, как массив, ресурсы или
текстовый файл. Вызов этого метода фактически приводит к вызову
события OnIndexError, которому передается aIndex и aArgument. Это
событие должно работать с конкретной реализацией таблицы ошибок.
Метод IndexDraw. Упрощенная версия предыдущего метода -
отсутствует строковый аргумент.
Событие OnIndexDraw. Это событие нужно для преобразования
индекса в конкретное строковое сообщение с соответствующим типом и
возможной справкой, после чего вызывается основной метод Draw.
Реализация события зависит от способа реализации таблицы ошибок.
Событие OnClick. По этому событию можно вызвать
контекстную помощь, если ее индекс был задан в последнем статусном
сообщении.
Событие OnDraw. Это событие вызывается из методов Draw.
Событие можно использовать, например, для выдачи звукового сигнала
или записи сообщений в файл протокола.
Свойство Images. Хранит ссылку на компонент типа
TImageList, содержащий графические образы, отображаемые в статусной
строке.
Свойство HelpImageIndex. Индекс в Images графического
значка подробной справки.
Свойство Caption. Получение текста сообщения или его
изменение без влияния на графический образ.
Свойство ImageIndex. Получение последнего статуса ошибки
или установка нового значения статуса (графического образа) без
влияния на строку сообщения.
Свойство HelpIndex. Получение последнего индекса
контекстной справки или установка нового индекса.
Свойство ShowHint управляется автоматически в зависимости от
значения HelpIndex. Если HelpIndex больше 0, то ShowHint
устанавливается в True. Это позволяет задать в свойстве Hint строку,
которая будет отображаться в виде подсказки в том случае, если
доступна более подробная справочная информация по текущему
сообщению.
Исходники: здесь
|