Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.146.105.194] |
|
Сообщ.
#1
,
|
|
|
Использую код:
Код: uses ...sevenzip, ... function ProgressCallback(sender: Pointer; total: boolean; value: int64): HRESULT; stdcall; begin if total then Form1.sprgrsbr1.Max:= value else Form1.sprgrsbr1.Position:= value; Result:= S_OK; end; function Decompress(FileName, DestDir, ArcFname: String; ArcDir: Boolean ): Boolean; var i: Integer; ItP: string; items: array[1..11] of Cardinal; sprgrsbr1: TsProgressBar; begin Result:= False; Application.ProcessMessages; try with CreateInArchive(CLSID_CFormat7z) do begin OpenFile(FileName); SetProgressCallback(sprgrsbr1, ProgressCallback); for i:= 1 to NumberOfItems - 1 do if not ItemIsFolder[i] then items[1] := 1; //ExtractItem(items[i], Steam, False); - как ей пользоваться в душе не понимаю... ExtractTo(DestDir); end; finally Result:= True; end; end; Как распаковать только нужные, кто знает подскажите..? |
Сообщ.
#2
,
|
|
|
Вариант - вместо dll вызывать .exe с соответствующим ключами.
|
Сообщ.
#3
,
|
|
|
Цитата Руслан @ Вариант - вместо dll вызывать .exe с соответствующим ключами. Не не катит, если 7zip не установлен, то всё - приехали... |
Сообщ.
#4
,
|
|
|
Положи бинарь и дллку в папку с прогой ну или в кач-ве ресурсов, костыль но как вариант.
|