Основные свойства визуальных компонентов реферат

Обновлено: 04.07.2024

Понятие и особенности визуальных компонентов в среде Delphi.

Визуальные компоненты для работы с данными расположены на странице DataControls Палитры компонентов и предназначены для построения интерфейсной части приложения. Они используются для навигации по набору данных, а также для отображения и редактирования записей. Часто эти компоненты называются элементами, чувствительные к данным.[5]

Одни визуальные компоненты для работы с данными предназначены для выполнения операций с полями отдельной записи, они отображают и позволяют редактировать значение поля текущей записи. К таким компонентам относятся, например, однострочный редактор Edit и графический обзор Image.

Другие компоненты служат для отображения и редактирования сразу нескольких записей. Примерами таких компонентов являются сетки DBGrid и DBCtrlGrid, выводящие записи набора данных в табличном виде. Визуальные компоненты для работы с данными похожи на соответствующие компоненты страниц Standard и Additional и отличаются, в основном, тем, что ориентированны на работу с БД и имеют дополнительные свойства DataSource и Datafield. Первое из них указывает на источник данных, а второе - на поле набора данных, с которым связан визуальный компонент. Например, Edit отображает строковое значение, позволяя пользователю изменять его.

Для всех визуальных компонентов, предназначенных для отображения и редактирования значений полей, при изменении пользователем их содержимого набор данных автоматически переводится в режим редактирования. Произведённые с помощью этих компонентов изменения автоматически сохраняются в связанных с ними полях при наступлении определённых событий.

При программном изменении содержимого эти визуальных компонентов набор данных автоматически в режим редактирования не переводится. Для этой цели в коде должен предварительно вызываться метод Edit набора. Чтобы сохранить изменения в поле (полях) текущей записи, мы должны также предусмотреть соответствующие действия, например, вызов метода Post или переход к другой записи набора данных.[5]

Общая характеристика визуальных компонентов.

В библиотеке визуальных компонентов для всех компонентов, в том числе и предназначенных для работы с данными, базовым является классу Control. Он обеспечивает основные функциональные атрибуты такие, как положение и размеры элемента, его заголовок, цвет и другие параметры. Класс Control включает в себя общие для визуальных компонентов свойства, события и методы. В целом визуальные компоненты можно разделить на две группы: оконные и неоконные.

Оконный элемент управления представляет собой специализированное окно, предназначенное для решения конкретной задачи. К таким элементам относятся, например, поля редактирования, командные кнопки, полосы прокрутки.

Такие компоненты, как Edit, DBEdit, Memo или DBMemo при получении фокуса ввода отображают в своей области курсор редактирования. Компоненты, не связанные с редактированием информации, получение фокуса ввода обычно отображают с помощью с помощью пунктирного черного прямоугольника.

К неоконным элементам управления базовым является класс GraphiControl, производимый непосредственно от класса Control. Неоконные элементы управления на могут получать фокус ввода. Их достоинством является менее расходования ресурсов.

Свойства и события визуальных компонентов для работы с данными.

Свойства позволяют управлять внешним видом и поведением компонентов при проектировании и при выполнении приложения. Обычно установка значений большинства свойств компонентов выполняется на этапе проектирования с помощью инспектора объектов.

Свойство Name указывает на имя компонента, которое используется для управления компонентов во время выполнения приложения. Каждый новый компонент, помещаемый на форму, получает имя по умолчанию, автоматически образуемое путем добавления к названию компонента его номера в порядке помещения на форму. На этапе разработки приложения мы можем изменять имя компонента на более осмысленное и соответствующее назначению компонента.

Свойство Aling определяет способ выравнивания компонента на самой форме, на которой оно находится. Выравнивание используется в случае, когда требуется, чтобы какой-либо интерфейсный элемент занимал определённое положение.

Свойство Caption содержит строку для надписи заголовка компонента. Отдельные символы в заголовке могут быть подчеркнуты, они означают комбинации клавиш быстрого доступа.

Свойство Color определяет цвет фона. Часто удобно задавать цвета с помощью констант. Отображаемые цвет зависит от параметров видеокарты и монитора, в первую очередь от установленного цветного разрешения.

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

- Выбор управляющего элемента;

- Перемещение указателя мыши;

- Нажатие клавиш клавиатуры;

- Получение и потеря управляющим элементом фокуса ввода;

- Перемещение объектов методом drag-and-drop.

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

Раздел: Информатика, программирование
Количество знаков с пробелами: 114140
Количество таблиц: 0
Количество изображений: 0

