Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Где правильно распологать вызов процедур, чтобы форма не висела? [D6, Win2k]


Prizrak-ppm ©   (2002-12-24 19:03:00) 

например, есть кусок программы
while FindNextFile(k,p) do
begin
CopyFile(PChar(s+p.cFileName),PChar(s2+p.cFileName),false);
metka.Caption:=s+p.cFileName;
text.Text:=text.Text+s+p.cFileName+chr(13)+chr(10);
i:=i+1;
end;

требуется, чтобы форма не висела и как минимум заголовок metka изменялся в соответствии с именем файла

подскажите, пожалуйста, где нужно разместить этот код программы?


drin   (2002-12-25 03:56:00) [1]




Var
hThr: THandle;
ThrID: DWORD;
.......

procedure My_Proc;
begin
while FindNextFile(k,p) do
begin
CopyFile(PChar(s+p.cFileName),PChar(s2+p.cFileName),false);
metka.Caption:=s+p.cFileName;
text.Text:=text.Text+s+p.cFileName+chr(13)+chr(10);
i:=i+1;
end;
end;

........
hThr:=CreateThread(nil, 0, @My_Proc, nil, 0, ThrID);
........

Всё что выполняется в ф-ии My_Proc, выполняется паралельно с тем что выполняется в основном потоке в том числе и прорисовка.


Anatoly Podgoretsky   (2002-12-24 19:21:00) [2]

Все это заменить на ShFileOperation и крутить там же стандарную анимацию

Clickmaker © (24.12.02 19:08)
Application.ProcessMessage частное решение, при длинных файлах и/или низкой скорости мало эффективное

Поток конечно очень эффективно


Clickmaker   (2002-12-24 19:08:00) [3]

Либо в отдельном потоке, либо вставить Application.ProcessMessage после CopуFile, но последний вариант не спасет, если копируется очень большой файл. Лучше всего поток


gsu   (2002-12-24 19:06:00) [4]

Чтобы форма не висела, надо ее положить или ,н-р, выполнять код в отдельной нити


Наверх

Титульная страница Поиск, карта сайта Написать письмо