Шаг 13.
Вкладка Additional. Компонент TStaticText

    На этом шаге мы рассмотрим компонент TStaticText.

    Компонент TStaticText подобен компоненту TLabel за исключением двух обстоятельств.

    Во-первых, он порожден от класса TWinControl и, таким образом, имеет Windows-окно. Это обстоятельство может быть необходимым условием правильного взаимодействия со связанным свойством FocusControl управляющим элементом, если это внешний для Delphi элемент ActiveX.

    Во-вторых, в его свойстве:

type TStaticBorderStyle = (sbsNone, sbsSingle, sbsSunken) ; 
property BorderStyle: TStaticBorderStyle; 
добавлено значение sbsSunken, которое создает иллюзию "вдавленности" компонента. Все остальные свойства и методы компонента совпадают со свойствами и методами TLabel.

    Некоторые свойства компонента TStaticText перечислены в таблице 1:

Таблица 1. Свойства компонента TStaticText
Свойство Описание
Property Align: TAlign; Определяет, остается ли компонент неизменным при изменении размеров содержащей его формы или др. компонента. Возможные значения свойства:
  • alNone - остается там, где он размещен во время проектирования. Это значение Align по умолчанию;
  • alTop - занимает всю верхнюю часть контейнера;
  • alBottom - занимает всю нижнюю часть контейнера;
  • alLeft - занимает всю левую часть контейнера;
  • alRight - занимает всю правую часть контейнера;
  • alClient - занимает всю клиентскую область контейнера. Если в контейнере часть клиентской области уже занята, компонент занимает всю ее оставшуюся часть.
Property Aligment: TAlignment; Определяет, как выравнивается текст в пределах области, занимаемой компонентом:
  • taLeftJustify - текст выравнивается по левому краю элемента управления;
  • taCenter - текст выравнивается по центру элемента управления;
  • taRightJustify - текст выравнивается по правому краю элемента управления.
Property AutoSize: Boolean; Если свойство AutoSize имеет значение True, то размеры рабочей области элемента управления автоматически приводятся в соответствие с шириной и высотой текста. Если же это свойство имеет значение False, длина текста и параметры шрифта не влияют на размер компонента. По умолчанию данное свойство имеет значение True.
Property BorderStyle:TBorderStyle; Устанавливает рамку вокруг элемента управления:
  • sbsNone - нет;
  • sbsSingle - простая (одна линия);
  • sbsSunken - объемная.
TDragMode = (dmManual, dmAutomatic);
Property DragMode: TDragMode;
Определяет поведение компонента в процессе его перетаскивания. Свойство может принимать значения:
  • dmAutomatic - от программиста не требуется обработка каких-либо событий. Компонент готов к перетаскиванию. Пользователю достаточно щелкнуть на его изображении и начать перетаскивать;
  • dmManual - компонент не может быть перетащен, пока приложение не вызовет метод BeginDrag.
Property Enabled: Boolean; Определяет доступность компонента для пользователя. Чтобы сделать компонент недоступным, надо установить Enabled в False. Недоступный компонент отображается серым цветом. Он игнорирует события, связанные с мышью, клавиатурой и события таймера OnTimer. Чтобы восстановить доступность компонента, надо установить Enabled в True. Компонент начинает нормально отображаться на экране и реагировать на действия пользователя.
Property FocusControl:TWinControl; Свойство FocusControl связывает компонент-надпись с другим элементом управления в форме. Если свойство Caption компонента-надписи содержит "горячую" клавишу, то при нажатии этой клавиши активным становится элемент управления, указанный в свойстве FocusControl. Текст компонента-надписи удобно использовать для того, чтобы описать назначение другого управляющего элемента или дать пользователю указания по его применению.
Property ShowAccelChar:Boolean; Определяет, как отображается символ & в тексте надписи. Если это свойство имеет значение True, символ & не появляется, а следующий за ним символ изображается подчеркнутым. Таким образом можно узнать, что клавиша с символом, который отображается подчеркнутым, является "горячей". Если ShowAccelChar имеет значение False, символ & отображается так же, как и любые другие символы. В этом случае использовать свойство ShowAccelChar бессмысленно.
Property Visible: Boolean; Делает видимым/невидимым элемент управления
Property Width: Integer; Определяет горизонтальный размер компонента или формы в пикселях. Используется для изменения ширины компонента при изменениях размеров окна приложения.

    Используйте TStaticText вместо TLabel в тех случаях когда необходимо использовать управляющие клавиши совместно с элементом управления.

    Выполним задание: создадим приложение, в котором щелчки на кнопке будут приводить к появлению и стиранию надписи.

    Разместим на форме компоненты: TSpeedButton и TStaticText. Для кнопки установим следующие свойства: Caption - "&Щелкни", AllowAllUp - True. А для компонента TStaticText: Caption - "Кнопка нажата", Visible - False. Напомним, что в надписи на кнопке буква, перед которой стоит символ "&", будет подчеркнутой. Это означает, что теперь кнопке присвоена комбинация клавиш быстрого вызова.

    Для TSpeedButton создадим обработчик события OnClick:

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  StaticText1.Visible:= not StaticText1.Visible; 
end;
Работа программы показана на рисунке 1.


Рис.1.Демонстрация компонента TStaticText

    На следующем шаге мы рассмотрим компонент TControlBar.




Предыдущий шаг Содержание Следующий шаг