Разработать поле Edit, которое содержит 3 дополнительных текстовых поля, с функцией случайной смены текста с течением времени. Создать установочный пакет и тестовое приложение с использованием разработанного компонента.

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

Формы являются основой приложений C++ Builder. Создание пользовательского интерфейса приложения заключается в добавлении в окно формы элементов объектов C++ Builder, называемых компонентами. Компоненты C++ Builder располагаются на палитре компонентов, выполненной в виде многостраничного блокнота. Важная особенность C++ Builder состоит в том, что он позволяет создавать собственные компоненты и настраивать палитру компонентов, а также создавать различные версии палитры компонентов для разных проектов.

Компоненты разделяются на видимые (визуальные) и невидимые (невизуальные). Визуальные компоненты появляются во время выполнения точно так же, как и во время проектирования. Примерами являются кнопки и редактируемые поля. Невизуальные компоненты появляются во время проектирования как пиктограммы на форме. Они никогда не видны во время выполнения, но обладают определенной функциональностью (например, обеспечивают доступ к данным, вызывают стандартные диалоги Windows и др.)

Для добавления компонента в форму можно выбрать мышью нужный компонент в палитре и щелкнуть левой клавишей мыши в нужном месте проектируемой формы. Компонент появится на форме, и далее его можно перемещать, менять размеры и другие характеристики.

Каждый компонент C++ Builder имеет три разновидности характеристик: свойства, события и методы.

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

Свойства являются атрибутами компонента, определяющими его внешний вид и поведение. Многие свойства компонента в колонке свойств имеют значение, устанавливаемое по умолчанию (например, высота кнопок). Свойства компонента отображаются на странице свойств (Properties). Инспектор объектов отображает опубликованные (published) свойства компонентов. Помимо published-свойств, компоненты могут и чаще всего имеют общие (public), опубликованные свойства, которые доступны только во время выполнения приложения. Инспектор объектов используется для установки свойств во время проектирования. Список свойств располагается на странице свойств инспектора объектов. Можно определить свойства во время проектирования или написать код для видоизменения свойств компонента во время выполнения приложения.

При определении свойств компонента во время проектирования нужно выбрать компонент на форме, открыть страницу свойств в инспекторе объектов, выбрать определяемое свойство и изменить его с помощью редактора свойств (это может быть простое поле для ввода текста или числа, выпадающий список, раскрывающийся список, диалоговая панель и т.д.).

Для того чтобы добавить обработчик событий, нужно выбрать на форме с помощью мыши компонент, которому необходим обработчик событий, затем открыть страницу событий инспектора объектов и дважды щелкнуть левой клавишей мыши на колонке значений рядом с событием, чтобы заставить C++ Builder сгенерировать прототип обработчика событий и показать его в редакторе кода. При этом автоматически генерируется текст пустой функции, и редактор открывается в том месте, где следует вводить код. Курсор позиционируется внутри операторных скобок < . >. Далее нужно ввести код, который должен выполняться при наступлении события. Обработчик событий может иметь параметры, которые указываются после имени функции в круглых скобках.

Метод является функцией, которая связана с компонентом, и которая объявляется как часть объекта. Создавая обработчики событий, можно вызывать методы, используя следующую нотацию: ->, например:

При создании формы связанные с ней модуль и заголовочный файл с расширением *.h генерируются обязательно, тогда как при создании нового модуля он не обязан быть связан с формой (например, если в нем содержатся процедуры расчетов). Имена формы и модуля можно изменить, причем желательно сделать это сразу после создания, пока на них не появилось много ссылок в других формах и модулях.

Библиотека Визуальных Компонент позволяет программистам визуально создавать программные приложения, не прибегая более к кодированию классов "вручную", или кодированию в рамках стандартных библиотек MFC (Microsoft Foundation Class), или OWL (Object Windows Library).

Программист создает законченное приложение посредством интерактивного взаимодействия с интегрированной визуальной средой C++Builder, используя компоненты VCL для создания интерфейса программы с пользователем и с другими управляющими элементами: обслуживания баз данных, контролируемого ввода параметров и т.д. Характерная для C++Builder методика визуального стиля разработки программного обеспечения не применяется множеством других систем программирования.

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

Любая компонента может находиться во владении (ownership) других компонент, но не все компоненты могут являться владельцами. Свойство компоненты Owner (Владелец) содержит ссылку на компоненту, которая ею владеет. Рис. 1. показывает иерархию владения некоторой формы.

