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

1102

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

24.Написать обработчик пункта меню Формат ->Перенос по словам .

25.Написать обработчик пункта меню Формат - >Шрифт.

26. Написать обработчик пункта меню Вид->Строка с о ­

стоян и я .

4.ОСНОВЫ РАБОТЫ С КОМПОНЕНТАМИ

Вглаве приводятся классификация компонентов, их наиболее важные свойства, рассматриваются основные компоненты C+-hBuilder и примеры их использования при разработке приложе­ ний. При знакомстве с материалом этой главы необходимо выпол­ нить все примеры, приведенные в занятии, ответить на вопросы, которые ставятся по ходу изложения материала, и выполнить са­ мостоятельно все дополнительные упражнения.

4.1. Классификация и основные свойства компонентов

4.1.1. Классификация компонентов

Компоненты можно классифицировать по разным признакам. По назначению компоненты подразделяются на:

-формы;

-компоненты отображения текстовой информации;

-компоненты редактирования текстовой информации;

-кнопки;

-меню;

-индикаторы;

-радиокнопки;

-компоненты для отображения информации в табличном виде;

-компоненты выбора из списков;

-панели;

-диалоговые компоненты;

-графические компоненты;

-компоненты для работы с базами данных;

Компоненты бывают визуальными и невизуальными.

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

ский и редактируемый текст, изображения и многое другое. Боль­ шинство компонентов являются визуальными. При разработке программы компоненты выглядят так, как они будут выглядеть во время ее выполнения.

Невизуальные компоненты не видны пользователю во время выполнения приложения. Эти компоненты выполняют специфиче­ ские задачи. Примеры таких компонентов: системные таймеры, диалоговые компоненты, компоненты для работы с базами данных ит.д.

Любой компонент C++Builder является собственностью дру­ гого компонента и, в свою очередь, может быть владельцем одного или нескольких компонентов, т.е. в этом случае компонент играет роль контейнера для других компонентов. Примерами компонен­ тов-контейнеров являются ТРапе 1, TGroupBox и т.д.

Компонент может принадлежать либо форме, либо другому компоненту.

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

Компоненты оконного типа могут получить фокус ввода, т.е их можно связать с клавиатурой. Примерами компонентов оконно­ го типа являются T E d it, ТМешо, T B u tto n , T B itB tn и т.д. Эти компоненты имеют свойство T ab O rd er, которое устанавливает очередь этого компонента при переключении клавишей Tab. Для изменения свойства компонентов лучше всего использовать ко­ манду меню:

E d it- > T a b O rd e r

Примеры неоконных компонентов: T L a b e l, TSpeedB utton

и т.д. у этих компонентов нет свойства T abO rder.

Пример 4.1

- Расположите на форме 2 компонента T B utton 3 компонен­ та T L ab el и 3 компонента T E d it (рис. 4.1).

-Запустите приложение и проверьте правильность работы приложения.

4.1.2. Основные свойства компонентов

Каждый компонент имеет набор свойств, методов и событий. В объектно-ориентированном программировании функции, реали­ зованные в классе, называются методами.

Для изменения свойств компонентов предназначен инспектор объектов. Некоторые свойства можно изменять с помощью мыши (положение компонента и его размеры).

Для того чтобы заставить реагировать компонент на какоелибо событие, необходимо написать специальный метод, который называется обработчиком события.

Большинство свойств компонентов доступно на этапе разра­ ботки приложения, но есть такие, которые доступны только во время выполнения программы, например свойство M o d ifie d

компонента ТМегтю. Это и другие подобные свойства компонентов вы не найдете в инспекторе объектов.

Ниже перечислены общие свойства компонентов.

1. Все компоненты имеют свойство Name, которое определяе имя компонента. Компонентам могут присваиваться имена по умолчанию, например, для кнопок B u tto n l, B u tto n 2 , , для меток L ab e 11, L abe 12, . Имена по умолчанию можно исполь­ зовать для разработки тестовых программ и не рекомендуется при написании больших приложений.

Рекомендация. При разработке собственных имен желатель­ но выработать систему двухили трехбуквенных префиксов, коди­ рующих тип компонента, например:

-f m - для форм приложений (TForm);

- l b - для компонентов T L ab el;

- b t n - для компонентов T B u tto n ;

