пробовал в разные места прогресс бар ставить, всё равно неправильно.
только что поставил сразху после созадния стринглиста, дошёл до середины и пошёл на втором архиве в обратную сторону и закончился опять до того как архив распаковался.
исходник 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;