Автор: Пользователь скрыл имя, 10 Ноября 2012 в 20:14, контрольная работа
Основные понятия объективно-ориентированного программирования. Элементы объектно-ориентационного программирования. Инкапсуляция, наследование, полиморфизм. Виртуальное программирование: среда систем, элементы систем (форма, панель свойств, панель инструментов). Компоненты программ. Свойства, события, методы.
Таким образом, программа может находиться либо в режиме проектирования, либо в режиме выполнения.
Готовая программа сохраняется
в виде исполняемого файла (exe-модуля),
который может работать в отсутствие
исходного текста. Его создает
компилятор. Интерпретаторы отличаются
от компиляторов тем, что "переводят"
и выполняют программу
Для создания интерфейса Visual Basic предоставляет готовые объекты, обладающие определенными свойствами, которые можно изменять, настраивая программу на выполнение конкретной задачи.
Для создания средств общения с пользователем в проект включаются формы, которые представляют собой типовые окна Windows. Они имеют строку заголовка с кнопками управления и системным меню, а также возможности управления мышью. Все это не надо программировать, форма, включенная в проект, обладает этими свойствами. Пустая поверхность формы (серый фон покрытый сеткой) заполняется в процессе проектирования. В новый проект Visual Basic сразу добавляет одну форму, которая выводиться в центре экрана, в окне формы.
Свойствами формы являются, например, ее заголовок и размеры. Кроме форм в Вашем распоряжении набор управляющих элементов. Каждый из них выполняет определенные, уже запрограммированные функции. Один представляет собой рабочую область для ввода и редактирования текста, другой - для вывода рисунков и т.д. В процессе проектирования Вы выбираете нужные Вам элементы и помещаете их на форму.
Исходные тексты программы на Visual Basic сохраняются в нескольких файлах.
Файл проекта имеет расширение .vbp и содержит реестр файлов, необходимых для создания исполняемого файла приложения.
В модуле формы сохраняется описание формы и ее управляющих элементов и программный код, относящийся к ним. Это обычный текстовый файл с расширением .frm. Таких модулей в проекте может быть несколько по числу форм.
Код, не связанный с конкретной формой или элементом управления, помещается в стандартный модуль с расширением .bas. Могут быть модули и другого типа.
При вызове Visual Basic открывается окно диалога мастера проектов. Оно имеет 3 вкладки следующего назначение:
New - создание нового проекта, предлагается на выбор несколько стандартных шаблонов, для создания Вашего первого приложения выбираем Standart EXE.
Existing - открыть существующий проект, позволяет выбрать файл в диалогом окне выбора.
Recent - открыть один из последних проектов, которые были созданы или в которые были внесены любые изменения.
Окно Visual Basic содержит строку меню, панели инструментов и различные окна. Окно конструктора форм находиться в центре экрана и содержит форму (Form). В новый проект по умолчанию добавляется форма с именем Form1. Команда Object меню View открывает окно, если оно было закрыто и выводит его поверх других окон.
Окно с коллекцией управляющих элементов (ToolBox) находиться обычно слева от формы. Оно содержит набор стандартных управляющих элементов. В процессе проектирования Вы выбираете нужные элементы и перемещаете их на форму.
Окно свойств (Properties) содержит список свойств и их значений для выделенного объекта. Объект можно выбрать здесь же в списке под строкой заголовка.
Окно проводника (Project Explorer) отображает все составные части проекта: формы и модули. Здесь же имеются кнопки для переключения между окном формы и редактором.
Окно редактора кода (Code) содержит текст программы.
Окно макета формы (Form1 Layout) показывает, как будет выглядеть текущая форма на экране в режиме выполнения.
Окна пристыкованы друг к другу (Docking). Чтобы отстыковать окно, выполните двойной щелчок на строке заголовка или просто переместите его. Чтобы пристыковать окно, переместите его на границу и отпустите кнопку мыши. Можно перемещать границы между пристыкованными окнами и изменять их размеры. Любое из окон можно убрать с экрана и в нужный момент вернуть их обратно с помощью команд меню View или кнопок на панели инструментов.
Начните новый проект. Убедитесь, что форма является выделенным объектом, и окно Properties отображает ее свойства. Измените заголовок формы. Для этого в списке свойств найдите свойство Caption, выделите его двойным щелчком мыши и введите текст заголовка. Измените цвет формы с помощью свойства BackColor.
Свойство Left и Top определяют положение формы на экране при запуске программы на выполнение. Это координаты левого верхнего угла формы в твипах (1-1440 логического, т.е. зависящего от разрешающей способности монитора, дюйма.)
Для изменения можно
ввести новые значения с клавиатуры
или мышью переместить
Значения свойств Height и Width - это соответственно высота и ширина формы. Изменить эти значения можно, изменяя мышью размеры формы в режиме проектирования. Если размеры формы становятся больше, чем размеры окна с формой в режиме проектирования, то появляются полосы прокрутки. Изменение размеров в режиме выполнения программы не влияет на значение свойств.
Подробнее о свойствах форм Вы можете прочитать в моей статье - "Фундамент программы или основные свойства форм", а о событиях и методах в статье "Методы и события форм", обе статьи Вы найдете на форуме в разделе Материал.
В программе каждая форма и каждый управляющий элемент имеет свое уникальной имя, по которому к ним можно обращаться. Имена по умолчанию даются системой при создании объекта и состоят из слова, обозначающего тип объекта, и цифры - порядкового номера. Например, первая форма в проект имеет имя Form1. Имя объекта в программе является значением свойства Name этого объекта, часто это свойство изменяют с целью дать объекту имя, отражающее его назначение в программе. Visual Basic не накладывает сколько нибудь серьезных ограничений на имена - они могут быть практически любыми, но имеются общепринятые соглашения (Венгерская нотация) об образовании имен. В венгерской нотации имя объекта начинается с короткого префикса, который является стандартным для объектов данного рода и описывает тип или область видимости. За префиксом следует собственно имя объекта, отражающее его назначение, при этом первый символ имени пишется с заглавной буквы, например, форма frmDefault.
Если имя составлено из нескольких слов, то с заглавной литеры начинается каждое из них, например, frmTextEditor.
Но существуют некоторые ограничения в выборе имени. Имя переменной должно: начинаться с буквы, не содержать точки, быть не более 255 символов, не совпадать с ключевыми словами Visual Basic, быть уникальным в пределах области видимости.
Концепция визуального программирования
В 1995 году Borland выпустила новый продукт с названием Delphi, в котором была реализована концепция быстрой разработки приложений (RAD) с помощью так называемых компонентов. Компоненты - это объекты, которые можно поместить в форму и управлять ими через свойства, методы и события. Это можно назвать визуальным программированием.
Концепция визуального программирования
была впервые реализована в системе
Delphi не просто предоставлял в ваше распоряжение Object Pascal. Вместе с ним поставлялась библиотека визуальных компонентов (VCL), которая была предназначена для программирования в Windows с использованием Object Pascal. Но VCL нельзя просто сравнивать с OWL и MFC. Да, это библиотека классов, но ее ядро существенно иное. Различие состоит прежде всего в том, что VCL основана на концепции свойств, методов и событий.
Вы можете удивиться, почему я говорю о Delphi. Причина проста - библиотеки VCL, которые составляют центральную часть Delphi и C++Builder, очень похожи. Это может оказаться для вас неожиданным. Если вы изучали раньше С++, то задумаетесь, как такое может работать. Если вы изучали Паскаль, то, вероятно, улыбнетесь. Если же вы приступили к изучению C++Builder, имея другую подготовку, то сказанное могло не произвести на вас никакого впечатления. В конце концов, не имеет значения, почему это работает. Давайте немного глубже заглянем в VCL.
Компоненты
Как я говорил в 1-м разделе, «Первое знакомство», компоненты VCL представляют собой объекты, выполняющие специфические задачи. Компоненты VCL оформлены как классы Object Pascal. С этого момента мы будем встречаться с компонентами ежедневно. Я не буду сейчас детально рассматривать компоненты, поскольку вы будете встречать примеры их использования на протяжении всего обучающего курса. Завтра я расскажу о компонентах более подробно.
Свойства, методы и события
В первый день я дал вам краткое введение в модель свойств, методов и событий. Эта триада составляет внешний интерфейс компонентов в VCL (т.е. ту часть компонентов, с которой сталкивается пользователь). Давайте по очереди рассмотрим каждую составляющую.
Свойства
Свойства компонентов определяют их работу. Некоторые свойства одинаковы для разных компонентов. Все визуальные компоненты, например, имеют свойства Тор и Left. Эти два свойства определяют положение компонента относительно формы. Для такого компонента, как сама форма, свойства Тор и Left определяют положение формы на экране. Все компоненты имеют свойство Owner, которое используется VCL для отслеживания компонентов, порожденных отдельной формой или самим компонентом.
Одна картинка обычно стоит тысячи слов, поэтому давайте снова запустим C++Builder, и я покажу вам свойства в действии. После запуска C++Builder на экране должны находиться пустая форма и инспектор объектов.
Если в опциях C++Builder установлено сохранение рабочей конфигурации при выходе, то после запуска вы можете увидеть последний проект, над которым работали. В этом случае выберите в главном меню пункт File->New Application, чтобы получить пустую форму.
Сейчас инспектор объектов должен выглядеть примерно как на рисунке 5.1. Если необходимо, щелкните на вкладке Properties окна инспектора объектов, чтобы увидеть список свойств. Свойства компонента расположены в алфавитном порядке. Если компонент имеет больше свойств, чем помещается в окне, можно воспользоваться линейкой прокрутки. Окно инспектора объектов можно перемещать и растягивать. Я предпочитаю делать его максимально высоким, чтобы видеть как можно больше свойств одновременно. Найдите в списке свойство Left и щелкните на нем. Измените числовое значение этого свойства (допустимо любое число от 0 до 600) и нажмите Enter на клавиатуре. Вы увидите, как при этом передвинется форма.
Этот пример иллюстрирует важный аспект свойств - они представляют собой больше, чем простые члены-данные класса. Каждому свойству соответствует определенный член класса, но сами свойства не является членами-данными. Изменение свойства часто приводит к неявному выполнению некоторого блока кода.
Рисунок 5.1 - Окно инспектора объектов
Свойства часто связаны с методами доступа (access methods), которые выполняются при изменении свойств.
В этом месте начинается небольшая путаница. Как я говорил, VCL написана на Паскале. В Паскале используется термин метод (method) вместо термина функция (function) в С++. Чтобы запутать вас еще больше, функцией в Паскале называется метод, который возвращает значение, а метод, который не возвращает значения, называется процедурой (procedure). Я, будучи старым С++ хакером, с радостью называл бы их всех функциями, но при обсуждении VCL придется использовать терминологию Паскаля. В большинстве случаев я буду использовать более общий термин метод.
Значения свойств могут изменяться во время разработки (когда вы проектируете свою форму) и во время выполнения программы. В любом случае, если свойство имеет метод доступа, он будет вызван и выполнен при изменении свойства. Вы уже видели пример изменения свойства на этапе разработки, когда установили новое значение для свойства Left и форма передвинулась по экрану. Это является одной из сильных сторон VCL. В C++Builder вы можете постоянно видеть на экране результат своих действий. Не все свойства способны производить видимые изменения в форме на этапе разработки, но когда это возможно, результат присваивания свойству нового значения немедленно отображается.
Для изменения значения свойства
во время выполнения программы, вам
просто нужно выполнить
Form1->Left = 200;
В случае свойства Left (а также Top) VCL сдвигает и перерисовывает форму. (Те, кто работал с API Windows, могут сообразить, что в конечном итоге это сводится к вызову функций SetWindowPos() и InvalidateRect()).
Обратите внимание, что в,предыдущей строке кода для установки значения свойства использован оператор косвенной доступа (->). Все компоненты VCL размещаются, в «куче», поэтому для доступа к их свойствам и методам всегда используется этот оператор. Классы, которые вы пишете сами, могут размещаться как в «куче», так и в стеке, но все классы компонентов VCL и все их производные классы должны размещаться только в «куче».