Пятница, 21.09.2018, 04:42
Главная Регистрация RSS
Приветствую Вас, Гость
Меню сайта
Ссылки
Статистика
Реклама
01
 
Реклама
Поиск
Друзья сайта
Работа, база вакансий и резюме  Белый каталог сайтов - RabOnline.ru/dir Результаты антивирусного сканирования
Реклама
01

Страница: 1 2 3 4 5 6 7

Понятие формы и основы использования форм в Delphi.

Форма является визуальным контейнерным компонентом Delphi, предназначенным для самостоятельного использования в виде отдельного окна на экране. Форма является элементом проекта и для нее создается два файла:

  • Модуль формы, содержащий описание класса формы, в виде модуля (Unit) приложения.
  • Файл описания формы на языке XML, содержащий описание компонентов, добавленных на форму в процессе ее визуальной разработки.

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

Жизненный цикл формы.

Форма является экземпляром класса TForm, поэтому ее жизненный цикл во многом аналогичен жизненному циклу обычного объекта. Форма создается конструктором Create или методом CreateForm глобального объекта Application (более предпочтительный способ). Далее, форма может быть отображена на экране с помощью метода show(немодальное отображение) или ShowModal (модальный режим). Временное скрытие формы осуществляется методом Hide, либо установкой свойству Visible значения False. Для формы введено понятие «закрытия». Закрытие формы производится методом Close, во время которого форма может быть либо скрыта методом Hide, либо разрушена. Способ закрытия формы определяется обработчиком события OnClose, вызываемом перед выполнением Close. Разрушение формы производится методом Release, который помимо очистки памяти, занятой под структуры формы, ждет завершения очереди сообщений и обработчиков событий зависимых компонентов, что обеспечивает корректное закрытие формы без ошибок нарушения доступа к памяти.

Основы организации многооконных приложений в Delphi.

Для создания многооконного приложения в Delphi следует добавить одну или более дополнительных форм в проект и отобразить их во время выполнения программы. Все формы такого приложения будут иметь возможность независимо друг от друга перемещаться по экрану. Организация многооконного интерфейса в таком стиле носит название SDI — Single Document Interface — Интерфейс одного документа. При закрытии формы, которая указана в качестве главной в диалоге Project Options интегрированной среды разработчика, будут автоматически закрыты все формы приложения. Второй подход к организации многооконных приложений называется MDI — Multi Document Interface — Интерфейс нескольких документов. Окна такого приложения визуально принадлежат главному окну, имеющему стиль fsMDIForm, устанавливаемый свойством FormStyie. Остальные формы имеют стиль fsMDIChild. Дочерние окна не могут выходить за пределы главного окна, за исключением инструментальных окон, автоматически создаваемых при откреплении элементов управления от форм. Приложения, организованные в соответствии с концепцией SDI, могут содержать окна со стилем fsStayOnTop, которые всегда находятся выше остальных окон.

Понятие фрейма.

Фреймом называется специальный элемент проекта Delphi, представляющий собой контейнерный компонент-наследник TFrame, в который,аналогично формам, можно добавлять компоненты. Экземпляр фрейма может быть создан во время визуального проектирования приложения с помощью Палитры компонентов, либо во время выполнения программы. При использовании фреймов создаются не экземпляры класса TFrame, a экземпляры наследников этого класса, которые подготавливаются с помощью визуального построителя среды разработчика. Таким образом, технология использования фреймов в этом смысле аналогична использованию форм. Экземпляры фреймов поддерживают связь со своими классами по значениям свойств и методам-обработчикам сообщений. При изменении значения какого-либо свойства в описании фрейма, это изменение отразится на экземплярах фрейма, расположенных в формах или других контейнерах. Связь между экземпляром класса и его описанием по какому-либо свойству нарушается, если значение этого свойства изменено в экземпляре фрейма.

Депозитарий форм.

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

Основные методы, применяемые в Delphi для управления окружением программы.

Для управления окружением программа Delphi может использовать следующие глобальные объекты, создаваемые автоматически при запуске приложения:

1.      Application типа TApplication используется для управления данным экземпляром приложения и позволяет определить его основные характеристики, управлять состоянием приложения (сворачивать, разворачивать и закрывать), распределять вычислительную нагрузку на приложение (через обработку события Onidle), а также изменить стандартное поведение программы в отношении:

  • отображения быстрых подсказок пользователю (hints);
  • идентификации приложения в системе с точки зрения пользователя (через изменение значка приложения и его заголовка);
  • реакции на исключительные ситуации, которые не были обработаны ни одним методом программы;

