Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

простейшая прога весит 300 кб... [D5, WinXP]


Страницы:   1 2 3

heruvim4ik ©   (2002-03-09 14:32:00) 

Ещё один вопрос:
Например, создаю я простейшую программу, которая... ну не знаю... два числа складывает... а она весит > 300 кб... может я чё не так делаю???


Косильщик_Лужаёв   (2002-03-18 00:25:00) [21]


> KvORubin ©


program buttons;
uses windows, messages;
var wc : TWndClassEx;
MainWnd : HWND;
btns : array[0..10] of HWND;
Mesg : TMsg;
function WindowProc(wnd:HWND; Msg : Integer; Wparam:Wparam; Lparam:Lparam):Lresult; stdcall;
Begin
case msg of
wm_destroy :
Begin
postquitmessage(0); exit;
Result:=0;
End;
else Result:=DefWindowProc(wnd,msg,wparam,lparam);
end;
End;
var xPos,yPos,nWidth,nHeight : Integer;
begin
wc.cbSize:=sizeof(wc);
wc.style:=cs_hredraw or cs_vredraw;
wc.lpfnWndProc:=@WindowProc;
wc.cbClsExtra:=0;
wc.cbWndExtra:=0;
wc.hInstance:=HInstance;
wc.hIcon:=LoadIcon(0,idi_application);
wc.hCursor:=LoadCursor(0,idc_arrow);
wc.hbrBackground:=COLOR_BTNFACE+1;
wc.lpszMenuName:=nil;
wc.lpszClassName:="Buttons : Main";
RegisterClassEx(wc);
xPos:=100;
yPos:=150;
nWidth:=400;
nHeight:=250;
MainWnd:=CreateWindowEx(0,"Buttons : Main",
"Buttons styles",
ws_overlappedwindow,
xPos,yPos,nWidth,nHeight,0,0,
Hinstance,nil);
Btns[0]:=CreateWindowEx(0,"button","bs_pushutton",bs_pushbutton or ws_child or ws_visible,10,10,150,25,MainWnd,0,hinstance,nil);
Btns[0]:=CreateWindowEx(0,"button","bs_defpushutton",bs_defpushbutton or ws_child or ws_visible,10,40,150,25,MainWnd,0,hinstance,nil);
Btns[2]:=CreateWindowEx(0,"button","bs_autocheckbox",bs_autocheckbox or ws_child or ws_visible,10,70,150,25,MainWnd,0,hinstance,nil);
Btns[3]:=CreateWindowEx(0,"button","bs_autoradiobutton",bs_autoradiobutton or ws_child or ws_visible,10,100,150,25,MainWnd,0,hinstance,nil);
Btns[4]:=CreateWindowEx(0,"button","bs_groupbox",bs_groupbox or ws_child or ws_visible,10,130,150,35,MainWnd,0,hinstance,nil);
Btns[5]:=CreateWindowEx(0,"button","bs_auto3state",bs_auto3state or ws_child or ws_visible,10,170,150,25,MainWnd,0,hinstance,nil);
ShowWindow(MainWnd,CmdShow);
While GetMessage(Mesg,0,0,0) do
begin
TranslateMessage(Mesg);
DispatchMessage(Mesg);
end;
end.


вот тебе пример , с инета скачивал , весит 9 кб , форма с кнопками . Только если проект большой - гимор будет соответствующий . Тут ведь ещё события к обьектам не написаны , так , просто кнопочки на форме ...


KvORubin   (2002-03-17 22:08:00) [22]

> Косильщик_Лужаёв ©
Вот блин, я тоже так думаю...

Напимер:
Пишу очень большой проект с очень большим и сложным интерфейсом.

есть ли какой-то способ: создать форму вручную, етс она будет весить очень мало и при этом лепить интерфейс так как на обычной 300 килобайтной форме ???


Косильщик_Лужаёв   (2002-03-17 21:57:00) [23]