~ s b - для компонентов T S p eed B u tto n ; - e d - для компонентов T E d it.

Свойство Name задается в соответствии с правилами образо­ вания имен переменных в C++.

2. Положение и размеры визуальных компонентов определя­ ются четырьмя его свойствами (в пикселах): L e f t , Т ор, H e ig h t, W idth . Свойства L e f t и Тор задают координаты левого верхнего угла, свойства H e ig h t и W id th - высоту и ширину компонента. Для всех компонентов, кроме форм, эти свойства за­ даются в координатах клиентской части родительского компонен­ та. Для формы - в координатах экрана. Клиентская часть компонента - это внутренняя его область за исключением заголовка, рамки и меню.

3. Свойство V is i b l e определяет видимость визуального компонента во время выполнения приложения. Любой визуальный компонент можно спрятать или показать с помощью свойства V is ib le или методами H ide и Show.

Если устанавливается в f a l s e свойство V i s i b l e

компонен­

та-контейнера, то становятся невидимыми и все расположенные на

нем дочерние компоненты, независимо от значения

их свойств

V is ib le .

 

 

 

Если свойство V i s i b l e

ранее

невидимого

компонента-

контейнера устанавливается в

tr u e , то становятся видимыми и

все его дочерние компоненты, у которых V i s i b l e равно tr u e .

4. Свойство E n a b le d определяет

доступность

компонента

для пользователя. Чтобы сделать компонент недоступным, надо установить E n a b le d в f a l s e . Недоступный компонент отобра­ жается серым цветом. Он игнорирует события, связанные с мы­ шью, клавиатурой и события таймера onT im er. Чтобы восстано­ вить доступность компонента, надо установить E n a b le d в tr u e .

5. Свойство C a p tio n связывает с компонентом некоторую строку текста, поясняющую его назначение. Чаще всего это над­ писи на кнопках, метках, панелях, тексты разделов меню и т.д. По умолчанию C a p tio n совпадает с именем компонента - свойством Name.

Для разделов меню и кнопок можно в свойстве C ap tio n ука­ зать символы быстрого доступа. Для этого перед соответствую­ щим символом надо поставить символ амперсанда - &. Следую­ щий за амперсандом символ будет отображаться подчеркнутым и будет являться символом быстрого доступа.

Свойство C a p tio n имеет тип строки A n s iS trin g . Его можно устанавливать в процессе проектирования или задавать и изменять программно во время выполнения приложения. Напри­ мер:

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

При присваивании этому свойству числовой информации происходит ее автоматическое преобразование в строку. Поэтому можно непосредственно осуществлять подобные присваивания:

L a b e l l - > C a p t i o n = 100;

Если нужно занести в метку смешанную информацию, со­ стоящую из символьных строк и чисел, необходимо воспользо­ ваться функциями F lo a tT o S tr , F lo a tT o S trF и In tT o S tr,

переводящими соответственно числа с плавающей точкой и целые в строку.

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

L a b e l l - > C a p t i o n = "Число студен тов:

+ I n tT o S tr ( k ) ;

6. Свойство T e x t определяет текстовую строку, связанную управляющим элементом. Свойство T e x t позволяет прочесть или задать строку, связанную с данным управляющим элементом. По умолчанию значение T e x t равно имени компонента - его свойст­

ву Name. Применяется в основном в компонентах редактирования и в Списках.

Свойство T e x t имеет тип строки A n s i S t r i n g . При при­ сваивании этому типу числовой информации происходит ее авто­ матическое преобразование в строку:

E d i t l - > T e x t = 1 0 0 ;

При вводе из окна числовой информации надо использовать

функции S tr T o F lo a t,

F lo a tT o S tr F (преобразование строки в

значение с плавающей

запятой) и S t r T o I n t (преобразование

строки в целое значение). Если вводимый текст не соответствует числу, то функции преобразования генерируют исключения E C o n v e r tE rr o r . Поэтому в программе необходимо предусмот­ реть обработку этого исключения, например:

int ГП;

try

{

ш = S t r T o I n t ( E d i t l - > T e x t ) ;

}

catch (E C o n v e r tE r r o r &)

