Как уменьшить размер Delphi приложения?

kazak878

При использовании Form все приложения имеют размер ~500Кб.
Как уменьшить эту величину, так чтоб приложение оставалось независимым от наличия библиотек Delphi на компе?

al70

KOL
[K...] Object Library
уёбищная штука, набор компонент, которые весят меньше
в яндексе поищи

kazak878

Нэ понял
Ты хочешь сказать, что стандартные компоненты отстой и им надо искать замену в Инете?

hov77

Cоздаешь новый проект.
Project->Remove From Project ... удаляешь Unit1
потом View->Units...
выбираешь Project
program Project1;
uses
Forms;
{$R *.res}
begin
Application.Initialize;
Application.Run;
end.
Удаляешь Uses Forms и все внутри begin end
сохраняешь, компилишь...
далее подключаешь Windows.pas и открываешь WinApi и по примерам ...
Только не очень понятно зачем столько мучений ? ... слава богу диски уже по 0.1 Террабайта
p.s. Еще можно архивировать ... exepakom и прочими , названия не помню. Забил я на это дело.

ppplva

Я так понял ты хочешь сказать "Delphi suxx"
Очень правильная постановка вопроса

kazak878

?
WinApi позволяет рисовать окошки?
А смысл: если написать программу, то написать ее по-человечески.

natali20

>WinApi позволяет рисовать окошки?

>А смысл: если написать программу, то написать ее по-человечески.
Консольное приложение сделай.

okunek

а дельфя юзает мфц динамически или в ехе пихает?

hov77

А зачем тебе рисовать ? СreateWindow винда сама нарисует...

freezer

дельфя вооще юзает MFC? неужели?

kazak878

Да блин, я учу Дельфи потихоньку. И в такие дебри еще не залазил - он сам мне все модули подрисовывает...
Консоль не катит

hov77

Не я не против дельфи ... сам на ней сижу, просто не очень понимаю откуда гемор с размером екзешника взялся ?

okunek

а что, по-твоему борландовские программисты с помощью winapi все сделали?

kazak878

uses Form то есть не надо?

sergei1969

а exe-pack и т.п. поюзать?

ppplva

А что, существует паскальный интерфейс к MFC ? Такое вообще возможно ?

kazak878

Даже если пустой скомпилить, то он на 500Кб получается.

natali20

>а что, по-твоему борландовские программисты с помощью winapi все сделали?
взботни для начала документацию к / исходники VCL

okunek

не дельфи впадлу ботать. все равно vs рулит.

hov77

Ну у меня D7 ... если компилить пустой то получается 370 кб.
И ради прикола попробуй напиши на FormCreate ShowMessage('Hellow') и посмотри на сколько он у тебя увеличиться...думаю удивишся когда увидишь что разница = 0. Просто далее у тебя размер не будет сильно увеличиваться...

okunek

А что, существует паскальный интерфейс к MFC ? Такое вообще возможно ?

а что собственно такого странного?

hov77

А что мешает ботать и то и другое ... vs тоже полезно ботать...просто все зависит от задач и работодателя
p.s.
Просто большинство задач на Delphi решаются легко и непринужденно . Не тяжелее чем на VS. Единственный вариант когда дельфи был не очень удобен - работа с комплексными числами...но в этом случае и использовался vs, точнее c++.
А если посмотреть большинство приложений которые юзают люди - CD-R, Твикеры всякие, Почтовые программы , Броузеры и т.п....то для их написания уже по барабану, кто к чему привык как говоритсья .

natali20

Смотря для чего. ИМХО, интерфейсы (гуйню, в смысле) гораздо удобнее делать в Builder / Delphi. По крайней мере, по сравнению с VS6. Что там в .NET добавили, не ведаю.

okunek

не, vs мне ща ботать уже ни к чему, итак неплохо знаю. а дельфи я юзаю чтобы побыстрому че-нить накатать.

kazak878

Самая маза в том, что если его начать изменять, то размер может упасть,а потом опять начинает расти.
370Кб для проги, которая рисует одно окно слишком много.
В качестве примера: текстовый редактор Bred2 - 74Кб - умеет делать очень много (для текст. редактора разумеется) - написан на Delphi.

natali20

>370Кб для проги, которая рисует одно окно слишком много.
Сходи на www.wasm.ru

alex-kras

Млин.
Delphi позволяет юзать как Winapi так и VCL.
С помошью winapi получишь меньшую по размеру прогу.

okunek

Что там в .NET добавили, не ведаю.

кстати, читал книжку "введение в дотнет", там они че-то хитрое придумали, якобы для уменьшения размера исходного кода (это как раз для интерфейсов).

alex-kras

Хех.
Такое приложение требует наличия Framework.

kazak878

Аааа, а я то думал

hov77

Просто если ты весь этот функционал напишешь, то поверь размер экзешника у тебя не увеличиться на 100 кб даже. т.к. написание кода как правило на размер слабо влияет. В основном размер резко увеличивается когда начинают подключаться доп. модули.
По умолчанию самый громоздкий - Forms.pas...просто на экране ты видишь одно окно, но сама реализация TForm довольно объемная..т.е. куча надстроек над WinApi чтобы было удобнее работать и меньше времени тратить на разработку...если эти 300 кб. такая проблема , то юзай WinApi..пиши как говориться на голом Api используя только то что необходимо.

freezer

ну а прога на дельфе требует наличия винды, какая-нибудь игруха - ДиректХ и т.д.

natali20

И главное - все поголовно (сговорились, сцуки!) хотят наличия компьютера

alex-kras

Сравни число людей с фреймворком и число людей с директХ.

hov77

Только тут фигня в том что Framework не установлен по умолчанию а DX есть начиная с Win NT4.0 и 98 винды...а вин апи частично работает даже начиная с Win3.11 \
Поставлять совместно с прогой Framework - доп. гемор...если это конечно не дисковый проект.
Но думаю что в следующей винде ( Longhorn ) фреймворк будет по умолчанию уже.

alex-kras

>хотят
а может все-таки требуют?

freezer

ну если сравнивать последние версии .NET и DX - то примерно поровну
кстати, раньше DCOM тоже как отдельная прибамбасина ставился, а сейчас у всех есть. С дотНЕТом так же будет

kazak878

Спс, что объяснил

okunek

ждем следующей версии винды...

freezer

совместимость с 16-битными системами частичная есть, но она не бинарная, а через код.
и неужели DX 8.0 или 9.0 поставлялются вместе с Win98?

freezer

дык с 2003-server вроде бы вместе идет, разве нет? и вообще, .NET Framework 1.1 уже давно - рекомендуемый апдейт

hov77

в 98 DX4.0 для плоских игрушек вполне подойдет ... т.к. в DirectDraw практически ничего не изменилось .
Значительные изменения в D3d , DPlay.
Как правило DX8.0 и DX9.0 поставляются совместно с играми которые это юзают.
И в WinXp DX8.0 по умолчанию, а Frameworkа вообще нет по умолчаню ни в одной винде. Поэтому его небходимо в любом случае поставлять.

al70

просто какие-то пионеры их переписали и они стали поменьше

ppplva

А как ты это себе представляешь ? То же объектная библиотека на С++, а тут - Object Pascal. Одно дело - функцию сишную вызвать, другое - объект создать. Там все по-разному организовано. В паскале вроде даже множественного наследования нет, так ?

okunek

аа, стопудей.

Crash770909

отключи в дельфи дебаг и прочие фичи - после этого может будет меньше
а вообще, стандартное решение - переписать на С++
Оставить комментарий
Имя или ник:
Комментарий: