2.2 Системные требования
Данное программное средство тестировалось на ОП Windows XP SP3, при следующем оснащении PC:
процессор - CPU Intel Celeron 1700 MHz;
Материнская плата – MB Giga-Byte 8PE800-RS2;
Видеокарта – SVGA GeForce MX5200-8x 128MB и SVGA GeForce 2 Ti -8x 64MB;
ОЗУ – DDR RAM 256MB PC-3200 Hynix/DDR400 + Samsung/DDR400 ;
Винчестер – Samsung 160Gb
Для нормального функционирования можно использовать PC со следующем оснащением:
процессор с частотой 200Mhz и выше;
минимальный объем оперативной памяти 32 Mb;
свободное место на диске 10 Mb;
операционная система Windows 9.x/2000/XP;
клавиатура, мышь.
2.3 Операционная система
Для разработки данного проекта требуется операционная система семейства Windows, в частности Windows XP. Данная ОС содержит качественный интерфейс, предоставляет удобные средства разработки приложений. Windows XP является на сегодняшний день одной из самых распространенных систем среди пользователей программного обеспечения, поэтому ее использование увеличивает вероятность высокого спроса на данное программное приложение.
3 Проектирование задачи
3.1 Описание классов
Так как при разработке программы используется интегрированная среда разработки Borland C++ Builder 6.0, то необходимо привести описание классов, использующихся при работе с компонентами библиотеки VCL — библиотекой визуальных компонент.
Класс TObject является базовым классом для всех прочих порождаемых классов. TObject инкапсулирует общее для всех объектов системы C++Builder функциональное поведение, а именно:
- способность конструктора создавать, а деструктора разрушать объект —экземпляр класса в динамической памяти. Конструктор TObject возвращает указатель на создаваемый объект.
- информацию RTTI об имени, типе производного объекта и его свойствах, которые объявлены как _published.
- поддержку обработки сообщений.
Большинство этих методов предназначены для внутреннего использования средой C++Builder. Поэтому все компоненты должны порождаться непосредственно от класса TComponent или от его потомков. TComponent, будучи в свою очередь потомком TObject, наследует его члены, методы и свойства.
TObject используется для объявления простых объектов, которые не являются компонентами и не нуждаются в поточности и присваивании.
Класс TPersistent непосредственно произведен от TObject. Этот абстрактный класс не определяет никаких специальных свойств или событий, однако его производные приобретают особые способности присваивания и поточности.
TPersistent определяет ряд поточных методов, используемых разработчиками компонент, которые могут быть перегружены производными компонентами:
- Assign позволяет присваивать значения свойствам.
- AssignTo позволяет присваивать содержимое одного объекта другому (например, как делает это производный от TPersistent класс TClipboard).
- DefineProperties позволяет определить процедуру загрузки и сохранения в потоке особых дополнительных свойств. По умолчанию сохраняются только свойства, объявленные как _published.
Класс TComponent непосредственно произведен от TPersistent. Как уже было сказано, все компоненты являются производными от TComponent и могут находится в его владении. TComponent инкапсулирует общее для всех компонент функциональное поведение, обусловленное свойствами и методами, которые обеспечивают:
- перенос на форму из Палитры компонент и манипуляции в окне Редактора форм.
- способность владения и обслуживания других компонент.
-специальные характеристики поточности, с которыми может манипулировать Инспектор объектов на этапе проектирования.
- возможность манипулирования некоторыми невидимыми компонентами на стадии проектирования.
Класс TComponent определяет ряд особых свойств:
- Owner — ссылается на владельца компоненты.
- ComponentCount — число компонент в перечне, которыми владеет данная компонента.
- Componentlndex — индекс компоненты в перечне, начиная с 0.
- Components — Свойство, содержащее перечень компонент, которыми владеет данная компонента.
- ComponentState — текущее состояние компоненты.
- ComponentStyle — стиль, определяющий поведение компоненты.
- Name — имя компоненты.
- Tag — свойство типа int, которое не имеет предопределенного значения и может содержать любые данные или указатели, по усмотрению программиста.
Класс TComponent определяет ряд методов, которые придают объекту право владения другими компонентами и возможность доступа к ним посредством Инспектора объектов:
- Destroying и DestroyComponents устанавливают атрибуты данной компоненты и компонент, которыми она владеет, в состояние, указывающее на то, что они подлежат уничтожению.
- HasParent возвращает булево значение, указывающее на наличие родителя компоненты. Обращаться к этому методу следует до ссылок к родителю данной компоненты.
- InsertComponent добавляет компоненту, передаваемую в качестве параметра, к перечню компонент, которыми владеет данная компонента, а RemoveComponent удаляет компоненту из этого перечня.
- FindComponent возвращает указатель экземпляра компоненты, о которой известно только имя, но неизвестна ссылка на владельца
Класс TControl определяет общие для видимых компонент члены данных, методы и события.
Поскольку элементы TControl обладают способностью отображать себя, некоторые его свойства оперируют с положением, размером и видом объекта (Top, Left, Width, Height и Cursor, Hint), а другие свойства относятся к параметрам области клиента (ClientRect, ClientWidth и ClientHeight).
TControl также вводит свойства, устанавливающие видимость, доступность, цвет и шрифт элементов управления (Visible, Enabled, Color и Font). Свойства Text и Caption обеспечивают установку редактируемых текстов и названий.
Наличие свойства Parent (Родитель), содержащего соответствующую ссылку, обусловлено возможностью класса TControl иметь родителя. Этот родитель может быть производным от TWinControl, поскольку родители обязаны быть оконными элементами управления.
TControl содержит ряд событий, возникающих при манипуляциях мышью над, видимыми элементами управления (OnClick, OnDblClick, OnMouseDown, OnMouseMove, OnMouseUp, OnDragOver, OnDragDrop и OnEndDrag).
Большинство компонент являются производными от TWinControl или TGraphicControl. Эти базовые классы рассматриваются ниже.
Класс TWinControl инкапсулирует оконные элементы управления с дескрипторами. Некоторые производные от TWinControl (компоненты TEdit, TListBox и TComboBox) инкапсулируют стандартные элементы управления Windows — поля редактирования, простые и комбинированные списки и т.д. Поэтому программисту не придется манипулировать с ними посредством стандартных функций Windows API, а пользоваться свойствами и методами, предоставляемыми самими компонентами.
Производные компоненты от TWinControl обладают тремя основными характеристиками: они имеют оконные дескрипторы, способны принимать фокус ввода и могут являться родителями других элементов управления. Поэтому многие свойства TWinControl предназначены для изменения фокуса, обслуживания событий клавиатуры и отображения потомков компоненты:
- Brush. Управляет цветом и орнаментом канвы, используемой при заливке графических фигур и фона.
- Controls. Содержит список элементов управления, для которых TWinControl является родителем.
- ControlCount. Содержит число элементов управления, для которых TWinControl является родителем.
- Ctl3d. Определяет, требуется ли трехмерное отображение компоненты.
- Handle. Ссылается на оконный дескриптор объекта Windows, который инкапсулирует TWinControl. Это свойство передается тем стандартным функциям Windows API, которые принимают дескриптор как параметр.
- HelpContext. Задает номер контекстной справки, соответствующий некоторому окну в файле помощи с расширением .hlp. Это свойство позволяет организовать контекстно-чувствительный поиск в справочной службе для отдельных компонент.
- Showing. Указывает, видима или невидима компонента.
- TabStop. Указывает, можно ли использовать клавишу табуляции для выбора нужной компоненты.
- TabOrder. Определяет позиции табулятора выбора компонент.
Методы TWinControl главным образом ориентированы на разработчиков компонент и предназначены для управления фокусом, получения статусной информации, диспетчеризации сообщений и позиционирования:
- Broadcast используется для рассылки сообщений всем потомкам TWinControl.
- CanFocus возвращает булево значение, которое определяет, может ли TWinControl принять фокус ввода. Например, компонента не сможет принять фокус, если ее свойство Visible имеет значение false.
- ContainsControl определяет, содержится ли данный элемент управления внутри класса TWinControl. Этот метод не сообщает о том, является ли данный элемент потомком по отношению к TWinControl. Например, внешний класс TWinControl может быть родителем другого элемента, и эта родительская преемственность может продолжаться далее. Однако, все внутренние элементы содержатся во внешнем классе TWinControl.
- ContrblAtPos возвращает ссылку на потомка, если элемент управления заключен в заданных координатах области клиента родителя. Таким образом можно найти относительное положение потомка по отношению к родителю.
- DisableAlign и EnableAlign используются для временного запрещения или разрешения выравнивания компонент внутри TWinControl.
- Focused возвращает значение true, если TWinControl находится в фокусе ввода, т.е. является активным элементом формы, на которой он размещен.
- HandleAllocated возвращает значение true, если элемент управления имеет оконный дескриптор. HandleNeeded создает новый дескриптор, если он еще не был создан. Аналогичное действие выполняется автоматически при прямом обращении к свойству Handle.
- InsertControl добавляет элемент управления к свойству Controls (типа массив), делая TWinControl своим родителем. Лучший способ добавить потомка во время работы программы - просто присвоить ссылку на родителя свойству Parent. RemoveControl удаляет элемент управления из Controls.
- Invalidate и Repaint выполняют перерисовку компоненты.
- SetBounds устанавливает свойства границ компоненты (Left, Top, Width, Height) для TWinControl. Прямое изменение каждого из указанных свойств менее эффективно, поскольку всякий раз сопряжено с перерисовкой
- SetFocus активизирует TWinControl.
TWinControl имеет события, вызываемые взаимодействием с клавиатурой и изменением фокуса (OnKeyDown, OnKey Press, OnKeyUp, OnEnter и OnExif).
Разрабатываемые компоненты редко происходят непосредственно от TWinControl. Лучше производить новые компоненты от общего класса TCustomControl, который предоставляет канву для рисования и обрабатывает сообщение WM_PAINT, или от некоторых более специализированных классов (TButtonControl, TCustomComboBox, TCustomEdit или TCustomListBox).
Производные от абстрактного класса TGraphicControl, в отличие от TWinControl, не имеют оконного дескриптора, не могут принять фокус ввода и не могут являться родителями других элементов управления.
Производные TGraphicControl используются в тех ситуациях, когда необходимо отобразить на форме текст или графику, не обращаясь к функциональным возможностям обычных оконных элементов управления. Имеются следующие достоинства такого подхода. Во-первых, TGraphicControl не пользуется системными ресурсами Windows, так как не требует оконного дескриптора. Во-вторых, метод рисования TGraphicControl исполняются немного быстрее за счет того, что перерисовка компоненты не связана с диспетчеризацией сообщений Windows, а реализуется процессом рисования, заложенным в родителе данного элемента.
Производные TGraphicControl имеют обработчики событий, вызываемые манипуляциями с мышью.
TGraphicControl возлагает на пользователя операции перерисовки. Этот класс содержит свойство Canvas (Канва), которое обеспечивает доступ к отведенной для рисования поверхности, и виртуальный метод Paint, который вызывается в ответ на сообщение WM_PAINT, принимаемое родительским элементом управления.
Кроме того, при работе с формами, содержанием, браузерами, панелями, кнопками, рамками и надписями используются соответственно классы TForm, TTreeView, TCppWebBrowser, TPanel, TBitBtn, TBevel и TLabel.
... для обучения физике и математике, в силу их отсутствия на рынке. Исходя из вышеизложенных соображений, я считаю, что тема моей дипломной работы «Разработка электронного учебника по математике для студентов I курса отделения информатика-иностранный язык» является актуальной в силу того, что потребность в таком электронном учебнике несомненно есть, а самих учебников по данной теме либо совсем нет, ...
... Моделирование одежды», которые должны быть сформулированы у студентов в процессе изучения дисциплины. [26.6с.] 2.2 Подбор дидактического материала для разработки фрагмента электронного учебника по теме «Моделирование лифа» дисциплине «Моделирование лифа» В энциклопедии профессионального обучения дается следующее понятие дидактического материала: Дидактический материал – средство обучения, ...
... требование к качеству УМКД. Вышеуказанные аспекты определили актуальность исследования и явились причиной начала курсовой работы по теме «Проектирование и создание электронного учебника по дисциплине «Основы творческо-конструкторской деятельности». Мы считаем, что работа в данном направлении создаст предпосылки в решении выявленных проблем. Объектом исследования является образовательный ...
... ЭУ и начинается его подготовка к эксплуатации. Следует отметить, что подготовка к эксплуатации ЭУ может предполагать некоторые коррекции его содержательной и мультимедийной компонент. Принципы создания электронного учебника включают в себя: 1. Принцип квантования: разбиение материала на разделы, состоящие из модулей, минимальных по объему, но замкнутых по содержанию. 2. Принцип ...
0 комментариев