Основные понятия визуального объектно-ориентированного программирования
Оценка 4.7

Основные понятия визуального объектно-ориентированного программирования

Оценка 4.7
Научно-исследовательская работа +4
docx
информатика
Взрослым
17.02.2017
Основные понятия визуального объектно-ориентированного программирования
Visual FoxPro наряду с возможностью программировать в нотации стандартного процедурного программирования без объектов и без классов содержит новые языковые конструкции, позволяющие применять возможности объектно-ориентированного программирования. Цель объектно-ориентированного программирования – определить набор компонент многократного использования, которые можно использовать в создаваемых приложениях. Разработка объектно-ориентированных приложений начинается с моделирования реальных объектов, необходимых для выполнения конкретного задания. Базовой конструкцией любого объектно-ориентированного языка является-понятие класса. Любой элемент управления или объект в Visual FoxPro всегда является экземпляром класса. Класс описывает свойства объекта и методы обработки событий. При создании объекта он наследует структуру и поведение своего класса. Каждый элемент управления входит в определенный класс, называемый базовым классом. Каждый базовый класс обладает собственным набором свойств, методов и связанных с ними событий. На основе базовых классов можно создавать свои классы. Классы в Visual FoxPro задаются двумя способами: визуально или посредством кода.
Основные понятия визуального объектно.docx
Основные понятия визуального объектно­ориентированного программирования Visual FoxPro наряду с возможностью программировать в нотации стандартного  процедурного программирования без объектов и без классов содержит новые языковые  конструкции, позволяющие применять возможности объектно­ориентированного  программирования. Цель объектно­ориентированного программирования – определить  набор компонент многократного использования, которые можно использовать в  создаваемых приложениях. Разработка объектно­ориентированных приложений начинается с моделирования реальных  объектов, необходимых для выполнения конкретного задания. Базовой конструкцией  любого объектно­ориентированного языка является­понятие класса. Любой элемент  управления или объект в Visual FoxPro всегда является экземпляром класса. Класс  описывает свойства объекта и методы обработки событий. При создании объекта он  наследует структуру и поведение своего класса. Каждый элемент управления входит в  определенный класс, называемый базовым классом. Каждый базовый класс обладает  собственным набором свойств, методов и связанных с ними событий. На основе базовых  классов можно создавать свои классы. Классы в Visual FoxPro задаются двумя способами:  визуально или посредством кода. Синтаксис языка поддерживает общепринятую для объектно­ориентированного  программирования нотацию: имя_объекта, свойство – для ссылки на свойство объекта  или имя_объекта.метод – для вызова метода объекта. При этом имя_рбъекта может  содержать как простую, так и квалифицированную ссылку, включающую в себя имена  родительских объектов. Объекты базовых классов подразделяются на элементы управления и контейнеры (класс,  который может содержать внутри себя другие объекты). Контейнеры и элементы  управления подразделяются также на визуальные (отображаемые) и не имеющие  визуального представления. Каждый класс имеет свое описание класса. Описания классов хранятся в библиотеках  классов – файлах с расширением .VCX. В проект автоматически добавляются библиотеки  классов (они отображены в окне Диспетчер проекта Project Manager), на основе которых  можно создавать в приложении свои объекты (таблицы, формы, отчеты и др.). Каждый  базовый класс предназначен для выполнения определенных функций и обладает  соответствующим набором свойств, методов и событий. В учебнике не рассматриваются вопросы разработки базы данных и приложения для  работы с ней в объектно­ориентированной нотации. Сказанное выше необходимо для того,  чтобы правильно оперировать объектами в разрабатываемых программах. Создание экранных форм В Visual FoxPro для просмотра, ввода и редактирования данных, хранящихся в таблицах,  используются экранные формы, являющиеся более наглядным средством представления  информации. На формах можно организовать выбор информации из таблиц­справочников с применением раскрывающихся списков или отдельных окон, использовать специальные  режимы редактирования данных с сохранением или отменой изменений, режимы поиска и  отбора информации, печати необходимых отчетов на принтере и пр. При создании форм в Visual FoxPro разработчик может использовать следующие средства: • Form Wizard–мастер форм; • Form Builder– построитель формы; • Builder – построитель объектов формы; • Auto Format Builder– построитель автоформата; • Form Designer – конструктор форм. Разработка формы состоит из нескольких шагов: 1) первоначально создается автономная форма; 2) при необходимости она включается в набор форм; 3) производится настройка свойств формы; 4) в созданную форму добавляются различные объекты и устанавливаются значения их  свойств; 5) в окне кода программы программируются требуемые методы обработки событий как  для формы, так и для входящих в нее объектов. При этом имя метода совпадает с именем  события и выбирается из списка Procedure. Создание формы с помощью мастера. Рассмотрим создание формы с помощью мастера  формы Form Wizard. Он позволяет создавать формы как для одиночных, так и для  связанных таблиц, а также настраивать поля, стиль их отображения, тип кнопок  управления, размещаемых в форме. Форму, созданную с помощью мастера, можно  использовать для просмотра и редактирования информации, содержащейся в таблицах. Для создания формы с помощью мастера из окна проекта выполните следующие действия: 1. Откройте базу данных проекта. Для этого на вкладке DA ТА (Данные) установите курсор на ее название и нажмите кнопку Open (Открыть) окна проекта. При этом на стандартной  панели инструментов в списке Databases (Базы данных) появится название открытой базы  данных. 2. Щелкните на ярлыке Documents (Документы) для перехода на  вкладку DOCUMENTS (Документы). 3. Выберите группу Forms (Формы) и нажмите кнопку New (Новый) окна конструктора  проекта. Откроется диалоговое окно New Form (Новая форма) (рис. 6.1).       4. Нажмите кнопку Form Wizard (Мастер формы). 5. После запуска мастера форм на экране открывается диалоговое окно Wizard  Selection (Выбор мастера) (рис. 6.2). Значение Form Wizard (Мастер формы) используется  для создания однотабличной формы, a One­to­ManyForm Wizard (Мастер форм один­ко­ многим) – для нескольких связанных. По умолчанию установлено первое значение.  Выберите значение One­to­ManyForm Wizard и нажмите кнопку ОКдоя запуска мастера по  созданию формы для связанных таблиц. 6. Появляется первое диалоговое окно мастера (рис. 6.3), в котором нужно указать  родительскую таблицу и выбрать поля этой таблицы, размещаемые в форме. Это первый  шаг в создании формы с помощью мастера форм. В области Databases and tables (Базы  данных и таблицы) расположены два списка. В верхнем списке содержится перечень  открытых баз данных, в нижнем – перечень таблиц выбранной базы. Выберите из верхнего  списка необходимую базу данных, а из нижнего родительскую таблицу. 7. После выбора таблицы список Available fields (Имеющиеся поля) будет содержать  перечень всех полей родительской таблицы. Из данного списка следует перенести  в Selected fields (Выбранные поля) поля, которые собираетесь разместить в создаваемой  форме. Для переноса полей используйте кнопки, расположенные между списками. После  создания списка полей, отображаемых в форме, нажмите кнопку Next (Далее) для перехода к следующему шагу. 8. На следующем, втором шаге необходимо повторить аналогичные действия по выбору  полей из подчиненной таблицы (рис. 6.4). 9. На третьем шаге мастер предлагает определить связь между родительской и  подчиненной таблицами (рис. 6.5). 10. Четвертый шаг мастера открывает диалоговое окно, в котором следует установить  стиль отображения объектов формы и типы кнопок управления (рис. 6.6). Для объектов  формы мастер предлагает на выбор девять вариантов их оформления, которые выбираются из списка Style (Стиль). При выборе каждого из стилей можно просмотреть, как будут  выглядеть объекты создаваемой формы, воспользовавшись областью просмотра в верхней  части диалогового окна.     Переключатель Button type (Тип кнопки) содержит опции, позволяющие задать тип  отображения размещаемых в форме кнопок управления: • Text buttons (Текстовые кнопки); • Picture buttons (Графические кнопки); • No buttons (Нет кнопок); • Custom (Другие – в форме размещаются пять кнопок  управления: Find (Поиск), Print (Печать), Add (Добавить), Delete (Удалить), Exit (Выход).  Перемещение по записям осуществляется с помощью располагаемой в форме линейки  прокрутки). Установите необходимые опции и нажмите кнопку Next (Далее). 11. На пятом шаге  задается критерий сортировки данных родительской таблицы, отображаемых в форме (рис. 6.7).     Поля, по которым будет осуществляться упорядочение, необходимо разместить в  списке Selected fields (Выбранные поля). Опции ASCENDING (По возрастанию)  иDESCENDING (По убыванию) определяют, по возрастанию или по убыванию будут  упорядочиваться данные в указанном поле. Чтобы перейти к следующему шагу, нажмите  кнопку Next (Далее). 12. На заключительном, шестом шаге создания формы с помощью мастера (рис. 6.8) можно  задать заголовок формы в поле Type a title for your form (Тип заголовка формы), а также  указать предполагаемые действия с созданной формой:   • Save form for later use (Сохранить форму); • Save and run form (Сохранить и запустить форму на выполнение); • Save form and modify it in the FormDesigner (Сохранить и открыть для модификации в  конструкторе форм).     В последнем диалоговом окне мастера расположены флажки: • Use field mappings (Использовать связь полей с типами объектов) – при установке этого  флажка объекты формы, соответствующие полям таблицы, будут создаваться на основе  параметров, заданных на вкладке FIELD MAPPING (Связь полей с типами объектов)  диалогового окна Options (Параметры), открываемого при выборе  командыOPTIONS (Параметры) из меню Tools (Сервис). В противном случае объекты в  форме будут создаваться исходя из информации, содержащейся в базе данных; • Override with DВС field display classes (Пересоздать, используя классы отображения  полей) – для создания элементов формы используются классы отображения полей таблицы, заданные в конструкторе таблиц. Воспользовавшись кнопкой Preview (Просмотр), можно посмотреть, как будет выглядеть  создаваемая форма, и если что­то не так, вернуться к предыдущим шагам в работе мастера  и изменить установленные параметры. После того как все параметры введены, нажмите кнопку Finish (Готово). Откроется  диалоговое окно Save as (Сохранить как), в котором необходимо указать имя файла и  папку, в которой будет размешен файл формы. На рисунке 6.9 представлена форма, созданная с помощью мастера. При необходимости  полученную форму можно модифицировать с помощью конструктора форм.     Создание формы с помощью конструктора форм. Для самостоятельной разработки формы  с заданными свойствами или изменения формы, созданной с помощью мастера, необходимо использовать конструктор форм. Для облегчения размещения в конструкторе форм полей и надписей, оформленных в  соответствии с выбранным стилем, можно использовать построитель формы. Помимо этого в конструкторе форм для большинства объектов (полей, списков, переключателей, таблиц  и т.д.) существуют построители, позволяющие размещать в форме заданные объекты и  настраивать их свойства. Кроме того, в Visual FoxPrd имеется построитель автоформата, с  помощью которого задают одинаковый стиль оформления выделенных элементов формы. Разработка формы или набора форм выполняется в окне проектирования формы Form  Designer (рис. 6.10). В формах можно размешать различные типы объектов, определять наборы форм, дочерние  формы и формы верхнего уровня. Visual FoxPro позволяет разрабатывать приложения с SDI­интерфейсом (Single Document  Interface) и MDI­интерфейсом (Multiple Document Interface). Приложения с 5£>/­ интерфейсом состоят из одного или нескольких независимых окон, каждое из которых  появляется отдельно на рабочем столе. Приложения с А/Ш­интерфейсом состоят из  одного главного окна и ряда дочерних окон, которые могут перемещаться только в  пределах родительского окна. Для поддержки SDI­ и ЛШ/­интерфейса существует возможность создания различных  типов окна формы: • дочерняя форма (childform) – окно, перемещаемое только в пределах родительского окна; • плавающая форма (floating form) – окно, принадлежащее родительскому окну, но  перемещаемое свободно по экрану; • форма верхнего уровня (top­level form) – самостоятельное окно, не имеющее  родительского. Тип окна формы устанавливается с помощью ее свойств.  Свойство ShowWindow определяет тип окна формы (0 – дочерняя или плавающая форма, для которой родительским является главное окно VFP; 1 – дочерняя или плавающая  форма, для которой родительской является текущая активная форма; 2 – форма верхнего  уровня). Свойство MDIForm определяет возможность “объединения” дочерней формы с  родительской (.Т.). Для того чтобы закрыть дочернюю или плавающую форму, следует  применить метод ThisForm. Release. Объект ThisForm используется для формирования  ссылки на окно формы. Набор форм реализуется объектом FormSet и представляет собой группу форм, поведение  которой может контролироваться как для единого объекта. Это включает возможность  одновременного отображения или скрытия всех форм из набора форм, одновременного  перемешения всех форм. Самое главное – набор форм имеет одну общую среду данных,  что обеспечивает синхронизацию отображения данных из таблиц, между которыми  установлены отношения даже в том случае, если они расположены в различных формах из  набора форм. Форма, как и все располагаемые в ней объекты, имеет свойства, используя которые можно  задать ее размер, координаты верхнего левого угла, стиль рамки обрамления, заголовок,  цвет и т.д. Для создания объектов экранных форм используется панель инструментов Form Controls, дня выравнивания объектов полезна панельLayout (рис. 6.11).  Окно Properties отображает информацию о каждом объекте среды данных: таблице, виде,  отношении. Назначение вкладок окна Properties: ALL (Все) – содержит список всех свойств и методов формы в алфавитном порядке; DATA (Данные) – содержит свойства объекта, связанные с источником данных; METHODS (Методы) – содержит список всех методов объекта; LAYOUT (Расположение) – содержит свойства объекта, связанные с его оформлением; OTHER (Другие) – в данную вкладку собраны все свойства, не вошедшие во  вкладки Data (Данные) и Layout (Расположение).     Новая форма по умолчанию располагается в верхнем левом углу основного окна Visual  FoxPro. Для изменения ее положения можно использовать свойства Left(Левый)  и Тор (Верхний), указывающие расстояние в пикселях от левого и верхнего краев  соответственно, а также мышь. Для изменения размера формы можно использовать  свойства Height (Высота) и Widht (Ширина), определяющие высоту и ширину формы, а  также мышь. Для задания текста заголовка формы, располагающегося в строке заголовка, предназначено свойство Caption (Надпись) окна свойств. Чтобы отредактировать заголовок, откройте  окне Properties (Свойства), выделите свойство Caption (Надпись) и в поле ввода, ставшее  активным, введите заголовок формы. Если нужно, чтобы форма вообще не содержала  заголовок, установите для свойства TitieBar (Строка заголовка) значение с#(выкл.) Стиль обрамления формы задается с помощью свойства Borderstyle (Стиль рамки) и может  принимать следующие значения: • 0 – No border (Форма не имеет рамки); • 1 – Fixed Single (Неизменяемая одинарная рамка); • 2 – Fixed Dialog (Неизменяемая двойная рамка); • 3 – Sizable (Изменяемая рамка). Свойство BackColor (Цвет фона) позволяет задать цвет фона формы.  Свойство Windowstate (Состояние окна) определяет размер формы при ее вызове и может  принимать одно из значений: • Normal – форма имеет размеры, определенные его свойствами; • Minimized – форма сворачивается в значок; • Maximized – форма распахивается на весь экран. Определив необходимые свойства формы, переходим к размещению объектов. Вначале  необходимо выполнить настройку среды данных в окне проектирования среды  данных Data Environment Designer (см. рис. 6.11). Для этого в контекстном меню выбираем команду Data Environment. Среда данных – это некоторый объект, который включает  информацию о таблицах или видах и отношениях между ними, сохраняя ее вместе с  формой. Среда данных позволяет автоматически открывать или закрывать таблицы и виды  при открытии или закрытии формы соответственно. Для объекта Data Environment можно в окне Properties установить значения следующих  свойств: • автоматическое закрытие таблиц при удалении формы (AutoCloseTables); • автоматическое открытие таблиц при выполнении формы (Auto­OpenTables); • текущая таблица или вид при выполнении формы (Initial­Selected Alias). Если добавляемые в среду данных таблицы имеют установленные постоянные отношения,  то они добавляются автоматически. Однако среда данных позволяет установить и  сохранить свою информацию об отношениях между таблицами. Для размещения в форме полей таблицы и надписей к ним в конструкторе форм можно  использовать построитель формы. Чтобы запустить построитель форм, выберите  команду BUILDER (Построитель) контекстного меню формы или нажмите кнопку Form  Builder (Построитель формы) на панели инструментов Form Designer(Конструктор форм).  Откроется диалоговое окно Form Builder (рис. 6.12), содержащее две вкладки: • FIELD SELECTION (Выбор полей, которые будут размещены в форме); • STYLE (Задание стиля отображения объектов формы).     Используя вкладку FIELD SELECTION (Выбор поля) диалогового окна Form  Builder, сформируйте список полей таблицы, размещаемых в форме. Для этого из верхнего  списка области Databases and tables (Базы данных и таблицы) выберите необходимую базу  данных, а из нижнего – таблицу, поля которой размещаете в форме. Затем из  списка Available fields (Имеющиеся поля) перенесите в Selected fields (Выбранные поля) поля, которые собираетесь разместить в создаваемой форме. Для переноса полей  используйте кнопки, расположенные между списками. Сформировав список полей, перейдите на вкладку STYLE (Стиль). Используя  расположенный здесь список Style (Стиль), задайте стиль оформления объектов,  размещаемых в форме. Завершив установку параметров на обеих вкладках, нажмите  кнопку ОК. В форме будут представлены поля и надписи к ним. Построитель может  размещать в форме все поля, включая также поля типа GENERAL. Для размещения полей и надписей родительской таблицы без помощи построителя  необходимо выполнить следующие действия: 1) задать заголовок поля с помощью элемента управления Label  на панели инструментов Form Controls. Текстовая информация задается  свойством Caption, а вид, размер и цвет шрифта – соответствующими  свойствами FontName, FontSize и FontColor;  , который находится  2) для размещения поля ввода необходимо воспользоваться элементом управления Text  Box   (для многострочных полей ввода и отображения MEMO­ полей таблиц  используют элемент управления  3) для задания источника данных поля ввода можно воспользоваться  построителем Builder, вызвав его из контекстного меню. Вкладки окна построителя (рис.  6.13) определяют свойства текстового поля: • вкладка FORMA T задает различные опции форматирования для текстового поля и тип  маски ввода; • вкладка STYLE задает визуальные эффекты для текстового поля, обрамление и вид  выравнивания символов; • вкладка VALUE задает поле, в котором следует сохранить значение текстового поля. Эти же установки свойств можно задать и непосредственно в окне Properties. После размещения полей родительской таблицы переходим к размещению данных из  подчиненной таблицы. Эти данные принято отображать с помощью элемента  управления  построителем для установки необходимых свойств (рис. 6.14). . Разместив объект Grid на форме, можно воспользоваться Назначение вкладок построителя: • GRID ITEMS – позволяет сформировать список полей подчиненной таблицы,  размещаемых в объекте; • STYLE– позволяет определить стиль таблицы; • LA YOUT– позволяет задать названия столбцов (по умолчанию – имена полей) и их  контрольные типы; • RELA TIONSHIP – позволяет задать отношения между родительской и подчиненной  таблицами. Значения свойств объекта Grid можно задавать и непосредственно в окне Properties. Для просмотра всех записей таблиц на экране необходимо добавить на форму средства  перемещения по записям таблиц. Наиболее удобным средством для этих целей являются  кнопки управления. Для размещения кнопок управления в форме можно использовать две кнопки панели  инструментов Form Controls (Элементы управления формы • Command   Button (Создание одиночной кнопки); • Command Group (Создание набора кнопок). Разместим объект Command Group на форме и вызовем построитель (рис. 6.15).  Вкладка BUTTONS'задает количество кнопок, а также соответствующие им названия и графические изображения. Вкладка Layout задает компоновку кнопок, интервалы между  ними и стиль обрамления.     Для изменения свойств каждой кнопки объекта Command Group необходимо открыть окно  свойств данного объекта и выбрать в раскрывающемся списке элемент, соответствующий  данной кнопке (рис. 6.16). Затем для каждой кнопки необходимо определить команды, которые будут выполняться  при их нажатии. Для каждого элемента объекта Command Group в окне процедур  метода Click нужно поместить соответствующие команды. На рисунке 6.17 в окне  процедур определены команды для кнопки перехода на следующую запись. Visual FoxPro для отображения в форме одного и того же поля позволяет использовать  разные объекты. Если вводимых в поле значений много, удобно применять списки,  называемые объектами типа ListBox (Список  для отображения в форме элементов, которые могут быть заданы с помощью массива,   Списки в Visual FoxPro используются меню, списка файлов, значений поля таблицы и т.д. Для указания источника данных для  списка применяется свойство RowSourceType (Тип источника данных), имеющее значения: • 0 – значения элементов списка определяются программно с помощью  методов Additem (Добавить объект) или AddListltem (Добавить объект списка); • 1 – список задается в виде строки, элементы в которой разделяются запятыми; • 2 – в качестве источника данных используется таблица; количество выводимых полей  таблицы определяется значением свойства ColumnCount (Количество полей); • 3 – список содержит данные, полученные в результате выполнения SQL­оператора; • 4 – список содержит данные, полученные в результате выполнения указанного запроса.  Запрос задается именем файла с расширением QPR; • 5 – источником данных является заданный массив; • 6 – значения элементов списка определяются полями таблицы; • 7 – список содержит перечень файлов текущей папки; в свойстве RowSource (Источник  данных списка) можно задать шаблон выбора файлов; • 8 – в качестве источника данных используется структура таблицы; • 9 – список содержит пункты всплывающего меню. Объекты типа ListBox имеют также свойства, которые отсутствовали у ранее  рассмотренных объектов: • ColumnCount – определяет число колонок в списке; • FirstElement – задает первый элемент массива, который будет отображаться в списке; • Number Of Elements – определяет количество элементов массива, отображаемых в списке; • RowSource – указывает источник данных списка. Разместим на форме объект ListBox, который будем применять для ввода в поле Тип  контакта. Затем вызовем построитель для установки необходимых свойств (рис. 6.18).  Рассмотрим назначение вкладок построителя. Вкладка LIST ITEMS (Список объектов) позволяет задать тип источника данных для  заполнения списка. На ней расположен раскрывающийся список Fill the list  with(Заполнение списка). Назначение опций раскрывающегося списка Fill the list with: Fields from a table or view – указывает, что источником данных являются поля таблицы или  представления данных; Data entered by hand – указывает, что источником данных является заданный список  значений; Values from an array – указывает, что источником данных является массив. При использовании значения Fields from a table or view (Поля таблицы или представления)  сначала необходимо в списке Databases and tables (Базы данных и таблицы) выбрать  таблицу, поле которой будет являться источником данных, а затем перенести нужное поле  из списка Available fields (Имеющиеся поля) в список Selected fields(Выбранные поля). Для задания стиля отображения перейдите на вкладку STYLE (Стиль) построителя объекта (рис. 6.19). Она содержит три группы переключателей. ПереключателиThree­ dimensional (Объемный) и Plain (Плоский) позволяют задать объемный или плоский стиль  отображения поля, определяемый значением свойства SpeciaiEffect(Специальный эффект). Переключатели второй группы задают значение свойства Incrementaisearch и имеют  следующее назначение: • Yes, enable incremental searching (Да, возможен поиск значения) – указывает, что при  вводе каждой буквы в поле ввода списка будет осуществляться поиск подходящего  значения; • No, don't enable incremental searching (Нет, не возможен поиск значения) – указывает, что  при вводе каждой буквы в поле ввода списка поиск подходящего значения не будет  осуществляться. Установив необходимые опции на вкладке STYLE (Стиль), перейдите на вкладку £4Г0£/Г  (Расположение) (рис. 6.20). Флажок Adjust the width of the list box to display all  columns (увеличить ширину списка для отображения всех колонок) задает значение  свойства Width (Ширина) объекта List Box. При установке флажка ширина списка  увеличивается, чтобы поместились значения всех элементов списка. Таблица данной вкладки содержит реальные данные и позволяет задать значения  свойства Columnwidths (ширина колонки). Для изменения ширины колонки установите  курсор на правую границу столбца и перемещайте в ту или иную сторону. Вкладка VALUE (Значение) построителя (рис. 6.21) предназначена для указания источника  данных и задает значение свойства Controisource (Источник данных) объекта. Завершив установку параметров, нажмите кнопку ОКдля закрытия окна построителя. В  том случае, если опять потребуется его помощь, выделите созданный объект  типа ComboBox (Раскрывающийся список), нажмите правую кнопку мыши и выберите из  контекстного меню команду BUILDER (Построитель). Второй вид списка – объект типа ComboBox; (Раскрывающийся список), или  раскрывающийся список  вводимых значений много, а места в форме доя расположения обычного списка не хватает.  Свойства объекта ComboBox такие же, как у объекта ListBox, и технология работы  выстраивается так же. . Этот тип списка удобно использовать в том случае, если  Для размещения в форме полей, которые могут иметь только одно из двух допустимых  значений (как правило, это логические поля), используются объекты  типаCheckBox (Флажок). Создание объекта Флажок доя редактирования  тип Logical, выполняется в следующей последовательности:  поля, которое имеет  1. Нажмите кнопку CheckBox (Флажок) на панели инструментов FormControls. 2. Щелкните в месте предполагаемого размещения флажка. Объект разместится в форме. 3. Откройте окно Properties объекта. Построитель доя этого типа объекта не  предусмотрен, поэтому настройку свойств нужно производить вручную. 4. Для связывания флажка с полем таблицы скорректируйте  свойство Controlsource (Источник данных), задав в качестве источника данных поле  типа Logical таблицы. 5. Введите в поле свойства Caption (Надпись) необходимый текст, который будет размещен справа от флажка в окне конструктора форм, а также в форме. Для размещенного в форме флажка можно скорректировать свойства ForeColor (Цвет  надписи), BackStyle (Стиль фона) и Font Name (Наименование шрифта), определяющие  цвет, фон, наименование шрифта. Часто для выбора одного из нескольких значений (если таковых немного) удобно  использовать объект типа Option Group (Переключатель) , который широко используется не только в Visual FoxPro, но и  Group представляют собой составные объекты, содержащие элементы, наделенные  собственными свойствами.  в других приложениях Windows. Объекты типа Option Назначение основных свойств объекта типа Option Group: ButtonCount – задает количество опций в переключателе; Style – определяет вид  переключателя; Left, Тор – расстояние между кнопками; BorderStyle – стиль обрамления. Процесс создания переключателя для просмотра и редактирования поля таблицы включает в себя следующие действия: 1. Расположите на форме объект Option Group. 2. Откройте окно построителя для созданного объекта (рис. 6.22).     3. Установите необходимое значение свойств ButtonCount, Caption (Надпись) и вид  опций Standart/Graphik на вкладке BUTTONS построителя. 4. Используя вкладку STYLE, выполните настройку внешнего вида опций (рис. 6.23). 5. Для связи созданного объекта формы с полем таблицы используйте вкладку VALUE  (рис. 6.24). Для размещения информации из GENERAL полей используется объект Ole Bound   В окне свойств объекта установкой значения  Contro,  свойства Controisource(Источник данных) свяжите созданное поле с полем таблицы. Для  этого в поле ввода свойства нажмите кнопку раскрытия списка и из списка полей таблицы  выберите соответствующее поле, имеющее тип General. Форма, созданная в Visual FoxPro, не требует генерации программных кодов, ее можно  сразу запустить на выполнение. Для запуска формы в Visual FoxPro существует много  способов. При нахождении в конструкторе форм выполните одно из следующих действий: • выберите в меню Form команду RUN FORM; • выполните команду R UN FORM контекстного меню; • нажмите кнопку Run на стандартной панели инструментов Visual FoxPro.  При нахождении в окне конструктора проекта для запуска формы установите курсор на ее  имя и нажмите кнопку Run. Можно также запустить форму как программу. Для этого выполните следующие действия: 1) в меню Program выберите команду DO; 2) в открывшемся диалоговом окне Do установите тип выполняемого файла (в данном  случае – Form) и выберите из списка файлов необходимую форму; 3) нажмите кнопку Do. В приложении форма запускается командой DO FORMFormName \ ?(NAMEMemVarName (LINKED))(WITH cParameterList) (TO Mem  VarName) (NOREAD) Параметры команды: FormName – задает имя формы или набора форм, которые предстоит выполнить; ?– отображает диалоговое окно Do, в котором можно выбрать форму или набор форм для  выполнения; NAME MemVarName (LINKED) – задает переменную памяти или элемент массива, который будет служить ссылкой на форму или набор форм. Если задать несуществующую  переменную памяти, Visual FoxPro автоматически создаст ее. Если задается элемент массива, этот массив должен существовать уже до выдачи командыDO FORM. Если задать  существующую переменную памяти или элемент массива, запись будет вестись в них. Если предложение NAME опущено, Visual FoxPro создает переменную памяти типа  объекта, имя которой совпадает с именем файла формы или набора форм. Включение LINKED Mem VarName вызывает форму с соответствующей ей переменной  памяти, чтобы форма освобождалась, когда переменная выходит за пределы области  действия. Если не задать предложение LINKED, форма будет оставаться активной, даже  если ей не будет соответствовать никакая переменная объекта; WITH cParameterList – задает параметры, передаваемые в форму или набор форм; ТО Mem VarName – задает переменную для хранения значения, возвращаемого из формы.  Если такой переменной не существует, Visual FoxPro автоматически создает ее. Для  задания возвращаемого значения используйте команду RETURN в процедуре  события Unload данной формы. Если не указать возвращаемое значение, по умолчанию  будет возвращаться значение “истина” (.Т.). Чтобы использовать  предложение ТО, свойство WindowType формы должно быть установлено равным  1 (Modal); NOREAD – определяет, что набор форм создается и отображается, но элементы  управления не активизируются до выдачи команды READ. Опция NOREADигнорируется,  если значение свойства WindowType объекта FormSet отлично от 2 (Read). Команда DO FORM выполняет метод Show для формы или набора форм. Для того чтобы закрыть форму, можно: • в системном меню выбрать опцию FILE и команду CLOSE; • выполнить команду RELEASE. Release Form­name; • использовать кнопку на форме, для которой при обработке события Click вызвать  метод Release для текущей формы: ThisForm. release. Рассмотрим последовательность событий, происходящих при запуске формы. Форма в  чистом виде, без элементов управления и данных, которыми она должна манипулировать,  интереса не представляет. Поэтому любая форма создается именно в целях оперирования  данными с помощью элементов управления, включаемых в форму. Данные в VFP хранятся,  естественно, в таблицах и подключаются к форме с помощью специального объекта Data  environment. Load() – первое в последовательности событий объекта Форма. В этом событии ни один  элемент, расположенный на форме, еще не создан. Это событие рекомендуется  использовать для выполнения настроек среды окружения, например для открытия таблиц и баз данных, не включаемых в объект Data environment; RETURN .F. – в событии Load() отменяет дальнейшую загрузку формы. Все открытые  таблицы и полученные курсоры закрываются; Init() – событие при создании формы. Следует учесть, что элементы управления,  помещенные на форму, создаются раньше формы, т.е. событие Init() элементов происходит  раньше, и поэтому в событии lnitQ формы уже можно обращаться к элементам управления  формы. Включив оператор LPARAMETERS в событие формы, можно осуществить  возможность передачи в нее параметров. Стоит заметить, что видимость этих переменных­ параметров дальше события InitQ не распространяется. Если необходимо, создание и  соответственно запуск формы можно прекратить, выполнив команду RETURN .F. Это  удобно, например, для организации допуска к формам разным пользователям или проверки верности условий запуска формы, без чего далее форма не сможет правильно  функционировать; Activate() – активирование формы действиями пользователя, такими как щелчок мышью  или вызовом метода ShowQ формы. Это событие при работе формы может срабатывать  много раз, и иногда код, помещенный в него, может доставлять проблемы. Поэтому если  без размещения кода в это событие не обойтись, то следует предусмотреть проверку  необходимости повторного запуска кода в нем. Очень осторожно надо относиться к коду, помещенному в событие Deactivate(), которое  тоже может многократно сработать; GetFocusQ – получение фокуса. Далее форма работает, и на ней могут срабатывать самые разные события: нажатие клавиш, обновление содержания, перерисовка и др. При выгрузке формы происходят другие события: QueryUnload() – это событие происходит при выполнении команд CLEAR WINDOWS,  RELEASE WINDOWS vum QUIT, а также при нажатии на крестик окна формы. Стоит  отметить, что это событие не происходит при выполнении метода ReleaseQ формы. Для  того чтобы предотвратить закрытие формы исходя из необходимых разработчику условий,  достаточно выполнить команду NODEFAULT в этом событии; DestroyO – происходит при уничтожении объекта; UnloadQ – это последнее из событий в последовательности перед уничтожением формы,  происходит после освобождения всех объектов, включенных в форму. Все элементы  управления, включенные в форму, в этом событии формы уничтожены и недоступны. Создание отчетов Информационная система включает не только средства ввода и редактирования данных, но и инструменты анализа введенных пользователями данных и средства представления их в  более удобном для восприятия виде (графики, сводные таблицы, отчеты), позволяющем  принимать обоснованные решения (например, о дальнейших направлениях развития бизнеса компании). Эти продукты называют общим термином Business Intelligence (ВI) tools. К  современным средствам Business Intelligenceотносятся генераторы отчетов, средства  аналитической обработки данных, средства разработки BI­приложений (BI Platforms) и так  называемые Enterprise BI Suites – средства анализа и обработки данных масштаба  предприятия, которые позволяют осуществлять комплекс действий, связанных с анализом  данных и созданием отчетов, и нередко включают в себя интегрированный набор BI­ инструментов и средства разработки BI­приложений. В учебнике рассмотрены отчеты и  средства их создания. Отчет представляет собой документ, содержимое которого динамически формируется на  основе информации, содержащейся в базе данных. Такой документ может состоять из  различных частей – колонтитулов, повторяющихся на каждой странице; заголовка в начале  отчета; областей, в которых располагаются фактические данные; областей, в которых  расположены агрегатные данные (суммы, средние и т.д.) и др. Отчеты могут содержать  данные из одной или нескольких таблиц либо запросов, а также данные из одной или  нескольких записей. Данные одной записи могут занимать строку в напечатанной таблице,  прямоугольную область на листе, а также целый лист или даже несколько листов. Типичным примером отчета, содержащего одну запись, может быть личная карточка  сотрудника в отделе кадров, а примером отчета, содержащего несколько записей, –  ведомость выдачи заработной платы; комплект однотипных писем, рассылаемых разным  клиентам и содержащих их персональные реквизиты; набор почтовых этикеток,  напечатанный на специальной бумаге с прямоугольными наклейками. Отчетом,  содержащим данные из двух связанных таблиц или запросов, может быть, в частности, счет, в котором помимо сведений о заказе (дате, времени, реквизитов заказчика) содержится  список заказанных товаров с их количеством, ценами и скидками. Кроме того, отчет может содержать только агрегатные данные (суммы, средние, максимальные и минимальные  значения и некоторые другие статистические вычисления). В Visual FoxPro для создания отчетов можно использовать следующие средства: • Report Wizard (Мастер отчета) – позволяет достаточно быстро создать отчет, применяя  сортировку, группировку данных и заданный пользователем стиль оформления; • Report Designer (Конструктор отчета) – в нем можно разрабатывать или  модифицировать отчеты, созданные с помощью мастера; • Quick Report (Быстрый отчет) – предназначено для размещения в конструкторе отчета  полей и задания среды окружения. При создании отчета можно использовать любые средства, предлагаемые Visual FoxPro,  какие кажутся более удобными. Конечно, больше возможностей предоставляет  конструктор отчетов, позволяющий создавать отчеты как в табличном виде, так и в  свободной форме. При разработке отчета, прежде чем приступить к его созданию,  необходимо четко представлять, что надо получить в результате. Поэтому следует  продумать следующие вопросы. • С какой целью создается отчет? • Какой вид отчета (табличный, в свободной форме или наклейки) предпочтителен? • Информация из каких таблиц должна быть представлена в отчете? • Из используемых в отчете таблиц какая будет главной, а какая подчиненной? • По каким параметрам будет упорядочиваться информация в отчете? • Будет ли при создании отчета применяться группировка данных и по каким параметрам? Создание многотабличного отчета с помощью мастера. Рассмотрим создание отчета с  помощью мастера отчетов. Для создания формы с помощью мастера из окна проекта выполните следующие действия: 1. Откройте базу данных проекта. Для этого на вкладке DATA (Данные) установите курсор  на ее название и нажмите кнопку Open (Открыть) окна проекта. При этом на стандартной  панели инструментов в списке Databases (Базы данных) появится название открытой базы  данных. 2. Щелкните на ярлыке Documents (Документы) для перехода на  вкладку DOCUMENTS (Документы). 3. Выберите группу Reports (Отчеты) и нажмите кнопку New (Новый) окна конструктора  проекта. Откроется диалоговое окно New Reports (Новый отчет) (рис. 6. 25).     4. Нажмите кнопку Report Wizard (Мастер отчета). 5. После запуска мастера отчета на экране открывается диалоговое окно Wizard  Selection (Выбор мастера) (рис. 6.26). Значение Report Wizard (Мастер формы)  используется для создания однотабличного отчета, a One­to­Many Report  Wizard(MacTepoT4eTaodiiH­Ko­MHoeuM) – для нескольких связанных. По умолчанию  установлено первое значение. Выберите значение One­to­Many Report Wizard и нажмите  кнопку ОКдля запуска мастера по созданию формы для связанных таблиц. 6. Появляется первое диалоговое окно мастера (рис. 6.27), в котором необходимо указать  родительскую таблицу и выбрать поля этой таблицы, размещаемые в отчете. Это первый  шаг в создании отчета с помощью мастера. В области Databases and tables (Базы данных и  таблицы) расположены два списка. В верхнем списке содержится перечень открытых баз  данных, в нижнем – перечень таблиц выбранной базы. Выберите из верхнего списка  необходимую базу данных, а из нижнего родительскую таблицу. 7. После выбора таблицы список Available fields (Имеющиеся поля) будет содержать  перечень всех полей родительской таблицы. Из данного списка надо перенести вSelected  fields (Выбранные поля) поля, которые собираетесь разместить в создаваемом отчете.  После создания списка полей, отображаемых в форме, нажмите кнопку Next(Далее) для  перехода к следующему шагу. 8. На следующем, втором шаге необходимо повторить действия по выбору полей из  подчиненной таблицы (рис. 6.28). 9. На третьем шаге мастер предлагает определить связь между родительской и  подчиненной таблицами (рис. 6.29). 10. На следующем шаге задается критерий сортировки данных родительской таблицы,  отображаемых в форме (рис. 6.30).     11. Пятый шаг мастера открывает диалоговое окно, в котором следует установить стиль  отображения объектов, порядок их размещения и ориентацию страницы отчета (рис. 6.31).  Для объектов мастер предлагает на выбор пять вариантов оформления, которые  выбираются из списка Style (Стиль). При выборе стилей можно просмотреть, как будут  выглядеть объекты отчета о каждом стиле, воспользовавшись областью просмотра в  верхней части диалогового окна. Кнопка Summary Options открывает диалоговое окно (рис. 6.32), в котором можно указать  необходимость отражения статистических данных в отчете.     12. На следующем шаге можно задать заголовок отчета, используя для этого поле  ввода Type a title for your report (Тип заголовка отчета). В этом же диалоговом окне можно  указать один из трех вариантов дальнейшей работы с отчетом (рис. 6.33). Переключатели окна Report Wizard (Step 6): Save report for later use – созданный отчет сохраняется на диске; Save report and modify it in the Report Designer – созданный отчет сохраняется на диске и  открывается в конструкторе отчетов для модификации; Save and print report – созданный отчет сохраняется на диске и печатается. В правом нижнем углу диалогового окна находится кнопка Preview (Просмотр),  позволяющая просмотреть созданный отчет. Если созданный отчет не удовлетворяет  заданным требованиям, с помощью кнопки Back (Назад) можно вернуться к предыдущим  шагам построения отчета и изменить установленные там параметры. Введя заголовок и установив требуемую опцию, для завершения создания отчета с  помощью мастера нажмите кнопку Finish (Готово). Открывается диалоговое окноSave  as (Сохранить как), в которое следует ввести имя созданного файла. Если созданный отчет соответствует заданным требованиям, можно его распечатать. Если  необходимо внести изменения, откройте созданный отчет в конструкторе отчетов и  модифицируйте его. Создание многотабличного отчета с помощью конструктора. Для открытия окна  конструктора отчетов при создании нового отчета можно выбрать один из следующих  способов: • в меню File выберите команду NEWvi в открывшемся диалоговом окне New выберите  опцию REPORT, затем нажмите кнопку New file; • нажмите кнопку New в окне проекта, предварительно выбрав группу Reports; • нажмите кнопку New на стандартной панели инструментов; в открывшемся диалоговом  окне New установите опцию REPORT и нажмите кнопку New file. Для работы в конструкторе отчетов используются панели инструментов Report  Designer (Конструктор отчета) и Report Controls (Элементы управления отчета), а также  команды пункта Report (Отчет) (рис. 6.34), появившегося в строке основного меню при  открытии конструктора.     Кнопки панели инструментов Report Controls (Элементы управления отчета): Select Objects – является указателем выбора объектов отчета; Label – размещает текст; Field – размещает поля; Line – рисует линии; Rectangle – рисует прямоугольники; Rounded Rectangle – рисует прямоугольник со скругленными краями; Picture/'ActivX Bound Control – помещает в отчет рисунок; Button Lock – закрепляет выбор кнопки. Вся рабочая область конструктора отчетов по умолчанию разделена на три полосы  (верхний колонтитул, детали и нижний колонтитул), ограничиваемые разделительными  строками (см. рис. 6.34). Наименование полосы отображается на разделительной строке,  находящейся непосредственно под этой полосой. При использовании в отчете  группирования данных и добавлении в него титульной страницы и итоговых данных  появляются дополнительные полосы (титул, группа сверху, группа снизу, итоги). Каждая  полоса может содержать элементы управления отчета, такие как текст, табличные и  вычисляемые поля, линии, прямоугольники, рисунки. Основное назначение полосы –  определять, когда и где будут печататься размещенные в полосе объекты. Типы полос отчета: Title (Титул) – в этой полосе размещается информация, появляющаяся перед основным  отчетом и называемая титульной. Это может быть имя отчета, сопроводительное письмо  или любые данные, которые необходимо поместить на первой странице отчета; Page Header (Верхний колонтитул) – эта полоса в отчете называется верхним  колонтитулом. Данные, помещенные в полосу, печатаются в начале каждой страницы.  Примерами элементов управления могут быть название отчета, текущая дата, номер  страницы и т.д.; Group Header (Группа сверху) – в этой полосе печатается информация, используемая при  группировке. При группировке данных группа может иметь верхние полосы, печатаемые до нее. Они помогают идентифицировать информацию, содержащуюся на каждом уровне  группировки; Detail (Детали) – эта полоса содержит данные полей из таблицы или результат вычислений  над ними; Group Footer (Группа снизу) – в полосе размещается итоговая информация по группе; Page Footer (Нижний колонтитул) – в нижнем колонтитуле печатается название отчета,  дата, номер страницы и итоговые значения по данным текущей страницы; Summary (Итоги) – в итоговой части отчета содержится информация, появляющаяся один  раз после основного отчета и содержащая итоговые значения или заключительный текст. В процессе создания отчета необходимо выполнить: • определение среды окружения; • размещение объектов в отчете: текста, полей, линий, прямоугольников и рисунков; • группирование данных в отчете; • сохранение отчета; • просмотр созданного отчета в окне предварительного просмотра; • печать отчета. Ускорить размещение данных в отчете можно с помощью команды QUICK  REPORT(Быстрый отчет) из меню Report (Отчет). Отчет, получаемый в результате  выполнения этой команды, называется быстрым или стандартным отчетом. Созданный  таким образом отчет можно модифицировать, изменив текст надписей, порядок  расположения полей, добавив в отчет группирование данных, заголовок и т.д. Стандартный отчет позволяет размещать данные только для одной таблицы. Если необходимо создать  многотабличный отчет, к этому средству лучше не прибегать. Рассмотрим технологию создания многотабличного отчета. На первом шаге необходимо сформировать среду окружения, выполнив для этого  следующие действия: • разместить в окружении используемые в отчете таблицы; • установить для таблиц необходимые индексы; • установить отношения между таблицами. Вся относящаяся к среде окружения информация хранится в файле описания отчета. Для  формирования среды окружения отчета используется окно Data Environment Report  Designer (Среда окружения Конструктора отчета) (рис. 6.35). Открыть окно можно одним из следующих способов: • в меню View (Вид) выбрать команду DA ТА ENVIRONMENT'(Среда окружения); • выбрать пункт Data Environment (Среда окружения) контекстного меню. В среде окружения необходимо разместить все таблицы, данные из которых будут  использоваться в отчете. Для добавления таблицы в окружение применяется  команда ADD (Добавить) контекстного меню или команда ADD (Добавить) из меню Data  Environment (Среда окружения). Связанные таблицы базы данных переносятся  вEnvironment Report Designer (Среда окружения Конструктор отчета) с сохранением  связей, установленных между ними. После размещения таблиц в среде окружения отчета необходимо упорядочить данные,  находящиеся в таблицах. Для этого выполните следующие действия: • выделите таблицу, в которой хотите упорядочить данные;

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования

Основные понятия визуального объектно-ориентированного программирования
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.
17.02.2017