Ошибка: Failed to parse the Currency Converter XML document.
$56 888.91


Ошибка: Failed to parse the Currency Converter XML document.
$20 410.21


Ошибка: Failed to parse the Currency Converter XML document.
$13 785.70


Оптимизация проекта в Delphi

Здравствуйте, программисты-делфисты. Повидал я не мало многих программ написанных на делфи. Есть хорошие, есть не очень, но их размер меня всегда поражал. 0.6, 1, 5 и даже 10 мегабайт!!! А программки то — тьфу, явно не офис или что-то громоздкое. Вот и решил я написать статью, как правильно оптимизировать свой проект так, чтоб не было казусов: программа должна 2 числа +,-,/,* а занимает места больше чем 400 Кб

1. Надо учесть для чего пишется программа, если она что-то должна выполнить, и закрыться (ничего не отображая), то не надо писать так Form1.visible:=false. Надо полностью удалить форму (View\Project Manager\Ваш проект\Unit1 и нажать кнопку Удалить. Так же, в данном случае, можно использовать Win API. Процесс создания форм, кнопок достаточно сложен (по сравнению с обычным методом), но достаточно эффективен.

2. Непосредственно настроить компилятор (программа получится с максимальным быстродействием). Заходим в меню Project\Options, заходим на вкладку Compiler и убираем все галочки из Runtime errors и Debugging. Внимание! Это можно безбоязненно делать лишь в том случает, когда Ваша программа полностью отлажена, и обработку всех исключительных ситуаций Вы учли.

3. Настройки пакетов (самый важный пункт ). Заходим в меню Project\Options, заходим на вкладку Packages. Ставим флажок Build with runtime packages. И смотрим, что у нас в строке там написано (Вот мой список: vcl; rtl; indy; vclx; dbrtl; vcldb; bdertl; vclie; vclshlctrls; IntrawebDB_50_70; Intraweb_50_70; Rave50CLX; Rave50VCL; dclOfficeXP; IcsDel50;inet;xmlrtl; inetdbbde; inetdbxpress; dsnap; dsnapcon; soaprtl; VclSmp; webdsnap; websnap; ibxpress; vclactnband; visualclx; visualdbclx; dbexpress; dbxcds; inetdb; vcldbx; adortl; teeui; teedb; tee; dss).О боже, скажете Вы, если узнаете: ВСЁ что в этой строке по умолчанию компилируется в ваш проект! После пары манипуляций там остаётся: vcl и всё. Внимание! Если у Вас уже куча компонентов, т.е. у Вас уже есть написанная программа, не удаляйте всё сразу, если Вы удалите что-то нужное, то во-первых размер программы увеличится, а во-вторых программа может не работать на других ПК. Если Вы что-то нечаянно удалили, или хотите добавить, то нажмите кнопку Add… и добавите нужный пакет. P.S.: После этих преобразований, скомпилированный пустой проект занимает 16,5 Кб. Всё же не 300…
4. Если ваша программа редко использует какие либо функции или процедуры, то вынесите их в DLL файл, чтоб память не засоряли (хотя сейчас это и не так важно, памяти оперативной “куча” 1 — 2 гигабайта это уже не редкость, но всё же это подчеркнёт Ваш профессионализм).
5. Если Ваша программа использует графические данные, звуки, видео, и всё это в достаточном кол-ве, то не надо создавать файлы ресурсов, они всё равно скомпилированы в 1 exe-файл. Лучше создать специальную папку вместе с программой (ну как в играх многих например DATA) и держать их там, конечно есть минус — если переносить программу, то и файлы надо переносить за собой, но есть плюс — динамически использовать все эти данные, т.е. если вам надо в Image вывести картинку, то при загрузке программы не надо сразу загружать этот рисунок, а загрузить только тогда, когда, например, будет открыта форма с этим Image или пользователь что-то нажмёт.

Дополнение: в настоящее время появилась новая библиотека для делфи KOL + MCK с их помощью можно создавать приложения с размером 50-100кб (как в С++), без всякого усечения и убирания пакетов.

 

Интересное

Ошибки Windows!
Каждый хочет знать когда на экране его выскакивает ошибка с чем она связана!Код ошибки: 0 (0x0000)Операция выполнена успешно.Код ошибки: 1 (0x0001)Неверная функция.Код ошибки: 2 (0x0002)Системе не...
Подробнее...
DNS — доменная система имен
domain name system (dns), что переводится на русский язык как «доменная система имен», позволяет значительно облегчить пользователям процесс работы в Интернете тем, что им уже не нужно запоминать...
Подробнее...
Трюки и спецэффекты в...
В наше время при помощи PhotoShop реализовывается множество различных проектов и задач, но основными являются несомненно те, которые связаны с созданием собственных изображений и визуальной...
Подробнее...
Проблеммы с буквой 'я' на ftp
При загрузке на сервер из винды пропадает буква я и следующий за ней символПопытаться побороть можно такЗаходим в папку с исходниками proftpd... далее vi src/netio.c далее находим удаляем или...
Подробнее...
Не выбрасывайте вещи в...
Случалось ли у вас такое, что открывая платяной шкаф, вы с ужасом понимали, что новые вещи положить уже некуда? Знакомая ситуация, не правда ли?Находясь в подобной ситуации, я как-то раз решила...
Подробнее...
Java-приложение: заглянем...
Чтобы отладить приложение, можно поступить по-разному. Во-первых, можно воспользоваться штатным отладчиком из какого-либо программного пакета. Во-вторых, можно самостоятельно вычислить ошибку...
Подробнее...
Пишем браузер
Продолжаю тему клонирования программ darkamster«a на Delphi в С++Builder. В этой статье я покажу, как с помощью стандартных компонентов, можно создать свой браузер. Браузер будет на движке...
Подробнее...
Восстановление системы...
Для специалиста слова «Windows NT/2K/XP не грузится» не значат ровным счетом ничего. Может сломаться жесткий диск, пострадать файловая система, разрушиться таблица разделов, слететь...
Подробнее...
Как сгенерировать файл...
Рано или поздно любой веб-мастер сталкивается с необходимостью защиты своего сайта, более тонкой настройки доступа к различным его параметрам. Один из вариантов — использовать специальный...
Подробнее...
chmod - изменение режима...
Все чаще обнаруживается, что некоторые начинающие сайтостроители, увлеченные скриптованием (на perl/cgi, php и т.д.) не знают, что такое chmod и как его использовать. В этом кратком руководстве вы...
Подробнее...