{

Show M essage( "Ошибка в

данных, п о вто р и те в в о д " ) ;

}

 

 

7.

Свойство C o lo r

определяет цвет фона компонента. Значе

ние цвета может задаваться как значение, определяющее интен­ сивность красного, зеленого и синего цветов в формате RGB, или быть равным одной из перечисленных ниже предопределенных в C++Builder констант.

Инспектор объектов содержит два набора цветов. Первая

часть этих констант

соответствует определенным цветам:

c lB la c k ,

c lM a ro o n ,

c lG r e e n

и т.д. А вторая часть содержит

системные

цвета

Windows:

c lM e n u T e x t,

c lB tn F a c e ,

c lA c ti v e C a p ti o n

и т.д. Если использовать цвета из этой груп­

пы, то приложение будет автоматически менять цвета при измене­ нии цветовой схемы Windows. Пользователь может менять эту

схему с помощью панели управления Windows. Таким образом, эти цвета могут изменяться от системы к системе. Например, c lB tn F a c e может соответствовать серому цвету в одной схеме и желтовато-коричневому в другой. Как правило, лучше использо­ вать в приложении эти системно зависимые цвета. Тогда ваше приложение не будет выбиваться из общей гаммы цветов, на кото­ рую настроился пользователь.

Если свойство ParentColor компонента установлено в true (значение по умолчанию), то цвет фона.данного компонента определяется свойством Color контейнера, содержащего данный компонент. Это позволяет автоматически согласовывать цвета компонентов, содержащихся в одной области окна. Как только вы задаете в инспекторе объектов или программно значение Color,

свойство ParentColor переключается в false.

8.Свойство Cursor определяет изображение курсора мыши, когда он расположен в области компонента. Изменение изображе­ ния курсора мыши при перемещении его в области компонента указывает пользователю на действия, которые он при этом может совершить.

9.Свойство Font задает шрифт для компонентов, содержа­ щих текстовую информацию. Свойство Font - экземпляр класса

TFont и имеет собственные свойства. Свойство Color определя­ ет цвет шрифта, а свойство Name позволяет выбрать гарнитуру шрифта. Свойство Height используется для определения высоты шрифта в пикселах, а свойство Size определяет высоту шрифта в пунктах (1/72 дюйма). Когда вы изменяете одно из этих свойств, другое изменяется автоматически. Свойство Style можно ис­ пользовать для установки полужирного, курсивного, подчеркнуто­ го или перечеркнутого шрифта.

Шрифт может быть пропорциональным или моноширинным

(с фиксированной шириной символов). Большинство шрифтов яв­ ляются пропорциональными. Это означает, что для изображения каждого символа отводится столько места, сколько действительно

необходимо. Пропорциональными являются такие шрифты, как Times New Roman, Arial и т.д. У моноширинного шрифта все символы имеют одинаковую ширину. Такие шрифты удобно ис­ пользовать в редакторах кода. Наиболее часто используемый из таких шрифтов - Courier New.

10. Свойства P a r e n t . Для упрощения разработки интерфейс­ ных элементов, выдержанных в едином стиле, в состав видимых компонентов включены свойства, связывающие ту или иную осо­ бенность оформления или поведения компонента с соответствую­ щей особенностью родителя. Таких свойств четыре: P a r e n t -

C o lo r, P a r e n tC tl3 D , P a r e n tF o n t, P a r e n tH in t .

Если, например, свойство ParentColor имеет значение true, компонент будет использовать при прорисовке цвет своего родителя, и изменение цвета родителя приведет к немедленному изменению цвета дочернего компонента. Явная установка значе­ ния свойства Color приведет к автоматической установке false

свойству ParentColor.

11. Свойство TabOrder. Свойство TabOrder применяется для компонентов оконного типа и устанавливает очередь этого компонента при переключении клавишей Tab. По умолчанию этот порядок определяется размещением компонентов на форме. Пер­ вый компонент имеет значение этого свойства, равное 0, второй - 1 и т.д. Для изменения этого порядка необходимо изменить значе­ ние свойства TabOrder определенного компонента. Компонент, значение свойства TabOrder которого равно 0, получает фокус при отображении формы.

Примечание. Для изменения свойства компонентов лучше всего использовать команду меню: Edit ->Tab Order

4.1.3. Типы свойств

Свойства компонентов могут иметь следующие типы:

- простые - принимают значения стандартных типов С-н-Builder (Visible, Enabled, Left, Top, Width,

Height, Text, Caption и т.д.).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]