Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.26;
Скачать: CL | DM;

Вниз

Как нормально следить за счётчиком!?   Найти похожие ветки 

 
Volf_555   (2005-12-09 18:50) [0]

Вобщем - суть в слудующем:

Есть прога, смысл работы какой заключается в удалении повторяющихся строк. Если работать с мелкими файлами - проблем не возникает - всё обрабатывается сравнительно быстро.

Но если обрабатывать огромные файлы, то можно подумать что программа полностью зависла и её надо тэрминэйтить...

Для этих целей я создал вторую форму, которая должна во время обработки огромного файла показывать номер значения, обрабатываемый в данный момент+диаграмма, по которой будет видно сколько процентов уже обработано.

Но когда я запускаю обработчик большого файла, то появляется вторая форма без компонентов и всё зависает... И, соответственно, не видно обрабатываемое значение + проценты

Вот код:

with form2 do
begin
 Show;
 Label5.Caption:= "Файл: "+ExtractFileName(OpenDialog1.FileName);
 Label3.Caption:=IntToStr(memo2.Lines.Count);
 gauge1.MaxValue:=memo2.Lines.Count;
end;

if form2.Showing then
begin
 for a:=0 to memo2.Lines.Count-1 do
 for a1:=0 to memo2.Lines.Count-1 do
 begin
  if memo2.Lines.Strings[a1]=memo2.Lines.Strings[a] then
   memo2.Lines.Delete(a1);
   form2.label4.Caption:=IntToStr(a);
 end;
end;


Как подскажите решить проблему?
ЗЫ: существуют же ведь программы, в которых эта возможность реализована!


 
Плохиш ©   (2005-12-09 18:52) [1]

Application.ProcessMessages


 
Volf_555   (2005-12-09 18:59) [2]

А подробней?


 
Плохиш ©   (2005-12-09 19:02) [3]


> Volf_555   (09.12.05 18:59) [2]
> А подробней?

Хочешь, чтобы я за тебя F1 нажимал и справку сюда постил? Если модератор разрешение даст, скопирую сюда описание из моей справки, правда ты там всё-равно ничего не поймёшь.


 
Volf_555   (2005-12-09 19:03) [4]

Написал так:

with form2 do
begin
Show;
Label5.Caption:= "Файл: "+ExtractFileName(OpenDialog1.FileName);
Label3.Caption:=IntToStr(memo2.Lines.Count);
gauge1.MaxValue:=memo2.Lines.Count;
end;

Application.ProcessMessages

if form2.Showing then
begin
for a:=0 to memo2.Lines.Count-1 do
for a1:=0 to memo2.Lines.Count-1 do
begin
 if memo2.Lines.Strings[a1]=memo2.Lines.Strings[a] then
  memo2.Lines.Delete(a1);
  form2.label4.Caption:=IntToStr(a);
end;
end;


В таком случае вторая форма показывается, но значения меняться не хотят. И всё-равно идёт подвисание как главной, так и второй форм


 
MU ©   (2005-12-09 19:04) [5]

в цикл еще вставь


 
Плохиш ©   (2005-12-09 19:05) [6]

В цикл вставь.


 
Volf_555   (2005-12-09 19:09) [7]

Thank - работает!



Страницы: 1 вся ветка

Текущий архив: 2006.02.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.028 c
15-1139223923
pargo
2006-02-06 14:05
2006.02.26
Magic Forum не пускает в ветку "Начинающим"


6-1132160039
mj
2005-11-16 19:53
2006.02.26
Освоение принципов работы протокола прикладного уровня HTTP


2-1139797755
Warlock_
2006-02-13 05:29
2006.02.26
Про Handl ы


1-1138310492
Unsigned
2006-01-27 00:21
2006.02.26
Создание патчей.


15-1139299391
VitV
2006-02-07 11:03
2006.02.26
FastReport-скачать?