Борис Пахомов Санкт Петербург бхв петербург 2013 удк 004. 4 Ббк 32. 973. 26018. 2 П
Скачать 17.38 Mb.
|
All Windows Forms палитры компонентов. Он делает возможным выбор цвета в диалоговом окне, работает точно также, как и остальные диалоговые компоненты выполняется метод ShowDialog() , открывается палитра цветов, из которой нужно выбрать необходимый цвет. Значение цвета помещается в свойство Color компонента, после чего цвет может использоваться в дальнейшем. Пример работы компонента показан на рис. 11.91. Рис 11.91. Пример использования компонента Текст обработчика кнопки, изменяющего цвет шрифта формы, приводится в листинге 11.26. Листинг 11.26 private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { this->colorDialog1->ShowDialog(); this->ForeColor = this->colorDialog1->Color; private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { this->Close(); } Компонент Компонент находится в списке Dialogs палитры компонентов, обеспечивает выбор шрифта и его атрибутов (стиля, размера, цвета и т. п) в диалоговом режиме. 408 Часть II. Приложения Windows После выбора нужного шрифта его название попадает в свойство компонента Компонент работает, как и предыдущий. Вид обработчика кнопки, заставляющей изменять шрифт, показан в листинге 11.27. Листинг 11.27 private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { this->Close(); } private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { this->fontDialog1->ShowDialog(); this->Font = this->fontDialog1->Font; } Компонент Компонент находится в списке Printing палитры компонентов. C помощью этого компонента можно открыть диалоговое окно настройки печати (рис. 11.92), где надо выбрать принтера также страницы, которые следует печатать, и установить некоторые свойства печати. Рис 11.92. Настройка печати с помощью компонента PrintDialog Глава 11. Компоненты, создающие интерфейс между пользователем и приложением 409 Обработчик кнопки, показанной на рис. 11.92, имеет вид private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { this->printDialog1->ShowDialog(); Компонент Компонент находится в списке All Windows Forms палитры компонентов. Он позволяет создавать линейки инструментов с различными элементами пользовательского интерфейса. Например, вам требуется работать с такими элементами, как кнопка, метка, TextBox , ProgressBar и др. Все это можно собрать на одной линейке ToolStrip и иметь все перед глазами, как будто это элементы некоторого меню. Вид компонента в форме показан на рис. 11.93. Если внимательно посмотреть, то работа с этим компонентом похожа на работу с компонентом MenuStrip , рассмотренным вначале этой главы. Используя этот компонент, можно создавать пользовательские линейки инструментов, применяя передовые интерфейсные и компоновочные возможности, такие как причаливание, кнопки с текстом и изображением, выпадающие кнопки и другие элементы, реоргани- зуемые в процессе исполнения приложения перетаскивать элементы с одной линейки инструментов на другую или внутри одной и той же линейки создавать выпадающие элементы подключать к линейке другие компоненты и передавать им функциональные возможности данной линейки расширять функциональность и модифицировать появление и поведение линейки создавать линейку, схожую с линейкой инструментов широко известного продукта. Рис 11.93. Вид ToolStrip в форме 410 Часть II. Приложения Windows Некоторые свойства Отметим следующие свойства Items и Dock Items задает набор элементов, из которых можно формировать линейку инструментов. Набором можно пользоваться с помощью диалогового окна, открывающегося кнопкой с многоточием (в поле свойства Items ) (рис. 11.94). Из рисунка видно, что в левой части диалогового окна располагаются меню выбора элементов для помещения их в линейку инструментов, окно для помещения в него выбранных изменю элементов, кнопки работы с выбранными элементами, позволяющие переупорядочивать элементы или удалять их из списка выбранных. Порядок, в котором элементы расположены в окне после их выбора, сохранится Рис 11.94. Задание элементов линейки инструментов Глава 11. Компоненты, создающие интерфейс между пользователем и приложением 411 в сформированной затем линейке инструментов при расположении их слева направо первый элемент из списка в окне поместится в линейку самым левым, второй — правее первого и т. д. В правой части диалогового окна расположено окно свойств выбранного элемента. Для настройки свойств на элементе левого окна надо щелкнуть мышью (отметить его, тогда в правом окне появится набор свойств отмеченного элемента. Мы не станем рассматривать этот набор свойств, т. кони уже описаны ранее — это метки, ссылочные метки, кнопки и т. д. Следует отметить, что линейка инструментов из выбранных элементов формируется наподобие соответствующей линейки для продукта Microsoft Word. Например, если выбранные элементы не помещаются на линейке из-за ограниченных размеров формы, то такие элементы сворачиваются в специальный список, на который начинает указывать автоматически созданная кнопка. Но это произойдет только тогда, когда свойство компонента CanOwerflow (в переводе на русский язык "может переполняться) установлено в true (те. линейка может содержать большее количество элементов, чем занимаемое ею пространство в форме. Dock задает, к какой стороне родительского контейнера причалит линейка инструментов. Это свойство рассматривалось в компоненте Button . Ив данном свойстве требуется раскрыть выпадающий список. При этом откроется схема, состоящая из прямоугольников, имитирующих стороны формы и ее центр. Выбор того или иного прямоугольника определяет сторону причаливания линейки инструментов (без причаливания, слева, справа, снизу, сверху, в центре. Если значение свойства установлено в None (без причаливания, тона этапе проектирования линейку можно свободно перемещать в рамках формы при условии, что свойство Locked установлено в false (при значении true блокируется перемещение компонента, а вверх- нем левом углу линейки появляется пиктограмма замка. Использование Содержимое линейки инструментов определяет разработчик приложения. Пользование элементами линейки зависит от типа самого элемента. Если, например, элемент обычная кнопка ( Button ), то для ее использования надо создать обработчик события Click . Для этого необходимо открыть контекстное меню кнопки (щелкнуть на ней правой кнопкой мыши) и выполнить команду Properties (свойства. Вот- крывшемся окне нужно щелкнуть на вкладке Events (события, а затем в открывшемся перечне событий дважды щелкнуть на событии Click . При этом создастся обработчик события, в который и следует записать команды реакции приложения на нажатие кнопки (это обычный знакомый путь обработки кнопки. Если элементом линейки является кнопка выпадающего меню ( DropDownButton ), то с ней надо поступать как с компонентом, задающим меню. Можно создать опции прямо на линейке с использованием окна Properties, а можно открыть свойство линейки Items , отметить мышью обрабатываемую кнопку в левой части диалогового окна, а в правой использовать свойства кнопки для формирования элементов ее меню (свойство DropDownItems ). Точно также следует поступать и с элементом линейки через диалоговое окно свойства линейки Items открыть список 412 Часть II. Приложения Windows свойств элемента ComboBox и среди них выбрать свойство Items . Если затем нажать на кнопку с многоточием в поле этого свойства, то откроется окно редактора элементов, в котором можно задать перечень элементов Если элементом линейки выступает метка-ссылка (для этого свойство метки IsLink должно быть равно true ), то надо обработать ее событие Click , записав в его обработчике следующие строки String ^str =this->toolStripTextBox1->Text; System::Diagnostics::Process::Start(str); Из приведенного текста видно, что в форму надо поместить еще компонент TextBox , в котором и будет задаваться интернет-адрес. После задания этого адреса следует щелкнуть на метке-ссылке (предварительно откомпилировав приложение. Результат показан на рис. 11.95. В тексте главы приводились листинги приложений — копии кода конкретного приложения, взятого из вкладки Form1.h_._По_таким_листингам_можно_восстановить_само_приложение,_т.е.его_вид_в_режиме_дизайна_(Form1.h_(Design)'>Form1.h . По таким листингам можно восстановить само приложение, т. е. его вид в режиме дизайна ( Form1.h (Design) ). Делается это следующим образом. Создается новое приложение с пустой формой, открывается его вкладка Form1.h , весь первоначальный код из нее удаляется и вместо него вставляется код из листинга. После этого открывается вкладка Form1.h (Design) ). Среда программирования сформирует форму и ее содержимое в соответствии сданными лис- тинга. Рис. 11.95. Работа элементов TextBox и Label на линейке ToolStrip ГЛАВА Работа с наборами данных. Общие сведения о базах данных Что такое база данных Это специальным образом организованное пространство памяти для хранения определенных групп данных, снабженное специальным программным обеспечением для поддержания их (этих данных) в активном состоянии, а также для создания возможности пользователю отсылать свою информацию в это пространство и получать из него любую другую информацию. Подгруппами данных мы понимаем следующие элементы так называемые прямоугольные реляционные (те. связанные между собой некоторыми отношениями) таблицы данных элементы, называемые вьюерами (от англ. View — осмотр, обозрение, с помощью которых можно просматривать таблицы баз данных элементы, называемые хранимыми процедурами. Это специальные программы, расположенные на серверах, целью которых является обработка информации большого объема и пересылка небольшого по объему результата компьютеру- клиенту, запросившему у сервера такую информацию. Цель создания таких элементов — снизить до минимума временные затраты на перекачку информации от сервера клиенту (все, что можно сделать на сервере, а не у клиента, должно делаться на сервере элементы, называемые триггерами (от англ. Trigger — запускать, инициировать. Триггер — это отдельная подпрограмма, связанная с таблицей или вьюе- ром, которая автоматически запускается, чтобы выполнить некоторое действие, когда модифицируется таблица или вьюер на уровне строки (а именно когда строка вставляется, удаляется или модифицируется. Триггер никогда не вызывается напрямую, а только при модификации таблиц или вьюеров. В чем польза от применения триггеров Сих помощью автоматически осуществляется принудительная обработка ограничений, что позволяет пользователю быть уверенным в правильности ввода достоверных данных, происходит автоматическая регистрация изменений в таблицах. Приложение может регистрировать с помощью триггера изменения в таблице, а также автоматически регистрировать изменения в базе данных с помощью обработчиков событий в триггерах. 414 Часть II. Приложения Windows Прямоугольные таблицы данных состоят из строки столбцов данных. Столбцы (их еще называют полями) являются определяющими в таких таблицах — они задают основные характеристики объекта, сведения о котором хранятся в таблице. Например, мы хотим хранить в таблице данные по кадрам предприятия в частности, "Личную карточку работника. Реквизиты этого документа (объекта) и определяют поля (столбцы) будущей таблицы. Это такие данные, как фамилия, имя, отчество, год рождения, должность, категория работника, оклад, дата поступления на работу и т. д. Строки таблицы (их еще называют записями) отражают данные по конкретному работнику. Базы данных бывают локальные (когда они расположены на вашем же компьютере) и удаленные (когда они расположены на других компьютерах, соединенных одной сетью с вашим. Компьютеры, на которых располагаются такие базы данных, называются серверами, а ваш компьютер по отношению к таким базам выступает в роли их клиента. Типы баз данных бывают самые разные, потому что они (базы данных) поддерживают разные структуры таблиц, которые, собственно, и содержат данные. Кроме того, каждая база имеет свой собственный механизм ведения базы данных (те. поддержки ее в активном состоянии. Примерами локальных баз данных являются базы данных типа MS Access, а примерами удаленных — InterBase, Informix, SyBase, Oracle и др. Для создания баз данных и организации их взаимодействия с приложениями пользователя (клиентскими приложениями) существуют различные механизмы. Одним из таких механизмов является MS SQL Server, который поддерживает (те. обеспечивает своими средствами их создание и активное состояние) все вышеперечисленные элементы баз данных. Прежде чем пользоваться базами данных, надо понять, как они создаются и как работают. Проектирование баз данных С помощью базы данных описывают не только структуру информации реальных предприятий и организаций, но и обеспечивают ее обработку, символически представляя реальные объекты своими специальными структурами таблицами, вьюе- рами, хранимыми процедурами и другими элементами. Поскольку информация в базе данных организована и хранится в виде определенных объектов, ток таким объектам может быть организован доступ с помощью приложений, создаваемых в различных программных средах и пользовательских интерфейсах, формируемых с помощью средств базы данных (БД). Одним из главных факторов в создании базы данных является ее правильное проектирование. Обычно перед помещением в базу данных информация представляется в виде прямоугольных таблиц, состоящих из строки столбцов (колонок. На Глава 12. Работа с наборами данных. Общие сведения о базах данных пример, процесс начисления и выдачи зарплаты работникам предприятия можно отобразить в виде такой прямоугольной таблицы, в которой в качестве столбцов будут характеристики работника, виды начислений и удержаний, даты оплаты и т. пав качестве строк — конкретные работники. Логическое проектирование БД — это интерактивный процесс, состоящий из расчленения больших структур информации на мелкие, элементарные данные. Этот процесс носит название нормализации (в философском смысле — анализ. Цель нормализации состоит в определении природных связей между данными в будущей базе данных. Это делается путем расщепления конкретной таблицы на более мелкие, простые таблицы (с меньшим количеством столбцов. После такого расщепления лучше видно, какие элементы или группы элементов можно объединить вот- дельные таблицы и каковы на самом деле связи между построенными таблицами этот обратный процесс в философии носит название синтеза. Модель базы данных При проектировании базы данных важно представлять различие между описанием базы данных и самой базой данных. Описание БД называют моделью данных. Она формируется на этапе проектирования БД. Модель — это шаблон для создания таблиц (он описывает логическую структуру БД, включая данные и их суть, типы данных, пользовательские операции, связи между объектами-данными, ограничения на целостность данных. Логические структуры, описывающие базу данных, не подвержены воздействиям со стороны соответствующих физических структур, хранимых в БД. Этот факт обеспечивает межплатформенную переносимость данных. Реляционную базу данных (те. базу, в которой определены некоторые отношения (relations) между данными) нетрудно переносить на различные технические платформы, потому что механизм доступа к ней определен моделью БД и остается неизменным независимо от места ее хранения. Если пользоваться строительной терминологией, то логическая структура БД — это проект дома, а сама БД — дом, построенный поэтому проекту. Поэтому, имея проект "дома, сам "дом" можно построить и на платформе Windows, и на платформе UNIX, и т. д. При разработке БД ее нужно настраивать на различные информационные потребности пользователя. Это делается с помощью вьюеров (viewers) — программ просмотра данных, которые выводят подмножества данных по заказам конкретных пользователей или их групп. Вьюеры могут использоваться, чтобы спрятать необходимые данные или отфильтровать их. Структура проектирования базы данных При проектировании БД выполняются следующие конкретные действия определение требований к информации (объем, частота использования, безопасность и т. д) путем опроса будущих пользователей 416 Часть II. Приложения Windows анализ реальных объектов, которые требуется смоделировать в БД. Перевод управления объектами в управление элементами БД и формирование списка элементов БД (синтез БД); решение вопросов идентификации элементов в БД (те. как и по каким признакам находить ту или иную информацию разработка набора правил доступа к каждой таблице (те. того, как каждая таблица станет наполняться и модифицироваться установка отношений между объектами (таблицами и колонками планирование безопасности БД. Идентификация сущностей и атрибутов Основываясь на требованиях заказчика (пользователя, собранных вами, можно определить объекты, которые должны быть в базе данных (те. сущности и их атрибуты. Сущность — некий объект, который требуется описать в базе данных (это может быть автомобиль, работник, компания, должность, проект и многое другое. Каждая сущность имеет свойства, называемые атрибутами. Допустим, что проектируется база данных, которая будет содержать сведения о работниках компании, об иерархии подразделений, о текущих проектах, о клиентах покупателях) и продажах. В табл. 12.1 приведен пример, показывающий, как создать список сущностей и атрибутов для организации данных. Таблица Перечень объектов для создаваемой базы данных Сущность Атрибуты сущности Работники Табельный номер Фамилия Имя Код подразделения Код должности Телефон Зарплата Компания Код подразделения Наименование Имя руководителя Бюджет Месторасположение Телефон Глава 12. Работа с наборами данных. Общие сведения о базах данных Таблица 12.1 (окончание) Сущность Атрибуты сущности Проекты Код проекта Название проекта Описание проекта Руководитель (Изделие) Составляя таким способом списки сущностей и соответствующих атрибутов, удается удалить избыточные записи. Могут ли быть таблицами сущности из составленного списка Могут ли быть перемещены колонки из одной группы в другую Появляется ли один и тот же атрибут в некоторых сущностях? На такие вопросы надо дать ответ. Каждый атрибут может появляться лишь однажды, ивы должны определить, какая сущность является первичным собственником этого атрибута. Например, атрибут |