Ну-у-у-у , я вырезал в общем подчистую всю эту "грязь" (Resource Hacker"ом или VC++) - картинки , иконки , курсоры и прочую дребедень , в результате 300 кб уменьшались килобайт так на 10 . Всего лишь . Так что это думаю не выход .


Anatoly Podgoretsky   (2002-03-17 20:08:00) [24]

Давай изьбавься, только потом не жалуйся если какой либо диалог не найдет нужному ему ресурса


KvORubin   (2002-03-17 19:58:00) [25]

> lipskiy ©

А чёрт их знает, я их увидел, когда каким-то взломщиком ехе взламывал и поразился, там кроме картинок ещё борахла навалом.

К примеру:
Для Button1 Вы можете выбрать уже готовую картинку назначения типо OK CANCEL и подобные (только непомню точно в каком случае)
Короче возможно, что вы ети картинки видели..
ОНИ ТАМ - ОНИ КОМПИЛИРУЮТСЯ ВМЕСТЕ !!!

Яб сам от них избавился с удовольствием !!!???


lipskiy   (2002-03-17 19:17:00) [26]

2 KvORubin
А чего там за картинки? Действительно любопытно!
Может их вырезать оттуда мона?


KvORubin   (2002-03-17 19:02:00) [27]

> Иван Шихалев ©
Нет нет и нет,, архиваторы это уже крайний случай, их нужно использовать для хранения и транспортировки файлов.

> vuk ©
В слове "Грязь" имеется ввиду не сам лишний код, а картинки,,
в ехе присутствуют куча ненужных картинок и если кто и видел их
или-же кто-то увидит, то ВАМ станет просто смешно - что там лежит.


Иван Шихалев   (2002-03-17 16:30:00) [28]

Вообще-то WinRAR при создании самораспаковывающихся архивов позволяет указать запускаемый сразу после распаковки экзешник и многое другое. И 7-Zip позволяет... Да и инсталляторы обычно сжимать умеют...


lipskiy   (2002-03-11 23:03:00) [29]

Черт, а как тогда можно сделать нормальную инсталляху, если рабочий ехешник весит в несжатом виде, скажем, мегабайт? Любой внешний инсталлер добавляет объема килобайт 500, ну 300, но не меньше. А весь код по инсталляции (скопировать десяток файлов и прописать пяток ключей в реестре) занимает, ну, 10 кб максимум! Есть простой способ - когда исполняемый ехешник запускает как инсталлер, если имеет другое имя, сам себя копирует, переименовывает и запускается потом как уже установленное приложение. Но в этом варианте неудобно то, что не хочется включать в этот ехешник все ресурсы дистрибутива, а если не включать - то класть рядом и паковать архиватором все вместе - это тоже отстой, так как приходится париться юзеру дважды - распаковать архив, потом запустить Setup. А еще, как верно заметил drpass, забулдыгинские юзеры не найдут WinZip или WinRar - и привет! А если самораспаковыающийся делать - тоже фигня, запускаешь уже вроде ехешник, вроде как инсталлятор, а потом оказывается что нужно еще чего-то запускать, причем оно само об этом не говорит - надо догадаться.


vuk   (2002-03-11 22:14:00) [30]

to KvORubin:
От "грязи" избавиться не выйдет, т.к. это не грязь. Однако тот код, что попадает в исполняемый модуль зачастую никогда не исполняется, но здесь сделать ничего нельзя - это издержки компонентной технологии (любой). Для борьбы с объемом можно попробовать использовать компиляцию с использованием пакетов. В этом случае в исполняемый модуль включается только тот код, который имеет отношение к конкретному приложению. Код компонентов в этом случае находится в пакетах и поэтому в обновлении не нуждается. Только здесь нужно осторожно - можно нарваться на проблемы с версиями пакетов.


KvORubin   (2002-03-11 21:51:00) [31]

> Anatoly Podgoretsky ©

Какие 2 минут ??? - мне так-же нужно сжать ехе,,
Моя программа делится на несколько частей, каждая
часть делает своё дело и передаёт данные другой части,,,

Так Вот: Этих частей 4 штуки_ЕХЕ давайте прибавим:
300 * 4 = 1.2Mb + код = 3Mb - кому нужны такие размеры ???

(Писать вручную интерфейс не позваляет..)

Кто-нибудь видел что лежит внутри скомпелированной ехе,
там столько грязи, что лучше не смотреть :)

Вопрос: Как избавиться от этой грязи ???



Anatoly Podgoretsky   (2002-03-11 20:30:00) [32]

Андрей Сенченко © (11.03.02 12:15)
copyr25 © (11.03.02 17:55)

300 кб жмем, получаем примерно 144, делим на 14.4, получаем 10, умножаем на 10, получаем 100, на всякий случай добавляем 20, итого 2 минут, о чем речь


Tsatur Soft   (2002-03-11 19:09:00) [33]

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


copyr25   (2002-03-11 17:55:00) [34]

JibSkeart: А причем тут zip или rar? Разговор, насколько я понимаю, про размер exe-шника.


drpass   (2002-03-11 13:26:00) [35]

>JibSkeart
В моде. Только на своем опыте знаю - чтобы юзеры в филиалах где-нибудь в пгт Фундуклеево Забулдыгинского района смогли что-нибудь обновить, единственная операция, которую они должны выполнить - это нажать клавишу Enter. Иначе они будут весь день звонить в компьютерный отдел, с ужасом спрашивая "а что такое "заменить файл". Такая мудрость, как архивация, им недоступна
Я обычно делаю простой дистрибутив, например, с помощью Ghost Installer (www.gInstall.com), который без всяких вопросов распакует и установит все файлы.


wicked   (2002-03-11 13:24:00) [36]

2 Hawk2
это ничего не даст... компилятор всё-таки использует smartlinking (умное связывание :) и лишнего не включает... единственное, из-за чего стоит это делать, так это из-за того, что (лишние) модули могут содержать (лишние) секции автоинициализации...


Hawk2   (2002-03-11 13:14:00) [37]

А если перед компиляцией готовой програмки повыключать из проекта лишние пакеты Project->Options->закладка Packages? А из Uses лишние модули, может поможет?


JibSkeart   (2002-03-11 12:42:00) [38]

А что Обычные Zip,Rar Нынче не в Моде ??


Андрей Сенченко   (2002-03-11 12:15:00) [39]

>> Aleks1 (10.03.02 02:26)
>> нужно очень поискать такой комп, где это помешает
>> нормальной работе

Комп в филиале предприятия находящемся примерно в 2000 км от Тебя при скорости их модема 14,6 и необходимости слать обновления пргограммы раз в неделю.
Нашелся ?


Шрек   (2002-03-10 04:37:00) [40]

>vrRaven (09.03.02 14:51)
>библиотека VCL очень много весит... Пиши на API или MFC...
MFC есть для Делфи?? Расскажи поподробнее об этом.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо