![]() |
|
|
#14
|
|||
|
|||
|
пробовал в разные места прогресс бар ставить, всё равно неправильно.
только что поставил сразху после созадния стринглиста, дошёл до середины и пошёл на втором архиве в обратную сторону и закончился опять до того как архив распаковался. исходник sevenzip на всякий http://rghost.ru/49779527 в общем если архивы маленькие то норм, а беру 2 архива, один 500мб, распакованых получается дето 1 гб и второй 1гб архив, распакованых гдето 2, тогда чёрти что. по поводу отладчика, запустил в режиме дебага, куча месаджей внизу о том что загружается, в основном dll всякие, куда смотреть нада?) опять чудеса, взял тот же архив на 500 метров и другой на 200, всё нормально показало. может быть причина в том что во втором архиве до этого были теже самые файлы что и в первом? только что взял 3 архива с разными данными, показало всё как нада. правда дёргано немного, но то ладно, плохо ток что подвисает приложение если его двигать по экрану) сделал лабел с именем извлекаемого архива. сделал мемо с именми извлекаемых файлов, оно записывает туда сразу все файлы в архиве разом. как сделать имя файла извлекаемого в данный момент? делал так Код:
OpenFile(archives[i]); label1.Caption:=archives[i]; for f := 0 to NumberOfItems - 1 do if not ItemIsFolder[f] then mlog.Lines.Add(ItemPath[f]); Код:
function ProgressCallback(sender: Pointer; total: boolean; value: int64): HRESULT; stdcall; begin if total then begin ArcLen := value ; form1.ProgressBar2.Max := value; end else form1.ProgressBar1.Position :=trunc(ArcNum*100 + 100*value/ArcLen); form1.ProgressBar2.Position := value; Application.ProcessMessages; Result := S_OK; end; Последний раз редактировалось Deep88, 28.10.2013 в 17:28. |