Программирование в Delphi. Трюки и эффекты. Александр Чиртик
Чтение книги онлайн.

Читать онлайн книгу Программирование в Delphi. Трюки и эффекты - Александр Чиртик страница 16

СКАЧАТЬ с использованием ее же сред разработки, очень просто – достаточно добавить нужные библиотеки в состав операционной системы.

      Что же в таком случае осталось сделать Borland? Дабы не лишать программиста возможности пользоваться библиотеками, реализующими самые полезные классы (VCL и не только), код с реализацией этих самых классов приходится компоновать в один файл с самой программой. Вот и получается, что реализация этих самых классов в EXE-файле может занимать места гораздо больше, чем реализация собственно приложения. Так в данном случае и получилось.

      Примечание

      Кстати, проект на Visual C++ также можно статически скомпоновать с библиотекой MFC (то есть включить код реализации классов в сам EXE-файл). Таким способом можно добиться независимости приложения от различных библиотек, кроме тех, которые гарантированно поставляются с Windows, но при этом размер EXE-файла рассмотренного выше приложения (в Release-конфигурации) возрастет до 192 Кбайт.

      Теперь обратимся к проекту на Delphi. Посмотрим, что записано в файлах Unit1.pas и Project1.dpr. Текст файла Unit1.pas приведен ниже (листинг 2.1).

Листинг 2.1. Содержимое файла Unitl.pas

      unit Unit1;

      interface

      uses

      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

      Dialogs;

      type

      TForm1 = class(TForm)

      private

      {Private declarations}

      public

      {Public declarations}

      end;

      var

      Form1: TForm1;

      implementation

      {$R *.dfm}

      end.

      Обратите внимание на секцию uses. Здесь перечислены девять подключаемых модулей, объявлен собственно класс формы TForm1, а также записана строка, указывающая компилятору на использование файла ресурсов. Все модули, кроме первых двух, – труды компании Borland, облегчающие жизнь простым программистам. Модуль такого же рода используется и в файле Project1.dpr (листинг 2.2).

Листинг 2.2. Содержимое файла Project1.dpr

      program Project1;

      uses

      Forms,

      Unit1 in 'Unit1.pas'{Form1};

      {$R *.res}

      begin

      Application.Initialize;

      Application.CreateForm(TForm1, Form1);

      Application.Run;

      end.

      Теперь обратите внимание на модули Windows и Messages. В первом определены константы, структуры данных, необходимые для работы с функциями Windows API, и, конечно же, объявлены импортируемые из системных библиотек API-функции. В модуле Messages можно найти определения констант и структур, предназначенных для работы с Windows-сообщениями (подробнее об этом смотрите в подразделе «Реакция на сообщения элементов управления» гл. 2 (стр. 66)).

      Собственно, этих двух модулей должно хватить для того, чтобы реализовать оконное приложение, использующее, правда, только стандартные функции Windows API и стандартные элементы управления. В листинге 2.3 приведен пример элементарного Windows-приложения. Главное, на что сейчас стоит обратить внимание, – это размер приложения: всего 15 Кбайт.

Листинг 2.3. Элементарное приложение

      program СКАЧАТЬ