Программирование в среде Windows. Шаблон Windows-программ, страница 4

Наша программа обрабатывает всего лишь одно сообщение - wn_Destroy. Это сообщение означает, что ядро Windows пытается закрыть окно в ответ на команду Close системного меню или нажатие клавиш Alt-F4. В ответ на это сообщение, вызовом процедуры PostQuitMessage, наша программа помещает в очередь сообщение wm_Quit. Когда функция GetMessage получает это сообщение, цикл обработки сообщений заканчивает работу и программа завершается.

Простейшая ObjectWindows-программа

Процесс создания даже простейшей Windows-программы является достаточно трудоемким. Для облегчения этого процесса в комплекте с компилятором TPW поставляется объектно-ориентированная библиотека ObjectWindows (OWL), которая берет на себя всю рутинную работу по начальному созданию Windows-программ. Обработка сообщений в этом случае выполняется с помощью механизма динамических виртуальных методов.

Библиотека объектов OWL содержит набор объектов, необходимых для создания приложений любой степени сложности, работающих под управлением Windows.

OWL включает объекты, соответствующие всем интерфейсным элементам Windows, таким как окна, диалоговые панели, элементы управления, а также объект, представляющий собственно приложение (TApplication).

Любое приложение, создаваемое при помощи OWL, основывается на объекте-потомке объекта TApplication.

Для создания простого приложения достаточно воспользоваться только тремя методами этого объекта:

1.  Конструктор Init (инициализация).

2.  Метод Run (выполнение).

3.  Деструктор Done (завершение).

Простейшая программа будет выглядеть следующим образом:

USES Wobject ; { OWL}

VAR

MyApp : TApplication ;

BEGIN

MyApp.Init  ('OWL_Demo') ;

MyApp.Run ;

MyApp.Done

END.

Конструктор Init

Конструктор Init выполняет весь набор действий, которые необходимы как для инициализации самого объекта с виртуальными методами, так и для инициализации конкретного экземпляра приложения, создания и отображения главного окна и подключения оконной функции.

Параметр конструктора задает имя приложения, которое хранится в поле Name объекта TApplication.

Метод Run

Метод Run содержит цикл обработки сообщений. Программная реализация не отличается от той, которая была рассмотрена выше.

Деструктор Done

Деструктор Done выполняет ряд действий по завершению работы программы и деинициализации объекта.

Помимо приведенных трех методов, объект TApplication имеет широкий набор методов для полного контроля над созданием конкретного приложения и обеспечением его работы. Практически всегда переопределяемым методом является метод InitMainWindow. В этом методе инициализируется оконный объект, соответствующий главному окну приложения. Оконный объект содержит оконную функцию обработки сообщений; поэтому, когда при помощи метода MakeWindow создается окно, оконная функция подключается автоматически и оконный объект способен обрабатывать сообщения посредством динамических виртуальных методов-обработчиков сообщений.

Операции по созданию, регистрации класса и созданию окна метод MakeWindow выполняет автоматически при помощи вызовов соответствующих методов.

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

Задания для самостоятельной работы:

1.  Открыть Паскаль C:\Programfiles\BP\BIN\Bpw.exe(иконка   ) .

2.  В новом файле (noname00.pas) набрать текст программы WinMin, проверить на наличие ошибок и  запустить на выполнение.

3.  Разобрать структуру программы.

4.  Изменить заголовок окна (вместо WinMin написать сою фамилию).

5.  Набрать простейшую программу использующую конструктор Init, метод Run, деструктор Done. Запустить на выполнение. Сравнить программу WinMin и данную программу.

Контрольные вопросы:

1.  Какие процедуры необходимо создать для программы работающей в Windows?

2.  Что такое Венгерская нотация?

3.  Что такое ссылка и какие основные ссылки используются в Windows?

4.  Что такое Сообщение?

5.  Из каких обязательных частей состоит каждая Windows-программа?

6.  Какие методы используют для создания простого приложения?

7.  С помощью каких функций создается и регистрируется класс окна?

8.  С помощью каких функций создается и отображается окно?