Сжатие приложения делфи. Способы.

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Logan22, 17 Nov 2009.

  1. Logan22

    Logan22 Member

    Joined:
    11 Sep 2009
    Messages:
    115
    Likes Received:
    17
    Reputations:
    0
    Хотел бы узнать какие есть способы по сжатию веса приложений, либо какие-то вообще способы чтобы уменьшить стандартный вес приложений. :D
     
  2. ZdezBilYa

    ZdezBilYa Elder - Старейшина

    Joined:
    29 Aug 2008
    Messages:
    198
    Likes Received:
    75
    Reputations:
    19
    ASPack
     
    2 people like this.
  3. transserg

    transserg Elder - Старейшина

    Joined:
    2 Jul 2008
    Messages:
    147
    Likes Received:
    25
    Reputations:
    2
    пиши на чистом API =)
     
    1 person likes this.
  4. neprovad

    neprovad Elder - Старейшина

    Joined:
    19 Oct 2007
    Messages:
    899
    Likes Received:
    274
    Reputations:
    59
    максимально отказаться от модулей, присутствующих в uses
     
    1 person likes this.
  5. begin_end

    begin_end Green member

    Joined:
    4 Jan 2007
    Messages:
    259
    Likes Received:
    596
    Reputations:
    476
    _________________________
    1 person likes this.
  6. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Кстати, если юзать пакет, то советую сказать последнюю версию UPX и использовать сжатие с опцией -9 --ultra-brute
    долго, но дает хорошие результаты:
    Прога 448 000 байт.
    upx.exe -9 --ultra-brute дает 167 424 байт
    upx.exe -9 дает 179 200 байт.
     
    1 person likes this.
  7. Logan22

    Logan22 Member

    Joined:
    11 Sep 2009
    Messages:
    115
    Likes Received:
    17
    Reputations:
    0
    Спасибо всем за ответы, всем плюсы!)
    И ещё один вопрос, как возможно так реализовать чтоб когда курсор попадает на форму, и меняется вид курсора, к примеру на мой (уже скачанный с инета), не стандартный, не тот что по умолчанию в ОС виндоулс. Думаю вы поняли суть. =)
     
  8. RumShun

    RumShun Member

    Joined:
    27 Oct 2008
    Messages:
    283
    Likes Received:
    75
    Reputations:
    6
    простейший пример: свойство cursor, но там только стандартые, чтоб загрузить свои курсоры обращаемся к Delphi World 6, и вот что он нам говорит:
    Code:
    Загрузка курсоров 
    
    Функция 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.
    
     
    #8 RumShun, 18 Nov 2009
    Last edited: 18 Nov 2009
    2 people like this.