Владелец ответствен за освобождение тех компонент, которыми владеет, когда сам разрушается. Так в процессе конструирования формы, она автоматически становится владельцем всех компонент, размещенных на ней, даже если часть их размещена на другой компоненте, такой как TPanel. Владение применимо не только к видимым, но и к невидимым (Ttimer, DataSource) компонентам.


Рис. 1. Пример иерархии владения.

Определение класса в языке C++ содержит инкапсуляцию членов данных и методов, оперирующих с данными и определяющих поведение объекта. Эта концепция всех систем ООП принята в VCL.

VCL позволяет манипулировать видом и функциональным поведением компонент не только с помощью методов (как это делается с обычными классами), но и посредством свойств и событий, присущих только классам компонент.

Свойства представляют собой расширение понятия членов данных. Разрешены любые типы свойств, за исключением файлового типа. В отличие от члена данных, свойство не хранит данные, однако его методы чтения и записи позволяют получить доступ к защищенному члену данных объекта.

C++Builder использует ключевое слово _property для идентификации свойств. Синтаксис описания свойства имеет вид:

где список атрибутов содержит перечисление следующих атрибутов свойства:

Рис. 2. показывает ключевые классы в иерархической структуре, от которых произведены все компоненты VCL. Каждый объект представляет некоторый набор методов, событий и свойств и имеет специальное назначение. Подобно тому как TObject является базовым классом для всех порождаемых классов, TComponent является базовым классом для всех порождаемых компонент.

Невидимые компоненты произведены от класса TComponent. Графические компоненты, не ассоциированные с оконными элементами управления, произведены от класса TGraphicControl.

Являясь оконными элементами, компоненты стандартного управления произведены непосредственно от класса TWinControl, а оригинальные компоненты - косвенно от класса TCustomControl, восходящего к TWinControl. Именно на уровне TWinControl и вводится "оконный дескриптор" (window handle).


Рис.2. Иерархия ключевых базовых классов VCL.

Процесс разработки компоненты TRaedit проходит через выполнение следующих этапов:

1. Создание модуля для новой компоненты.

2. Наследование производного класса от существующего базового компонентного класса.

3. Добавление нужных свойств, событий и методов.

6. Инсталляция компоненты на Палитру.

7. Сохранение файлов компоненты.

Программный модуль состоит из двух файлов Raedit.срр и Raedit.h, которые компилируются в объектный файл с расширением Raedit.obj. C++Builder использует модули в различных целях - каждая форма и большинство компонент (или их логических групп) имеют свой собственный модуль.

Так как, нет необходимости создавать новый класс, можно воспользоваться уже существующим и модифицировать его. Для этой цели был выбран абстрактный компонентный класс TCustomEdit.

class PACKAGE TRaedit : public TCustomEdit

Добавим необходимые свойства в созданный класс.

Свойство TimerEnabled отвечает за включение и отключение таймера, а следовательно и за смену текста в текстовом поле.

Свойство Random определяет порядок смены текста: случайно или последовательно.

Свойства Text1-Text3 будут определять дополнительные текстовые поля компоненты.

Свойство TimerInterval устанавливает задержку при смене текста в милесекундах.

Свойство TextIndex возвращает номер активной строки или устанавливает строку как активную.

Для регистрации компоненты на палитре компонентов среды разработки C++Builder добавим функцию Register в файл Raedit.cpp:

RegisterComponents("USATU", classes, 0); >

Инсталляция компоненты

При инсталляции новой компоненты или при выполнении команды Component | Rebuild Library, Библиотека Визуальных Компонент перестраивается, и C++Builder создает временный файл CMPLIB32.CPP исходных текстов VCL. Чтобы сохранить этот файл, с помощью команды Options | Environment | Library необходмо открыть диалог опций и установить флаг Save Library Source Code.

Далее, необходимо произвести компиляцию проекта, что выполняется нажатием кнопки Compile или сочетанием клавиш Alt-F9. После компиляции, выполняется инсталляция компоненты на палитру.


Рис3. Открытый файл проекта компоненты в C++ Builder

Компонента Raedit после установки появится на вкладке USATU:


Рис 4. Палитра компонентов C++ Builder 6

Тестирование компоненты

Для тестирования компоненты разработано тестовое приложение, которое позволяет изменить все оригинальные свойства компоненты. На форме приложения расположено два экземпляра компоненты, для каждой из них помещены управляющие элементы позволяющие изменять:

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

- текст по индексу строки;

- текст всех полей.

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


Рис. 6 Форма программы тестирования

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

1) Теллес, М. BORLAND C++ BUILDER: библиотека программиста .— СПб : Питер, 1998 .— 512с.

