Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #14  
Старый 28.10.2013, 16:41
Deep88 Deep88 вне форума
Прохожий
 
Регистрация: 27.10.2013
Сообщения: 8
Версия Delphi: xe4
Репутация: 10
По умолчанию

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


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:01.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025