2.      Screen типа TScreen используется для определения текущих характеристик рабочего стола Windows, например, разрешения экрана;

3.      Mouse типа TMouse используется для определения характеристик манипулятора мышь, используемого в системе, а также для выполнения некоторых специфических действий, таких как монополизация (захват) мыши окном.

Определение динамически компонуемой библиотеки и расскажите о возможных мотивах применения DLL.

Динамически компонуемая библиотека — Dynamic Link Library — представляет собой программный модуль, содержащий подпрограммы и или какие-либо данные, которые могут быть подключены во время выполнения программы и не линкуются к ней во время построения. При использовании динамических библиотек их наличие обязательно для нормального функционирования приложений, которые на них ссылаются. Динамические библиотеки помогают решать задачи разделения одних и тех же фрагментов кода между различными приложениями, снижая тем самым объем памяти, необходимый для хранения приложений и их загрузки. В качестве еще одного достоинства динамических библиотек можно назвать возможность скрытия реализации подпрограмм, включаемых в библиотеку, при передаче их сторонним разработчикам.

Использование DLL в программных продуктах.

Для вызова подпрограммы, расположенной в динамической библиотеке, следует загрузить необходимую библиотеку с помощью API-функции LoadLibrary и получить ссылку на подпрограмму с помощью функции GetProcAddress. Такой подход к получению доступа к библиотеке называется явным связыванием приложения и подпрограммы библиотеки. Неявное связывание подразумевает указание названия динамической библиотеки при описании метода, в результате чего, вся функциональность, необходимая для получения адреса метода будет добавлена в программу автоматически при компиляции. Это не отменяет требования к наличию динамической библиотеки в области видимости программного продукта, использующего неявное связывание. Применение неявного связывания целесообразно в случаях интенсивного использования динамической библиотеки в течение всего времени работы приложения, в остальных случаях рекомендуется применение явного связывания.

Многопоточные приложения.

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

Особенности модели СОМ.

СОМ — Component Object Model — Модель многокомпонентных объектов является объектно-ориентированной концепцией, описывающей правила построения классов, называемых СОМ-объектами, с целью обеспечения взаимодействия между ними вне зависимости от языка, на котором реализованы данные классы, и среды, в которой выполняются приложения содержащие их. Механизм работы СОМ построен на использовании объектных интерфейсов, и каждый СОМ объект поддерживает как минимум один интерфейс —IUnknown, задачей которого является контроль количества созданных экземпляров объекта и выдача информации о других интерфейсах, реализованных СОМ-объектом. СОМ-объекты могут применяться как в составе программного продукта (в этом случае они называются внутренними), так и за его пределами (внешние СОМ-объекты). Связывание методов, которые предоставляет СОМ-объект, с вызывающей программой может быть реализовано двумя путями — через таблицу виртуальных методов на этапе компиляции программного продукта (раннее связывание) и через вызов метода Invoke интерфейса IDispatch, если такой интерфейс поддерживается СОМ-объектом (позднее связывание).

Возможности Delphi в области вывода информации за пределы приложения.

Delphi поддерживает вывод информации на печать с помощью объекта класса TPrinter, использование которого сводится к отображению графических данных на его свойстве Canvas. Для вывода информации используется принтер, установленный в системе по умолчанию, однако настройки печатающего устройства могут быть изменены с помощью соответствующих диалоговых компонентов. Некоторые стандартные компоненты Delphi поддерживают также печать своего контекста, однако такие возможности могут быть использованы только в целях разработки и отладки программного продукта, в силу отсутствия каких-либо настроек для повышения качества получаемых документов. Второй подход к выводу информации за пределы программы подразумевает использование OLE-технологии — взаимодействии приложения с СОМ-объектами, реализующими интерфейс IDispatch, и зарегистрированными в операционной системе. Такие объекты называются OLE-серверами (серверами автоматизации) и используются для передачи в них информации. Примерами OLE-серверов являются Microsoft Word или Excel. Данные сервера автоматизации имеют иерархическую объектную структуру, в которой объект верхнего уровня владеет несколькими объектами более низкого уровня. Объекты реализованы таким образом, что отображают некоторый атрибут документа или приложения, и имеют методы для изменения состояния данного атрибута.

Страница: 1 2 3 4 5 6 7