Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Сжатие приложения делфи. Способы. (https://forum.antichat.xyz/showthread.php?t=157393)

Logan22 17.11.2009 23:25

Сжатие приложения делфи. Способы.
 
Хотел бы узнать какие есть способы по сжатию веса приложений, либо какие-то вообще способы чтобы уменьшить стандартный вес приложений. :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

Смотри статью:
Уменьшаем размер программ на Дельфи
Кратко рассмотрены многие способы уменьшить размер програмы, есть примеры.

slesh 18.11.2009 00:26

Кстати, если юзать пакет, то советую сказать последнюю версию UPX и использовать сжатие с опцией -9 --ultra-brute
долго, но дает хорошие результаты:
Прога 448 000 байт.
upx.exe -9 --ultra-brute дает 167 424 байт
upx.exe -9 дает 179 200 байт.

Logan22 18.11.2009 00:34

Спасибо всем за ответы, всем плюсы!)
И ещё один вопрос, как возможно так реализовать чтоб когда курсор попадает на форму, и меняется вид курсора, к примеру на мой (уже скачанный с инета), не стандартный, не тот что по умолчанию в ОС виндоулс. Думаю вы поняли суть. =)

RumShun 18.11.2009 07:39

простейший пример: свойство 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.



Время: 08:44