Просмотр полной версии : Сжатие приложения делфи. Способы.
Хотел бы узнать какие есть способы по сжатию веса приложений, либо какие-то вообще способы чтобы уменьшить стандартный вес приложений. :D
ZdezBilYa
17.11.2009, 23:42
ASPack
transserg
17.11.2009, 23:47
пиши на чистом API =)
neprovad
18.11.2009, 00:04
максимально отказаться от модулей, присутствующих в uses
begin_end
18.11.2009, 00:08
Смотри статью:
Уменьшаем размер программ на Дельфи (https://forum.antichat.ru/thread40603.html)
Кратко рассмотрены многие способы уменьшить размер програмы, есть примеры.
Кстати, если юзать пакет, то советую сказать последнюю версию UPX и использовать сжатие с опцией -9 --ultra-brute
долго, но дает хорошие результаты:
Прога 448 000 байт.
upx.exe -9 --ultra-brute дает 167 424 байт
upx.exe -9 дает 179 200 байт.
Спасибо всем за ответы, всем плюсы!)
И ещё один вопрос, как возможно так реализовать чтоб когда курсор попадает на форму, и меняется вид курсора, к примеру на мой (уже скачанный с инета), не стандартный, не тот что по умолчанию в ОС виндоулс. Думаю вы поняли суть. =)
простейший пример: свойство cursor, но там только стандартые, чтоб загрузить свои курсоры обращаемся к Delphi World 6, и вот что он нам говорит:
Загрузка курсоров
Функция API LoadCursor определена следующим образом:
function LoadCursor(Instance: THandle; CursorName: PChar): HCursor;
Первый параметр Instance должен содержать дескриптор модуля, содержащего файл
RES. Как и пример, приведенный выше, данный пример предполагает, что модуль,
из которого мы пытаемся загрузить курсор, - ваше приложение.
Второй параметр - имя курсора. В секции interface сделайте следующее объявление:
const
crMyCursor = 5; {Другие модули могут также использовать эту константу}
Затем добавьте следующие две строчки к обработчику события формы OnCreate:
procedure TForm1.FormCreate(Sender: TObject);
begin
Screen.Cursors[crMyCursor] := LoadCursor(HInstance, 'CURSOR_1');
Cursor := crMyCursor;
end;
или же вы можете изменить один из стандартных курсоров Delphi как показано ниже
(константы Cursor описаны в электронной справке в статье Cursors Property):
procedure TForm1.FormCreate(Sender: TObject);
begin
{Данный пример изменяет курсор SQL Hourglass}
Screen.Cursors[crSQLWait] := LoadCursor(HInstance, 'CURSOR_1');
end;
Примечание: в нормальной ситуации необходимо удалить любые ресурсы курсоров с помощью DeleteCursor,
тем не менее, в Delphi в этом нет необходимости, поскольку Delphi сама удаляет все курсоры из массива Cursors.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot