Azetot
Unregistered
| Для того чтобы создать маленькую программу в Delphi, нужно создать но- вый проект (по умолчанию Delphi при открытии сама создаст новый файл проекта, но вы всегда можете создать новое приложение, выбрав File\New\ Application), и зайти в менеджер проектов (меню View\Project Manager). Здесь нужно удалить все модули и формы (пункт Unit) чтобы остался только файл самого проекта (по умолчанию его имя Projectl.exe). Никаких модулей в проекте не должно быть.
Теперь нужно щелкнуть правой кнопкой мыши на имени проекта и выбрать из появившегося контекстного меню пункт View Source или в главном меню Project выбрать пункт View Source. В редакторе кода откроется файл проекта Projectl.dpr. Если вы уже удалили все модули, то его содержимое должно быть таким:
program Project1; uses Forms; ($R *.res} begin Application.Initialize; Application-Run; end.
Теперь можно скомпилировать абсолютно пустой проект. Для этого надо выбрать в меню Project пункт Compile Project или нажать сочетание клавиш +. После компиляции выберите в меню Project команду Information for Projectl. Появится окно с информацией о проекте. В правой части окна должны быть описаны используемые пакеты. Так как вы все удалили, значит, там должна красоваться надпись None. А вот с ле- вой стороны должна быть описана информация о скомпилированном коде. Самая последняя строка показывает размер файла, и у меня он равен 370 688 байт. Ничего себе "пустая программа"!!! Мы же ничего еще не напи- сали. Откуда же тогда такой большой код
Давайте разберемся, что осталось в нашем проекте, чтобы обрезать все то, что еще не обрезано. Сразу обратите внимание, что в разделе uses подклю- чен модуль Forms. Это объектный модуль, написанный "дядей Борландом", а значит, его использовать нельзя, потому что именно он увеличивает раз- мер нашей программы. Между командами begin и end используется объект Application. Этот объект тоже использовать не надо, так как он не заботит- ся о "фигуре" программы. Большой объем, который появляется даже у пустой программы, как раз и связан с объектом Application, который объявлен в модуле Forms. Хотя мы использовали только два метода i n i t i a l i z e и Run, при компиляции в ехе- файл попадает весь объект Triplication, а он состоит из сотен, а может и тысяч строчек кода. Чтобы избавиться от накладных расходов, нужно заменить модуль Forms на windows, который описывает только WinAPI. Этот модуль связан с объекта- ми Delphi, и его подключение является обязательным, иначе вы не сможете вызвать ни одной функции из набора WinAPI. А между begin и end вообще все можно удалить. В итоге самый минимальный (с учетом использования модуля windows) код программы будет выглядеть так:
program Projectl; uses Windows; begin end.
Снова откомпилируйте проект. Откройте окно информации и посмотрите на размер получившегося файла. У меня получилось 8 192 байта
Заготовка минимальной программы с использованием WinAPI готова. Те- перь вы можете смело добавлять свой код. Мне нужно только объяснить вам, какие модули можно подключать к своему проекту в раздел uses. Тут все очень просто и не займет много времени. Если при установке Delphi вы не отключали копирование исходников биб- лиотек, то перейдите в директорию, куда вы установили Delphi. Здесь перейдите в папку Source, затем в Rtl и, наконец, Win. Если вы отключили копирование исходников, то вставьте компакт-диск с Delphi и ищите эти директории там. В них расположены исходники модулей, в которых описа- ны все API-функции Windows. Именно эти модули вы должны подключать к своим проектам, если хотите получить маленький код. Если вы подключи- те что-то другое, то я уже не гарантирую минимум размера вашей програм- мы (хотя есть и исключения). Сразу же рассмотрим пример. Если вы хотите, чтобы в вашей программе были возможности работы с сетью, то вам нужно подключить к проекту библиотеку сокетов. Среди модулей WinAPI есть файл с именем winsock.pas. Значит, вы должны в разделе uses написать winsock (расширение писать не надо), и ваша программа сможет работать с сетью. Пока что я описал минимальный проект, в который можно добавлять свой код. Но код, который вы вставите, выполнится один раз, и программа вы- грузится из памяти.
Для этого нужно использовать следующий шаблон для своих программ:
program Projectl; uses var Msg Begin Windows; : TMsg; //Сюда можно добавлять свой код //Дальше идет код, который заставит программу висеть в //памяти вечно и не будет сильно загружать систему while GetMessagef Msg, HInstance, 0, 0) do begin TranslateMessage(msg); DispatchMessage(msg); end;
Самое интересное, что такое минимальное приложение будет не видно в системе. Мы не создавали никаких окон, значит, на экране ничего ото- бражаться не будет. Программа не будет иметь фокуса ввода, поэтому в па- нели задач тоже незачем что-то отображать.
надеюсь помог??.. |