Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

C++Builder. Учебный курс

.pdf
Скачиваний:
14
Добавлен:
15.11.2022
Размер:
9.54 Mб
Скачать

8.Как изменить в инспекторе объектов значение свойства, ко­ торое является объектом класса?

9.Как могут изменяться параметры шрифта во время выпол­ нения программы?

Упражнения

1.Создайте приложение, в котором одно из простых свойств компонента изменяется при выполнении программы.

2.Создайте приложение, в котором нажатие на одну кнопку приводит к запрету максимизации окна приложения, а при нажа­ тии на другую - к разрешению.

4.2. Компоненты отображения и редактирования текстовой информации

4.2.1. Компоненты отображения текстовой информации

Для отображения различных надписей на формах использу­ ются в основном компоненты T L abel, T S ta tic T e x t и T P an el.

Первые два из этих компонентов - метки, специально предна­ значенные для отображения текстов. Основное же назначение компонента T P an el - размещение компонентов в окне формы. Однако, панель также можно использовать для вывода текстов.

4.2.1.1. Компонент TLabel

Компонент T L abel расположен на странице S ta n d a rd па­ литры компонентов и используется для размещения на формах и других контейнерах текста, который не изменяется пользователем. Компонент визуальный.

Текст, Отображаемый в компоненте, определяется значением свойства C a p tio n . Его можно устанавливать в процессе проекти­ рования илй задавать и изменять программно во время выполне­ ния приложения. Например:

L a b e l l - > C a p t i o n = "Новый т е к с т " ;

Для формирования текста, состоящего из нескольких фраг­ ментов, можно использовать операцию «+», которая для строк оз­ начает склеивание (конкатенацию), например:

L a b e l l - > C a p t io n = "Число с т у д е н т о в : + I n t T o S t r ( k ) ;

Цвет фона компонента определяется свойством Color, а цвет надписи подсвойством Color свойства Font.

Свойство Transparent определяет прозрачность фона мет­ ки, если значение этого свойства равно false, фон метки закра­ шивается собственным цветом Color, в противном случае ис­ пользуется фон родительского компонента.

Размер метки определяется также свойством AutoSize. Если это свойство установлено в true, то высота и ширина компонента определяются размером надписи. Если же AutoSize равно false, то высота и ширина компонента определяется свойствами

Height и Width.

Свойство Wordwrap используется для переноса слов длин­ ной надписи, превышающей длину компонента на новую строчку. Чтобы такой перенос мог осуществиться, надо установить свойст­ во Wordwrap в true, а свойство AutoSize - в false.

Компонент TLabel можно связать с другим компонентом. Для этого необходимо в свойстве Caption метки поместить пе­ ред одним из символов амперсант & (символ, перед которым по­ ставлен амперсант, будет отображаться в надписи метки подчерк­ нутым) и присвоить свойству FocusControl значение, соответ­ ствующее названию компонента, на который будет переключаться фокус, если пользователь нажмет клавиши ускоренного доступа: клавишу Alt+подчеркнутый символ. Необходимо установить значение ShowAccelChar в true чтобы клавиши ускоренного доступа работали.

4.2.1.2. Компонент TStaticText

Компонент TStaticText находится на странице Addi­ tional палитры компонентов и имеет ту же функциональность,

что и компонент T L a b e l, за исключением того, что этот компо­ нент имеет свойство B o r d e rS ty le , определяющее рамку текста - бордюр.

Кроме этого в метке T S t a ti c T e x t перенос длинного текста осуществляется автоматически (этот компонент не имеет свойства W ordw rap), если значение свойства A u to S iz e установлено в f a l s e и размер компонента достаточен для размещения несколь­ ких строк.

Вопросы для самоконтроля

1.Какие компоненты используются только для отображения текстовой информации?

2.Приведите примеры использования компонента T L ab el в известных программах.

3. Чем компонент T S t a ti c T e x t отличается от компонента

T L a b e l?

4.Как изменить цвет надписи на метке?

5.Как изменить цвет фона метки?

6.Какой тип имеет свойство C a p tio n компонентов.

7.Как изменить надпись на метке при выполнении приложения.

8.Назначение свойства T r a n s p a r e n t компонентов.

9. Назначение свойств A u to S iz e и W ordw rap

компонента

T L a b e l.

 

 

 

10. Назначение

свойства

A u to S iz e

компонента

TS t a ti c T e x t .

4.2.2.Компоненты редактирования

В C++Builder имеется четыре стандартных компонента редак­

тирования T E d i t , T M a sk E d it, ТМешо и T R ic h E d it.

В компонентах предусмотрены типичные комбинации горя­ чих клавиш:

-

C trl+ C

-

С ору;

-

C trl+ X

-

C u t;

-

C trl+ V

-

P a s t e ;

-

C tr l+ Z

-

U ndo.

Свойство M ax L en g th определяет максимальную длину вво­

димого текста. Если M axL ength=0, то длина текста не ограничена.

Если свойству R e a d o n ly присвоить значение t r u e , то ком­

