Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2010, 13:09   #31
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

Поршу прощенья, что так долго отвечал, но я вдарился в изучение потоков, и как я правильно понял, если эту функцию я запущу в отдельном потоке, то выполнение программного кода будет продолжаться, а мне этого не надо. Мне нужно просто чтобы окно моей программы не замерзало. Может конечно я неправильно что то понял. Или предложите, пожалуйста, другой способ копирования папки с большими файлами, но так чтобы фома не "замерзала", а индикатор копирования мне не обязательно, можно простов label выводить, что копируется file1, потом file2 и т.д.
tarakan1983 вне форума Ответить с цитированием
Старый 23.09.2010, 13:19   #32
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Или предложите
Опять таки в потоке поблочное считывание (по 1Кбайту) и вписывание.
или в цикле при присутствии в нем же метода ProcessMessages
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.09.2010, 13:22   #33
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

Прошу прощенья, но мне немного непонятно.
tarakan1983 вне форума Ответить с цитированием
Старый 23.09.2010, 13:27   #34
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А так?:
http://www.programmersforum.ru/showthread.php?t=56230
http://www.delphiworld.narod.ru/base...opy_files.html
http://www.delphiworld.narod.ru/base...ogressbar.html
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.09.2010, 13:33   #35
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

Последние 2 ссылки я применял, но результат тот же форма замерзает, а первую сейчас буду изучать.
tarakan1983 вне форума Ответить с цитированием
Старый 01.02.2011, 18:51   #36
Var17
Пользователь
 
Регистрация: 13.12.2007
Сообщений: 41
По умолчанию

Цитата:
Сообщение от Terran Посмотреть сообщение
Вот замечательная функция для копирования:

Код:
Function FullDirectoryCopy(SourceDir,TargetDir: String; StopIfNotAllCopied,
OverWriteFiles: Boolean): Boolean;
Var
SR: TSearchRec;
I: Integer;
Begin
Result:=False;
SourceDir:= IncludeTrailingBackslash(SourceDir);
TargetDir:= IncludeTrailingBackslash(TargetDir);
If Not DirectoryExists(SourceDir) Then
Exit;
If Not ForceDirectories(TargetDir) Then
Exit;
I:=FindFirst(SourceDir + '*', FaAnyFile, SR);
Try
While I = 0 Do
Begin
If (SR.Name <> '') And (SR.Name <> '.') And (SR.Name <> '..') Then
Begin
If SR.Attr = FaDirectory Then
Result:= FullDirectoryCopy(SourceDir + SR.Name, TargetDir + SR.NAME,
StopIfNotAllCopied, OverWriteFiles)
Else
If Not (Not OverWriteFiles And FileExists(TargetDir + SR.Name)) Then
Result:= CopyFile(Pchar(SourceDir + SR.Name), Pchar(TargetDir + SR.Name),False)
Else
Result:=True;
If Not Result And StopIfNotAllCopied Then
Exit;
End;
I:=FindNext(SR);
End;
Finally
SysUtils.FindClose(SR);
End;
End;
Столкнулся с проблемой: не копирует папки с CD диска. Есть ли решение данной проблемы ?
Var17 вне форума Ответить с цитированием
Старый 08.03.2011, 21:53   #37
Virus25
Пользователь
 
Регистрация: 24.07.2009
Сообщений: 87
По умолчанию

Цитата:
Сообщение от tarakan1983 Посмотреть сообщение
Последние 2 ссылки я применял, но результат тот же форма замерзает, а первую сейчас буду изучать.
Используй таймер для этого например так:
Код:
Timer1.Enabled:=True;
FullDirectoryCopy(SourceDir,TargetDir: String; StopIfNotAllCopied,
OverWriteFiles: Boolean);
Timer1.Enabled:=False;
а в таймер ставь код:
Код:
Application.ProcessMessages;
на таймере сделай интервал 100 и пробуй у меня сработало.
Цитата:
Сообщение от Var17 Посмотреть сообщение
Столкнулся с проблемой: не копирует папки с CD диска. Есть ли решение данной проблемы ?
Проблема возможна и за того что поиск файлов на диске не возможен или диск защищён.

Последний раз редактировалось Virus25; 08.03.2011 в 21:59.
Virus25 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
расположение папки Data c БД или другими файлами VenMaster Общие вопросы Delphi 2 12.05.2008 23:35
Папки xTANATOSx Общие вопросы Delphi 1 05.11.2007 16:26
Выбор папки UnD)eaD)Snake Общие вопросы Delphi 10 22.08.2007 12:05
Как скопировать папку со всем ее содержимым Arsgun Общие вопросы Delphi 2 09.06.2007 22:07
Отслеживает появление в папке файлов. слежение за определенным файлом в определенной папке. RammFan Win Api 1 09.06.2007 11:09