 |
 |
Учебник по C++ Builder Глава 4
Учебник по C++ Builder
Глава 4. Инструменты визуальной разработки приложений
Эта глава содержит описание основныхинструментов визуальной разработки программныхприложений. Именно благодаря этим средствам, всочетании с мощностью новейшего компилятора сязыка C++ и инкрементального линкера, C++Builder обеспечивает скоростьвизуальной разработки, продуктивность более 100интерфейсных компонент и гибкость управлениябазами данных.
Интегрированная среда разработки C++Builder IDE (Integrated Development Environment), предназначенная для эффективнойразработки приложений, поможет вамвоспользоваться ее новшествами и в полной мереощутить преимущества нового стиляпрограммирования. Вы сможете быстро переводитьприложение из стадии начального прототипа врабочую программу. В главе 2 читатель ужесоставил общее представление о работе с базовымиинструментальными средствами C++Builder - Палитройкомпонент. Редакторами форм и кода. Инспектором иХранилищем объектов. В данной главе мы продолжимзнакомство с этими и другими инструментами средыC++Builder, уделяя особое внимание описаниювизуальных компонент, представленных на Палитре.
4.1 Администратор проекта
Администратор проекта предназначен дляманипуляций с текущим проектным файлом срасширением .срр. Чтобы открыть окноадминистратора (Рис. 4.1), выполните команду View [ Project Manager.Окно содержит список всех составляющих файлов,ассоциированных с текущим проектом. С помощьюкнопок панели быстрого вызова или опцийконтекстного меню вы сможете добавлять,вычеркивать, сохранять и копировать выбранныйфайл в текущем проекте.
Запись изменений проекта
Установка проектных опций
Включение редактора форм
Включение редактора кода
Вычеркивание файла из списка
Добавление файла к проекту
Список ассоциированных файлов проекта
Контекстное меню администратора проекта
Рис. 4.1. Окно администратора проекта.
Открыть контекстное меню администраторапроекта можно щелчком правой кнопкой мыши влюбом месте окна администратора или нажатиемклавиш Alt+FlO. Контекстное меню содержит следующие опции:
• Save Project сохраняетизменения всех составляющих проектного файла,используя текущие имена файлов. Такое жедействие вызывает команда
File | Save Project As
• Add To Repositoryоткрывает диалог Save Project Template для добавления проектногошаблона к хранилищу объектов.
• New Unit создаетновый модуль в окне Редактора кода и добавляетего к проектному файлу. Новым модулямприсваиваются имена Uniti, Unit2, ... Такое же действие вызываеткоманда File | New Unit.
• New Form создаетпустую форму и новый модуль в окне Редактора кодаи добавляет их к проектному файлу. Новым формамприсваиваются имена Form1,
Form2, Такое же действиевызывает команда File | New Form
• Add File открываетдиалог Add To Project для добавления текущего модуля и связаннойс ним формы к проектному файлу.
• Remove File вычеркиваетмодуль из списка ассоциированных файловтекущего проекта. Такое же действие вызываеткоманда Project | Remove from Project. Внимание: Не вычеркивайтефайлы модулей напрямую или посредством другихпрограмм.
• View Unit активизируетвыбранный модуль в окне Редактора кода. Такое же
действие вызывает команда View | Units.
• View Form активизируетформу, связанную с выбранным модулем, в окнеРедактора форм. Такое же действие вызываеткоманда View | Forms.
• View Project Sourceактивизирует текст текущего проектного файла вокне Редактора кода.
• Options открываетдиалог Options | Project для установки проектных опций. Такое жедействие вызывает команда Options |Project.
• Update записываетизменения текста проекта в проектный файл. Внимание:Не редактируйте проект вручную -C++Builder делает этоавтоматически!
4.2 Редактор форм
Форма представляет собой окно с управляющимикомпонентами, которые переносятся программистомна стадии проектирования или создаютсядинамически в процессе работы программы. C++Builder создаетформу в окне Редактора при добавлении формы кпроекту или берет ее из Хранилища объектов.
Открыть окно Редактора форм можно одним изспособов:
1. Командой File | New Application создайте новое приложение.
2. Командой File | New Form (кнопка быстрого вызова)создайте новую форму.
3. Командой File | Open Project (кнопка быстрого вызова)откройте существующий проект.
Добавить компоненту к форме можно одним изспособов:
1. Найдите нужную компоненту на вкладкахПалитры компонент и щелкните на ней левойкнопкой мыши. Переведите курсор в окно Редактораи вновь щелкните мышью.
2. Дважды щелкните левой кнопкой мыши на нужнойкомпоненте.
Закрыть активное окно Редактора форм можноодним из способов:
1. Кнопкой в правом верхнем углу окна иликлавишами Alt+F4.
2. Командой File | Close.
Закрыть все окна, кроме окна Инспектораобъектов, можно командой File | Close All.
Если вы модифицировали текущую форму и несохранили изменения, C++Builder выдастпредупреждение и откроет диалог команды File | Save As, чтобывы могли ввести новое имя модуля (по умолчанию, Unit1). Если вымодифицировали текущий проект и не сохранилиизменения, C++Builder выдаст предупреждение и откроетдиалог команды File | Save As, чтобы вы могли ввести новое имяфайла проекта (по умолчанию. Project 1).
Чтобы получить контекстно-зависимую справкупри работе с Редактором форм, выберитекомпоненту, о которой вы хотите получитьсправочные сведения, и нажмите клавиши Ctrl+Fl. Еслиискомые сведения не обнаружены, справочнаяслужба Helpвыдаст сообщение "Help Topic Does NotExist".
4.3 Инспектор объектов
Инспектор объектов занимает активную рабочуюпозицию между визуальными компонентамиуправления разрабатываемым приложением ипрограммным кодом, который обеспечивает егоработу. Инспектор объектов имеет две вкладки:
Свойства (Properties) и События (Events).
Вкладка свойств дает вам возможностьманипулировать свойствами компонент, помещаемыхна форму (и свойствами самой формы) на стадиипроектирования, определяя тем самым начальноесостояние компонент. Установка свойствкомпонент во время выполнения программы требуетнаписания соответствующих текстов кода дляобработки событий. Свойство может, в свою очередь, включатьвложенные свойства, что отмечается знаком"+" в левой позиции соответствующей графыбазового свойства.
Вкладка событий содержит список возможныхпрограммных событий и позволяет соединятькомпоненты (или формы) с происходящими событиями.Если дважды щелкнуть мышью на некотором событии, C++Builder создастфункцию обработчика (поначалу с пустым телом) ипереключится на Редактор кода. Редактор кодаустановит курсор на тело обработчика события,которое вы должны заполнить кодом, определяющимреакцию компоненты на данное событие.
В верхней части Инспектора (Рис. 4.2) расположенополе селектора объектов. которое отображаетобъектный тип выбранной компоненты (или формы) ипозволяет раскрыть список всех компонент,помещенных на активную 4юрму. С помощью селекторалегко выбирать рабочие компоненты текущей формы.Ширину столбцов Инспектора можно менять,перетаскивая мышью разделительные линии.
Значение fsNormal свойства FormStyle самой формы означает, что высоздаете SDIприложение с однодокументным интерфейсом, азначение fsMDIForm - MDI приложение с многодокументным интерфейсом.Обратите внимание, что свойству Sorted компоненты TListBox присвоено значениеtrue, поэтому элементысписка будут упорядочены в алфавитном порядке.
Рис. 4.2. Свойства компоненты TListBox в окне Инспектора объектов.
Открыть контекстное меню Инспектора объектовможно щелчком правой кнопкой мыши в любом местеокна Инспектора или нажатием клавишAlt+FlO. Контекстное менюсодержит следующие опции управления и установок:
• Revert to Inheritedвосстанавливает исходное унаследованноеповедение объекта. Применяйте эту операцию,когда вы забыли внесенные изменения свойств.
• Expand показываетвложенные свойства объекта. Такое же действиевызывает двойной щелчок мышью по выбранномубазовому свойству.
• Collapse прячетотображение вложенных свойств объекта. Такое жедействие вызывает двойной щелчок мышью повыбранному базовому свойству.
• Stay On Topрасполагает окно Инспектора поверх остальныхокон и диалогов среды C++Builder.
• Hide прячет активноеокно Инспектора, которое открывается вновьклавишей F11 или по команде View | Object Inspector.
• Help вызываетсоответствующую страницу справочной службы.
В дальнейшем изложении подразумевается, чтоустановка значений свойств и включениеобращений к методам в обработчики событийпроизводятся с помощью Инспектора объектов.
4.4 Хранилище объектов
Хранилище объектов обеспечивает возможность разделения (sharing) или повторногоиспользования (reuse) содержащихся в нем объектов. Вкачестве объектов хранения могут выступать либоподготовленные C++Builder, или созданные вами формы,проекты, модули данных и эксперты. Кроме самихобъектов, вы можете адресовать в хранилище ихшаблоны, в которых зафиксированы тольконеизменяемые в процессе разработки компоненты.
Хранилище в сущности является индекснымтекстовым файлом, содержащим ссылки на страницы,объединяющие указанные объекты.
4.4.1 Разделение объектов
При разделении объектов разработчикприложения может преследовать разные цели:
Разделение объектов между проектами.
Добавляя формы, диалоги и модули данных кхранилищу, вы делаете их доступными другимпроектам.
Например, все ваши проекты могли быиспользовать диалог часто используемой командыменю About,содержащий, наряду с фиксированными текстами икнопками управления, пустые поля для записифамилий авторов приложения, года выпуска и т.д. Изэтого шаблонного диалога все ваши проектыпроизведут диалоги стандартизованного вида,заполняя переменные поля новым конкретнымсодержанием.
Разделение объектов внутри проекта.
Вы можете наследовать формы, уже включенные впроект. Открывая командой File | New диалог New Items, вы увидите вкладку с именемвашего проекта. Если щелчком мыши выбрать этувкладку, откроются списки всех форм, диалогов имодулей данных этого проекта. Затем можнопроизвести новый объект - форму из существующей иприспособить ее по назначению.
Например, некоторому приложению СУБД можетпонадобиться несколько форм, отображающих одни ите же данные, но с разными кнопками управления.Вместо того, чтобы создавать ряд почтиидентичных форм, добавьте к хранилищу единуюформу с общими элементами отображения данных, азатем из этой шаблонной формы производите формыс разными кнопками. Тщательно планируясодержание форм вашего проекта, вы сэкономитемассу времени и усилий, которые понадобились быпри повторной разработке сходных форм в одномпроекте.
Разделение проектов.
Добавляя к хранилищу проект целиком, высоздаете шаблон для будущих проектов. Если выпланируете разработать ряд сходных приложений,все они могут базироваться на единойстандартизованной модели.
Использование экспертов.
Хранилище содержит ссылки на экспертов -небольшие программы, которые проводятпользователя через серию руководящих диалоговпо созданию формы или проекта. C++Builderпредусматривает ряд готовых экспертов, к которымвы можете добавлять свои собственные.
4.4.2 Включение объектов в проект
Существует три способа включения в проектобъектов из хранилища с целью их разделения:
Копирование объектов хранилища.
Простейший вариант разделения заключается вкопировании точного дубликата объекта в вашпроект. Будущие изменения этого объекта вхранилище никак не отразятся на вашей копии, инаоборот, модификации копии не коснутсяоригинала объекта в хранилище.
Замечание. Копирование представляетединственную возможность использованияпроектных шаблонов.
Наследование объектов хранилища.
Наиболее гибкий и мощный вариант разделениязаключается в построении нового производногокласса от объекта хранилища и добавлении его вваш проект. Когда вы перекомпилируете проект,любые изменения этого объекта в хранилищеотразятся на производном классе, однакомодификации вашей производной никак неотразятся на оригинале объекта в хранилище. Замечание.Наследование разрешено для форм, диалогов имодулей данных, но запрещено для проектныхшаблонов и экспертов. Наследование представляетединственную возможность повторногоиспользования объектов в одном и том же проекте.
Прямое использование объектов хранилища.
Наименее гибкий вариант разделениязаключается в том, что при использовании объектахранилища, он просто добавляется к вашемупроекту, как если бы был создан вами как частьпроекта. Поэтому изменения объекта на стадиипроектирования проявятся во всех проектах,которые прямо используют или наследуют от него.Чтобы избежать изменений в других проектах,модифицируйте объект только во время выполненияпрограммы.
Замечание. Разрешено прямое использованиеформ, диалогов, модулей данных и экспертов.Использование экспертов фактически не создаетразделяемые процедуры, а представляет собойзапуск некоторого процесса, который генерируетсвой собственный код.
Разработка нового проекта может начинаться нес пустого проекта (с именем Project 1 по умолчанию), а с некоторогошаблона из хранилища объектов.
Чтобы открыть новый проект на базе шаблона:
1. Выполните команду File | New, которая откроет диалог New Items.
2. Выберите вкладку Projects.
3. Укажите нужный шаблон и нажмите кнопку ОК.
4. В открывшемся диалоге Select Directory укажите каталог, в которомхранятся
ваши проектные файлы. Если каталог несуществует, он будет создан. Копия проекта набазе шаблона откроется в указанном каталоге. Выможете работать с проектом, добавляя новые формыи другие элементы, или, оставив его без изменений,переключиться на редактирование кодаобработчиков событий. В любом случае, сделанныевами модификации будут отражаться только наоткрытом проекте. Оригинал шаблона останется безизменений и может быть использован повторно.
4.4.3 Добавление объектов к хранилищу
Когда вы создали новую форму или проект (или ихшаблоны) и удостоверились, что ониработоспособны и послужат в будущем благороднойцели стандартизации облика разрабатываемых ввашей организации приложений, сохраните такиеобъекты в хранилище.
Чтобы добавить новый объект к хранилищу:
1. Выполните команду Project | Add ToRepository, которая откроетдиалог, показанный на Рис. 4.3.
2. В область редактирования Title введите название объекта.
3. В область Description введите описание объекта.
4. Из выпадающего списка Page выберите имя страницы, вкоторой вы хотите завести новый объект.
5. В область Author введите фамилию автора.
6. Нажмите кнопку Browse, чтобы выбрать пиктограмму,которая будет представлять объект в хранилище.
7. Нажмите кнопку ОК, чтобы сохранитьтекущий объект.
Имя объекта
Кнопка выбора пиктограммы
Описание объекта
Автор объекта
Страница объектов указанного типа
Рис. 4.3. Добавление формы к хранилищу объектов.
Чтобы добавить к хранилищу проект или форму ввиде шаблона:
1. Если необходимо, откройте проект или форму,шаблоны которых вы хотите добавить к хранилищу.
2. Выполните команду Tools | Repository.
3. На вкладке Project Templates (или Form Templates) выберите командуAdd, которая отроетдиалог Save Project Template (или Save Form Template).
4. В область редактирования Title введите название проекта илиформы.
5. В область Description введите описание проекта илиформы.
6. Из выпадающего списка Page выберите имя страницы Projects (или Forms), в которой выхотите завести соответствующий шаблон.
7. В область Author введите фамилию автора.
8. Нажмите кнопку Browse, чтобы выбрать пиктограмму,которая будет представлять данный шаблон вхранилище.
9. Нажмите кнопку ОК, чтобы сохранитьтекущий проект или форму в виде шаблона.
Замечание. Если позже вы внесете изменения вшаблон, эти изменения автоматически отразятся вновых проектах или формах, произведенных отэтого шаблона, но никак не скажутся на ужесозданных производных.
Чтобы увидеть описание выбранного объекта:
1. Выполните команду File | New, которая откроет диалог New Items.
2. Выберите вкладку объектов нужного типа.
3. Щелкните правой кнопкой мыши по выбранномуобъекту.
4. Из появившегося контекстного меню выберитеопцию View Details. Описание объекта появится в столбце Description.
4.4.4 Проект и формы, создаваемые по умолчанию
Проект по умолчанию для нового приложенияоткрывается с помощью команды File |New Application. Если вы неменяли соответствующих установок хранилищаобъектов, C++Builder создаст пустой проект с пустой формой. Выможете сменить шаблон проекта по умолчанию, атакже назначить запуск некоторого экспертапроектов, который проведет вас через ряддиалогов, руководящих созданием нового проекта.
Чтобы сменить проект по умолчанию:
1. Выполните команду Tools | Repository, чтобы открыть диалог хранилища Object Repository.
2. Выберите страницу с именем Projects из списка Pages.
3. Укажите проект, который вы хотите создаватьпо умолчанию, в списке Objects.
4. Выберите опцию New Project.
5. Нажмите кнопку OK для регистрации новойустановки по умолчанию.
Новая форма по умолчанию для существующегопроекта открывается с помощью
команд File | New Form (кнопка быстрого вызова). Есливы не меняли соответствующих установокхранилища объектов, C++Builder создаст пустую форму.Вы можете сменить шаблон формы по умолчанию, атакже назначить запуск некоторого эксперта форм,который проведет вас через ряд диалогов,руководящих добавлением новой формы к проекту.
Чтобы сменить форму по умолчанию длясуществующего проекта:
1. Выполните команду Tools | Repository, чтобы открыть диалог хранилища Object Repository.
2. Выберите страницу с именем Forms из списка Pages.
3. Укажите форму, которую вы хотите создавать поумолчанию, в списке Objects.
4. Выберите опцию New Form.
5. Нажмите кнопку OK для регистрации новойустановки по умолчанию.
Основная форма (или эксперт форм) по умолчаниюдля нового проекта устанавливается в хранилищеобъектов точно так же, как и форма длясуществующего проекта.
Чтобы сменить основную форму по умолчанию длянового проекта:
1. Выполните команду Tools | Repository, чтобы открыть диалог хранилища Object Repository.
2. Выберите страницу с именем Forms из списка Pages.
3. Укажите форму, которую вы хотите создавать поумолчанию, в списке Objects.
4. Выберите опцию Main Form.
5. Нажмите кнопку OK для регистрации новойустановки по умолчанию.
4.5 Редактор кода
Редактор кода программ предоставляет удобное инадежное средство для просмотра иредактирования текста программного модуля (Unit), независимокомпилируемого в объектный файл. Модуль состоитиз двух частей: файла объявлений с расширением .h и кодового файлас расширением .срр.
Окно Редактора может содержать нескольковкладок с редактируемыми файлами. Например,когда вы начинаете работу с открытия некоторогопроекта, он становится первой вкладкой в окнеРедактора; вкладки всех других отрываемых файловзанимают последовательные позиции в рядувкладок.
C++Builder автоматическиотрывает в окне Редактора новую вкладку стекстом модуля в следующих ситуациях:
1. Командой File | New Application создается новое приложение.
2. Командой File | New Form (кнопка IS1 быстрого вызова) создаетсяновая фор ма.
3. Командой File | New Unit создается новый модуль.
4. Командой File | Open Project (кнопка 1в 1 быстрого вызова)открывается существующий проект.
5. Командой File | Open (кнопка 1^1 быстрого вызова) открываетсясуществующий файл текста модуля. По умолчаниювам будут предложены кодовые файлы с расширением.срр. Вы можете сменить установки умолчания длятекущего каталога и расширений файлов на вкладке Directories/Conditionalsдиалога команды Options | Project.
6. Командой Project | Add to Project (кнопка Ц.а| быстрого вызова) кпроекту добавляется текущая форма или модуль.
Чтобы редактировать текст модуля:
1. Выберите вкладку окна Редактора с именемнужного модуля или укажите его
в списке, предлагаемом командойView | Units (кнопка IQH быстроговызова). Если вы хотите создать новое окноРедактора, воспользуйтесь командой View| New Edit Window.
2. Поместите курсор в то место текста, которое выхотите редактировать.
3. Редактируйте текст с помощью операций,принятых стандартными редакторамиMicrosoft Windows. Вводимыестроки программы разделяются нажатием
клавиши Enter.
Если вы модифицировали текст текущего модуля ине сохранили изменения, C++Builder выдаст предупреждение иоткроет диалог Save As, чтобы вы могли ввести новое имяфайла модуля (по умолчанию, Uniti). Если вы модифицировали текущийпроект и не сохранили изменения, C++Builder выдастпредупреждение и откроет диалог Save As, чтобы вы могли ввести новое имяфайла проекта (по умолчанию, Project1).
Закрыть модуль в окне Редактора кода можноодним из способов:
1. Кнопкой в правом верхнем углу окна иликлавишами Alt+F4.
2. Командой File | Close.
3. Окно Редактора закрывается только тогда,когда все находящиеся в нем файлы были закрыты.
Важнейшей особенностью C++Builder является автоматическаягенерация строк программы. Когда вы добавляетекомпоненту к форме, в тексте файла Unit1.h появляется объявлениепеременной экземпляра класса данной компоненты.Например, перенос на пустую форму компонентыкнопки TButtonсгенерирует объявление объекта Button 1, а определение события OnClick -объявление метода ButtonlClick обработчика этого события (Рис.4.4).
Рис. 4.4. C++Biiilder генерирует объявления в файле модуля Unit1.h.
Открыть контекстное меню Редактора кода можнощелчком правой кнопкой мыши в любом месте окнаРедактора или нажатием клавиш AIt+FlO. Контекстное меню содержитследующие опции для просмотра исходного текставашей программы и ее отладки:
• Swap Cpp/Hdr Filesпереключает файлы составляющих редактируемогомодуля Unit.cpp/Unit.h.
• Close Page закрываеттекущую вкладку с текстом редактируемого файламодуля.
• Open File At Cursorоткрывает текстовый файл модуля, начиная стекущей позиции курсора.
• New Edit Windowоткрывает новое окно Редактора кода.
• Topic Search выдаетконтекстно-зависимую справку о слове в текстемодуля, на которое наведен курсор. Если искомыесведения не обнаружены, справочная служба выдастсообщение "Help Topic Does Not Exist".
• Toggle Breakpointвключает и выключает останов программы в точкетекста, указанной курсором. Чтобы модифицироватьсвойства точки останова, выполните команду View | Breakpoints и всписке Breakpoint list щелкните правой кнопкой мыши на выбраннойточке.
• Run to Cursor запускаетзагруженную программу до точки текста, указаннойкурсором. Такое же действие вызывает команда Run | Run To Cursor.После того, как программа остановится перед темместом, где вы подозреваете ошибку, перейдите кпошаговому исполнению программы по командам
Run | Step Over или Run | Trace Into
• Go to Address переходитк заданному адресу в ассемблерной программе (см.опцию View CPU).
• Inspect открываетокно инспекции выделенного символа. Символ можетбыть обнаружен не только в текущем, но и в любомисходном файле, скомпилированном и собранном какчасть одного проекта. Чтобы поиск символапроизводился, необходимо разрешить опциикомпиляции Local symbols и Symbol info на вкладке Pascal диалога командыOptions | Project.
• Evaluate/Modify открываетдиалог, который дает возможность вычислитьзначение некоторого выражения или изменить егозначение. Такое же действие вызывает команда Run | Evaluate/Modify.
• Add Watch at Cursorоткрывает диалог, который позволяет следить заизменением значения выражения, на котороеуказывает курсор. Все отслеживаемые выражениязаносятся в список Watch List. Подобное действие вызываеткоманда Run | Add Watch .
• Read Onlyустанавливает атрибут "только чтение",запрещающий делать какие-либо изменениятекущего файла. Это состояние файла отображаетсяв нижней строке состояния Редактора кода.
• Message View открываетокно сообщений и ошибок, полученных на фазахкомпиляции и сборки программы.
• View CPU открываетокно отладчика нижнего уровня - ассемблерныхкоманд.
• Properties позволяютпросматривать и изменять текущие установкиРедактора кода.
4.6 Палитра компонент
C++Builder поставляетсявместе с усовершенствованной 32-разряднойБиблиотекой Визуальных Компонент VCL(Visual Component Library),содержащей более 100 повторно используемыхкомпонент для построения прототипов сложнейшихприложений. Основные компоненты Библиотекипредставлены на инструментальной панели Палитрыкомпонент, значки которых перетаскиваются наформу вашей программы.
Библиотека включает полную инкапсуляциюстандартных интерфейсных объектов ГрафическогоИнтерфейса Пользователя операционных систем Windows и Windows 95 (области редактируемоговвода, простые и комбинированные списки и многиедругие), наряду со специализированнымикомпонентами, среди которых особое местозанимают компоненты для управления реляционнымибазами данных. Читателям, заинтересованным общейметодикой и особенностями разработки приложенийдля баз данных, адресована отдельная глава 5.
C++Builder в полной мере использует возможностиобъектно-ориентированного программирования(ООП) для создания надежных и эффективныхприложений. Поскольку C++Builder это среда ООП,введение управляющих элементов OLE (OCX) не вызывает особых трудностей.Используйте имеющиеся компоненты Библиотеки,расширяйте возможности производных компоненттак, чтобы наилучшим образом удовлетворитьтребованиям вашей задачи.
Ключевая характеристика C++Builder заключается вего способности не только пользоваться готовымикомпонентами в процессе визуальной разработкипрограмм, но и создавать новые компоненты. Новыекомпоненты могут быть такими же простыми, какисходные, со слегка расширеннымифункциональными возможностями, или отличатьсясовершенно оригинальным видом, поведением икодовым содержанием. Эти проблемырассматриваются подробно в главе 6. Созданиекомпонент базируется на механизме наследованияООП, практически не имеет ограничений и проходитчерез следующие стадии:
• наследование от существующего компонентноготипа;
• определение новых свойств, методов и событий;
• регистрация созданной компоненты.
Описание основных компонент приводится вданной главе. Для удобства поиска Палитраразделена вкладками, объединяющимифункционально сходные компоненты. Открытьконтекстное меню выбранной компоненты можно,щелкнув по ней правой кнопкой мыши.
4.6.1 Стандартные компоненты
Компоненты вкладки Standard палитры компонент
осуществляют включение в вашу программу 14стандартных интерфейсных элементовWindows.
4.6.1.1 TMainlVlenu
Создает панель команд главного меню исоответствующие им выпадающие меню для формы.Подробная инструкция по конструированию менюприведена в разделе "Дизайнер меню".
Идентификаторы всех команд меню определяютсясвойством Items, которое имеет доступ к любой конкретнойкоманде меню. Свойство AutoMerge вместе с методамиMerge и Unmerge управляют процессом слиянияменю разных форм.
4.6.1.2 TPopUpMenu
Создает специальное меню для формы или длядругой компоненты. Заметьте, что именно для этойцели любая прочая компонента имеет свойство PopUpMenu, в котором выможете задать ссылку на связанное с ней меню.Подробная инструкция по конструированию менюприведена в разделе "Дизайнер меню".
Если вы хотите, чтобы специальное менюпоявлялось при нажатии правой кнопки мыши наформу или другой элемент, которому приписанаданная компонента, установите значение true свойства AutoPopup. Работающеетаким образом специальное меню называетсяконтекстным. С помощью обработчика события ОпРорирможно определить процедуру, которая будетвыполняться непосредственно перед появлениемспециального меню.
4.6.1.3 TLabel
Отображает на форме прямоугольную областьстатического текста, который нельзяредактировать. Обычно текст представляет собойназвание другой компоненты.
Текст названия является значением свойства Caption. Свойство Alignment определяетспособ выравнивания текста. Чтобы размер шрифтаавтоматически соответствовал максимальномузаполнению области, установите значение true свойства AutoSize. Чтобы весьтекст можно было увидеть внутри короткойобласти, задайте значение true свойства WordWrap. Установкой значения true свойства Transparent вы можетеоставить видимой часть другой компоненты сквозьназвание, расположенное прямо на ней.
4.6.1.4 TEdit
Отображает прямоугольную областьредактируемого ввода одиночной строкиинформации на форме. Начальное содержимоеобласти редактирования определяет строка,являющаяся значением свойства Text.
TEdit является прямойпроизводной от класса TCustomEdit, полностью наследуя егосвойства, методы и события.
4.6.1.5 ТМето
Отображает прямоугольную областьредактируемого ввода множественных строкинформации на форме. Начальное содержимоеобласти редактирования определяет массив строк,являющийся значением свойства Lines. Окно редактора элементов списка открываетсякнопкой в графе значении этого свойства.
TMemo является прямойпроизводной от класса TCustomMemo, полностью наследуя егосвойства, методы и события.
4.6.1.6 TButton
Создает прямоугольную кнопку с надписью.Нажатие на кнопку инициирует некоторое действиев программе.
Кнопки чаще всего используются в диалоговыхокнах. Кнопка по умолчанию, выбранная значением true свойства Default, запускаетобработчик события OnClick всякий раз, когда нажимаетсяклавиша Enter в окне диалога. Кнопка прерывания,выбранная значением true свойства Cancel, запускает обработчик события OnClick всякий раз,когда нажимается клавиша Escape в окне диалога.
TButton являетсяпроизводной от класса TButtonControl.
4.6.1.7 TCheckBox
Создает квадратный чек-бокс с двумясостояниями и описательным текстом,специфицирующим его назначение.
Состояние бокса "check" соответствует выборунекоторого варианта (отмечается перечеркиваниембокса), а состояние "uncheck" соответствует снятию выбору -при этом свойство компоненты Checked меняется соответственно ивозникает событие OnClick. Описательный текст хранится всвойстве Caption. Затемнить бокс (подкрасить серым цветом)можно установкой значения true свойства AllowGrayed. Свойство State отражает текущее состояние ицвет бокса.
TCheckBox являетсяпроизводной от класса TButtonControl.
|  |
 |
|
 |
Travel The Web With Our Friends |
Секретные коды мобил | Покадровая анимация( | Компания Google заре | Учебник по C++ Build | Общие аспекты технол | Наш человек | Ключи для ESS Home и | Стрельба из desert e | Что такое Proxy-серв | Windows 7 RC – 10 ап | Взлом сервера на Fro | Доктор айфон |

Link Header
|