понент будет использоваться только для чтения.

Свойство M o d ifie d , доступное только во время выполнения,

показывает, проводилось ли редактирование текста в компоненте.

Свойства времени выполнения S e lL e n g th , S e l S t a r t ,

S e lT e x t, определяющие соответственно длину выделенного тек­ ста, позицию перед первым символом выделенного текста и сам выделенный текст. Если выделенного текста нет, то свойство S e l S t a r t просто определяет текущее положение курсора.

Метод

C le a r используется

для очистки

окна редактирова­

ния, а метод C l e a r S e l e c t i o n -

для удаления выделенного тек­

ста.

 

 

 

Для работы с буфером обмена данными

( C lip b o a r d ) ис­

пользуются

методы C o p y T o C lip b o a rd , C u tT o C lip b o a rd ,

Ра s t e F ro m C lip b o a rd .

 

 

4.2.2.1. Компонент TEdit

Компонент T E d it расположен на странице S ta n d a r d па­ литры компонентов и представляет собой однострочный редактор текста.

Основным свойством компонента является свойство T e x t, используемое для отображения текста.

Свойство A u to S e le c t определяет, будет ли автоматически выделяться весь текст при передаче фокуса в окно редактирова­ ния. Его имеет смысл задавать равным t r u e в случаях, когда при переключении в данное окно пользователь будет вероятнее всего заменять текущий текст, а не исправлять его.

При значении свойства A u to S iz e , равным t r u e , высота ок­ на подстраивается под размер текста, ширина окна не изменяется.

Компонент не имеет свойств A lig n и A lig n m e n t, поэтому текст в компоненте может быть выровнен только по левому краю.

Свойство C h a rC a se используется для изменения регистра символов.

Компонент T E d it можно использовать для ввода пароля. Для этого необходимо свойству P a ssw o rd C h a r присвоить значение символа (обычно для этого используется символ *), который будет отображаться при вводе пароля. По умолчанию значение свойства P a s s w o rd C h a r равно #0 - нулевому символу. В этом случае - это обычное окно редактирования.

С помощью свойств S e l S t a r t и S e lT e x t можно позицио­ нировать текстовый указатель на любой символ строки: в первое свойство нужно поместить порядковый номер символа от начала текста, во второе - пустую строку. Например, позиционирование указателя в конец текста будет выглядеть следующим образом:

E d i tl - > S e l S t a r t

= E d it 1 - > T ext. L ength () ;

E d itl- > S e lT e x t

=

В ряде случаев бывает удобно ограничить ввод символов, ко­ торые могут быть введены в окне редактирования. Для этого про­ ще всего использовать обработчик события O nK eyP ress, которое происходит при каждом нажатии клавиши.

4.2.2.2. Компонент TMaskEdit

 

Компонент T M ask E d it расположен на

странице A d d i­

t i o n a l палитры компонентов представляет

собой компонент

T E d it, к которому добавлен фильтр, или маска вводимых данных. Маска используется для того, чтобы ограничить вводимые данные определенным диапазоном чисел или символов. Кроме того маска может содержать специальные символы, которые по умолчанию помещаются в поле редактирования. Например, дата часто запи­ сывается в формате: 2 4 /1 2 /0 2 или 2 4 .1 2 .0 2 .

Маска редактирования, предназначенная для ввода даты, мо­ жет уже содержать наклонные черты в нужных местах, и пользо­ вателю останется ввести только числа. Маска редактирования мо­

жет ограничить вводимые символы только цифрами, чтобы ис­ ключить возможность ввода пользователем нечислового символа.

Свойство E d itM a s k задает используемую маску. Можно вы­ брать одну из предопределенных масок или создать свою собст­ венную.

4.2.2.3. Компонент ТМето

Компонент ТМето расположен на странице S ta n d a r d па­ литры компонентов и представляет собой многострочный редак­ тор текста.

Текст хранится в свойстве L in e s класса T S t r in g s и, таким образом, представляет собой пронумерованный набор строк (ну­ мерация начинается с нуля). Начальное значение текста можно установить в процессе проектирования, нажав кнопку с многото­

чием около свойства L in e s

в окне инспектора объектов. Доступ к

отдельной

строке можно

получить с помощью свойства

S t r i n g s

[ i n t I n d e x ] , например:

M e m o l-> L in e s-> S trin g s[0]

Учтите, что если окно редактирования изменяется в размерах при работе с приложением и свойство W ordW rap=true, то ин­ дексы строк будут изменяться при переносах строк.

В компоненте ТМето шрифт одинаков для всего текста и оп­ ределяется свойством F o n t.

Свойство T e x t, доступное во время выполнения программы, содержит отображаемый компонентом текст в виде одной длинной строки. В цепочке символов границы строк многострочного текста выделяются символами \ г \ п . Свойство T e x t удобно использо­ вать для поиска в тексте нужного фрагмента.

Свойство S c r o l l B a r s

определяет наличие полос прокрути

текста в окне.

 

Свойство W ordw rap

определяет допустимость переноса

длинных строк.