2) Архангельский, А. Я. Язык C++ в C++Builder : справочное и методическое пособие / А. Я. Архангельский .— М. : Бином, 2008 .— 942 с.

3) Романов, В.Ю. Программирование на языке C++: Практ. подход .— М. : Компьютер, 1993 .— 157с.

4) Конспект лекций УГАТУ по предмету объектно-ориентированное программирование.

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

Стандартные компоненты. Все компоненты являются отдельными классами, разделяются на видимые (визуальные) и невидимые. Визуальные компоненты появляются во время выполнения программы, отображаясь так же во время оформления формы.

Button – кнопка с текстом или рисунком

CheckBox – с двумя состояниями, позволяет задать значение истины для параметра, если он отмечен флажком и ложным, если галочки нету.

Label – выводит строку

PicterBox – позволяет добавить на форму картинку

GroupBox – группирует компоненты в формы

Свойства являются атрибутами любого компонента. Они определяют его внешний вид и поведение. Многие свойства компонентов имеют значения по умолчанию. Редактирование свойств компонентов в процессе создания программы выполняется на панели свойств.

Name – задает имя, через которое возможно обращение из программы к данному компоненту.

Enable – делает компонент свободным (true) или недоступным (false)

Cursor – вид курсора мышки

AutoScroll – позволяет задать для формы автоматическое появление полос прокрутки.

Size – задает размер компонента.

TextBox – выполняется при нажатии клавиши клавиатуры

ActiveVoid – выполняется когда компонент становится активным

Show – выполняется при отображении окна

Tick – выполняется по истечении заданного момента времени

Методы. С каждым компонентом (класса компонента) связан свой набор методов (подпрограмм, которые реализуют дополнительные функции, связанные с компонентами). Например, у компонента ListBox имеются методы Add – добавить элементов список, RemoveAdd позволяет удалить элемент списка с заданным номером. Вызов метода для компонента выполняется указанием имени компонента.

Работа со стандартными компонентами

Стандартные компоненты. Все компоненты являются отдельными классами, разделяются на видимые (визуальные) и невидимые. Визуальные компоненты появляются во время выполнения программы, отображаясь так же во время оформления формы.

Button – кнопка с текстом или рисунком

TabControl – позволяет добавить на форму закладки с различными компонентами (контейнеры)

CheckBox – с двумя состояниями, позволяет задать значение истины для параметра, если он отмечен флажком и ложным, если галочки нету.

Label – выводит строку

Timer – служит для создания счетчика отсчета времени (не визуальный)

ListBox – отображает список строк

PicterBox – позволяет добавить на форму картинку

GroupBox – группирует компоненты в формы

ContextMenuStrim – позволяет добавить на форму контекстное меню, вызываемое нажатием правой кнопки мыши

SaveFileDialog – сохранение файла

Обмен данными между формами

Часто возникает необходимость передать значения между формами в одном приложении.

В главной форме запуск новой производим так:

Form2 frm = new Form2();

frm.Owner = this; //this – это текущая форма (Form1)

После такого действия в новой форме можно обращаться к элементам родительской формы, так:

Form1 frm = (Form1) this.Owner;

frm.label1.Text = “Test”; // label1 находится на Form1.

Работа с файлами

Файл – это совокупность связных данных, хранящихся во внешней памяти компьютера и рассматривающийся как единое целое. Файлы предназначены для хранения и обработки большого объема данных в программе. Работа с файлами в программе выполняется с использованием файловой переменной. Файлы в языке программирования разделяются на группы:

Типизированные файлы

Текстовые файлы

Не типизированные файлы

При работе с файлами существует определенный порядок действий:

1)Объявление файловой переменной

2)Связывание этой переменной с конкретным файлом на диске

3)Открытие файла (для записи или чтения)

4)Выполнений действий с файлами (чтение или запись)

5)Закрытие файлов

Классы предназначены для работы с файлами. Находятся в пространстве имен Sistem.IO.

Классы Directory и File содержат статические методы для выполнения операций с папками и файлами (создание, удаление, проверка существования и т.д.)

Класс Path – создает статические методы для работы с путями и именами файлов.

Классы Binary Reader и Binary Writer включают методы, предназначенные для чтения и записи простых типов данных, как бинарных значений.

Классы Directory Info и File Info предназначены для получения информации о папках и каталогах

Класс Stream предназначен для записи или чтения последовательности байт (работа с потоком данных)

Классы Text Reader и Text Writer предназначены для чтения и записи последовательности символов.

string path = @"c:\a.txt";

if(File.Exists(path))

File.Delete(path);

using(FileStream filestream = File.Create(path, 1024))

