Content:
General
Security/hack
Programming
Art/Stuff
 
 
наша рассылка
Твой E-mail:
Submit
 
 
  Программируем без VCL
 
 
  Что такое VCL? Компоненты VCL – объекты упрощающие программирование, каждый объект содержит множество функций, которых в приложении используется от силы процентов 10, а компилятор послушно стыкует все библиотеки со всем их нужным и не очень содержимым.

Попробуем создать приложение без использования VCL. Для этого сначала необходимо удалить визуальную форму. View -> Project Manager, там удаляем Unit1. Теперь весь код будет писаться в исходном коде проекта. Project -> View Source. По идее =) вы должны увидеть такой код:

Program Project1;

Uses Forms;

{$R *.res}

Begin
Application.Initialize;
Application.Run;
End.

Теперь откомпилируем наш проект комбинацией Ctrl+F9, затем Project->Information for Project1 мы видим, что было откомпилировано всего 13 строк(Source compiled), а вот весит все это удовольствие уж никак ни на 13 строк, а все 309408 байтов(Code Size), т.е. все 300 Кбайт.

Некоторые программисты считают, что для повышения производительности необходимо отказаться от использования пакетов. Выбираем Project->Options затем закладку Packages и ставим галочку напротив Build with runtime packages. Теперь снова компилируем проект т смотрим информацию о нем…впечатляет, да? Теперь вместо 309408 мы видим 2168 байтов, НО посмотрите в окно информации в область Packages Used(Используемые пакеты), там перечислены файлы, которые необходимы для работоспособности приложения. В нашем примере это файлы rtl70.bpl и vcl70.bpl. Это своеобразные динамические библиотеки без которых программа работать не будет. Выходит, что мы вовсе не освободили программу от визуализации и она все еще используется.
Т.е. теперь общий размер файлов, который необходимо установить на машину пользователя = вашим файлам + необходимых bpl-файлов. Эти bpl-файлы лежат в Windows/System32, их размер составляет 2159616 байт, так что в итоге размер программы намного увеличился, следовательно, делая выводы мы убираем в свойствах проекта флажок с Build with runtime packages и попробуем придумать чего-нибудь еще.
В исходном коде проекта удалите раздел uses и все, что находится между begin и end, у Вас должен остаться вот такой код:


Program Project1;
{$R *.res}
Begin
End.

Попробуйте откомпилировать проект и посмотреть информацию, мы видим, что теперь размер составляет 9124 байт, вместо 300 Кил. Почему так? Да потому, что у нас между begin и end были вызовы методов объекта TApplication, для этого в раздел uses необходимо подключать модуль Forms. Forms входит в состав VCL, из-за этого к программе подключается код, который на самом то деле нами и не используется.
Проведем эксперимент. После строки program Project1; добавим строку uses buttons; откомпилируем и просмотрим информацию о проекте и увидим, что размер увеличился до 309024 байт, а теперь вместо buttons напишем windows и увидим, что теперь размер будет составлять 9252 байт. С чем это связано? А с тем, что модуль buttons относится к VCL, а модуль windows к RTL.

В папке .......Delphi7Source в разных подпапках по типам лежат исходные коды всех модулей, на данный момент нас интересуют папки vcl и rtl.

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

Удачного Вам кодинга



Автор: legolin
 
Интро | О проекте | Услуги | Статьи | Обратная связь
Freelance web designer