Russian Belarusian English German Japanese Ukrainian

Label, StaticText и Panel - отображение текста

CuBook2.635

Для отображения различных надписей на форме используются в основном компоненты Label, StaticText и Panel. Первые два из этих компонентов метки, специально предназначенные для отображения текстов. Основное назначение панели Panel - компоновка компонентов в окне формы, однако можно использовать и для вывода текстов.
 
Тексты, отображаемые в компонентах, определяются значением их свойства Caption. Его можно устанавливать в процессе проектирования или задавать и изменять программно во время выполнения приложения. Например:
Label1->Caption = "Новый текст";
Свойство Caption имеет тип строки AnsiString. При присваивании этому типу числовой информации происходит ее автоматическое преобразование в строку. Поэтому вы можете непосредственно осуществлять подобные присваивания. Например:
Label1->Caption = 5.1;
Оператор приведет к появлению в метке надписи «5,1». Но если вы хотите занести в метку смешанную информацию, состоящую из строк символов и чисел, вы должны воспользоваться функциями FloatToStr и IntToStr, переводящими соответственно числа с плавающей запятой и целые в строку. Для формирования текста, состоящего из нескольких фрагментов, можно использовать операцию "+", которая для строк означает их склеивание (конкатенацию). Например, если в программе имеется целая переменная I, отображающая число сотрудников некоторой организации, то вывести в метку Label1 информацию об этом можно оператором:
Label1->Caption = "Число сотрудников: "+IntToStr(I);
Во всех компонентах цвет фона определяется свойством Color, а цвет надписи подсвойством Color свойства Font. Если цвет специально не задавать, то цвет фона обычно сливается с цветом контейнера, содержащего метку, так что фон просто не заметен.
 
Для метки Label цвет и шрифт - единственно доступные элементы оформления надписи. Компоненты StaticText и Panel имеют кроме того свойство Border - Style, определяющее рамку текста - бордюр. При стиле sbsNone метка StaticText по виду не отличается от метки Label. Вероятно, если уж использовать бордюр, то наиболее приятный стиль sbsSunken.
Компонент Panel кроме свойства BorderStyle имеет еще свойства Bevellnner, BevelOuter, BevelWidth, BorderWidth, которые предоставляют богатые возможности оформления надписи. Таким образом, с точки зрения оформления выводимого текста максимальные возможности дает Panel и минимальные Label.
 
Размещение всех текстовых компонентов на форме определяется, в частности, свойствами Top, Left, Height, Width, Aline, общими для всех оконных компонентов. Эти свойства, определяющие координаты компонента, его размеры и их изменение при изменении пользователем размеров родительского компонента.
 
Размер меток Label и StaticText определяется также свойством AutoSize. Если это свойство установлено в true, то вертикальный и горизонтальный размеры компонента определяются размером надписи. Если же AutoSize равно false, то выравнивание текста внутри компонента определяется свойством Alignment, которое позволяет выравнивать текст по левому краю, правому краю или центру клиентской области метки. В панели Panel также имеется свойство AutoSize, но оно не относится к размерам надписи Caption. Однако свойство выравнивания Alignment работает и для панели.
 
В метке Label имеется свойство WordWrap - допустимость переноса слов длинной надписи, превышающей длину компонента, на новую строчку. Чтобы такой перенос мог осуществляться, надо установить свойство WordWrap в true, свойство AutoSize в false (чтобы размер компонента не определялся размером надписи) и сделать высоту компонента такой, чтобы в нем могло поместиться несколько строк. Если WordWrap не установлено в true при AutoSize равном false, то длинный текст, не помещающийся в рамке метки, просто обрезается.
 
В метке StaticText перенос длинного текста осуществляется автоматически, если значение AutoSize установлено в false и размер компонента достаточен для размещения нескольких строк. Для того чтобы в StaticText осуществлялся перенос при изменении пользователем размеров окна, надо осуществлять описанную выше перерисовку компонента методом Repaint в обработчике события формы OnResize. В панели размещение надписи в нескольких строках невозможно.
 
Можно отметить еще одно свойство меток Label и StaticText, превращающее их в некоторое подобие управляющих элементов. Это свойство FocusControl - фокусируемый компонент. Если в свойстве метки Caption поместить перед одним из символов символ амперсанд "&", то символ, перед которым поставлен амперсанд, отображается в надписи метки подчеркнутым (сам амперсанд вообще не отображается). Если после этого обратиться к свойству метки FocusControl, то из выпадающего списка можно выбрать элемент, на который будет переключаться фокус, если пользователь нажмет клавиши ускоренного доступа клавишу Alt + подчеркнутый символ. Подобные клавиши ускоренного доступа предусмотрены в управляющих элементах: разделах меню и кнопках. Благодаря свойству FocusControl метки могут обеспечить клавишами ускоренного доступа иные элементы, например, окна редактирования, в которых такие клавиши не предусмотрены. Только для того, чтобы клавиши ускоренного доступа в метках срабатывали, необходимо установить свойство ShowAccelChar в true.
Для отображение текстовой информации, и даже с дополнительной возможностью прокрутки длинных текстов, можно использовать также окна редактирования Edit и MaskEdit в режиме Readonly.
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий


Защитный код Обновить