new UTF8Encoding(true).GetBytes("Текст, который будет записан в файл");

filestream.Write(text, 0, text.Length);

CreateText(string path)

string path = @"c:\a.txt";

if(!File.Exists(path))

using(StreamWriter streamwriter = File.CreateText(path))

streamwriter.WriteLine("Строка 1");

streamwriter.WriteLine("Строка 2");

streamwriter.WriteLine("Строка 3");

OpenText(string path)

using(StreamReader streamreader = File.OpenText(path))

string sString = "";

while((sString = streamreader.ReadLine()) != null)

richTextBox1.AppendText(sString+"\r\n");

Доступ к данным СУБД

Методы доступа к БД:

1) Доступ с использованием прямого или косвенного вызова СУБД

2) Использование объектного интерфейса.

Прямой вызов программного интерфейса СУБД:

Большинство СУБД предоставляет в распоряжение программиста интерфейс API, с помощью которого программа может выполнять любые действия с БД.

Использование программного интерфейса ODBC.

Он выполнен в виде набора функций, отличается универсальностью доступа к различным СУБД. Но так как это набор функций, то ограничено его применение в веб-приложениях.

Реализует возможности интерфейса ODBC, при его использовании не требуется напрямую вызывать программный интерфейс ODBC или СУБД. Преимущество: возможность доступа веб-приложений к БД.

Интерфейс OLE DB.

Является стандартом доступа к СУБД, и в отличие от ODBC и RDO, предоставляет возможность доступа приложений не только к реляционным БД, но и к БД имеющим другую архитектуру.

Строится на основе объектов, реализованных в OLE DB. Данный подход доступа к СУБД является самым распространенным. Состоит из этапов:

1) Установка соединения

2) Подготовка команды и параметров

3) Выполнение команды

4) Обработка результатов выполнения команды

5) Закрытие соединения

6) Обработка ошибок

С развитием веб-приложений получают распространение многоуровневые системы. В этих системах клиент обращается к СУБД не напрямую, а через веб-сервер.



Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой.


Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).


Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.

Компоненты в среде Delphi – это особые объекты, которые являются строительными кирпичиками визуальной среды разработки и приспособлены к визуальной установке свойств. Конструируя приложение, вы берете компоненты из Палитры Компонентов, располагаете на форме и устанавливаете их свойства в окне Инспектора Объектов.

Структура компонента описывается формулой: Компонент = состояние (свойства) + поведение (методы) + обратная реакция (события).

Состояние компонента определяется его свойствами. Свойства бывают изменяемые (для чтения и записи) и неизменяемые (только для чтения). Помимо этого, свойства могут получать значения либо на этапе проектирования (design-time), либо только во время выполнения программы (run-time). Первые устанавливаются для каждого компонента в окне свойств и определяют начальное состояние компонента. Во время выполнения приложения эти свойства могут быть изменены программно, соответственно изменится внешний вид и поведение компонента. Вторая группа – это свойства, которые не видны в окне свойств, и управлять которыми можно только программно. С точки зрения языка Delphi различие между этими группами свойств состоит в том, что первые объявлены в секции published, а вторые – в секции public.

Поведение компонента описывается с помощью его процедур и функций (методов). Вызовы методов компонента помещаются в исходный код программы и происходят только во время выполнения приложения. Методы не имеют под собой визуальной основы.

Обратная реакция компонента – это его события. События позволяют, например, связать нажатие кнопки с вызовом метода формы. События реализуются с помощью свойств, содержащих указатели на методы.

Визуальные и невизуальные Компоненты

Все компоненты делятся на две группы: визуальные и невизуальные.

Визуальные компоненты (visual components) – это видимые элементы пользовательского интерфейса: кнопки, метки, блоки списков и др. Они выглядят одинаково и на стадии проектирования, и во время работы приложения.

Невизуальные компоненты (non-visual components) – это, так сказать, бойцы невидимого фронта; они работают, но сами на экране не видны. К невизуальным компонентам относятся таймер, компоненты доступа к базам данным и др. В процессе проектирования такие компоненты представляются на форме небольшим значком. Их свойства устанавливаются в уже известном вам окне свойств. Некоторые компоненты хоть и являются невизуальными, могут что-нибудь отображать на экране. Например, невизуальный компонент MainMenu отображает на форме полосу главного меню, а компонент OpenDialog – стандартное диалоговое окно выбора файла.

Общие свойства визуальных компонентов

Общие события визуальных компонентов

Вопросы для самоконтроля [1,2]:

1. Что такое объект? Дайте определение свойству, методу и событию объекта.

Читайте также: