![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Пишу тест: при копировании большого файла (фильм 400 мб) программа должна менять названия кнопки.
Изменение названия кнопки написал в потоке так: Код:
procedure Progress.Execute; var i: Integer; begin for i := 0 to 100 do begin Form1.Button1.Caption := IntToStr(Random(1000)); Sleep(100); end; end; Файл копирую так: Код:
CopyFile(PChar('c:\film.avi'),PChar('c:\film_copy.avi'),true); Так вот при копирвании файла программа «подвисает» на время копирования и название кнопки не изменяется... Подскажите как можно во время копирования файла, приведенным мной способом, менять название кнопки. |
#2
|
||||
|
||||
![]() Вместо Sleep(100) используй Application.ProcessMessages.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#3
|
|||
|
|||
![]() Цитата:
И что будет? Мне нужно, чтобы название менялось много раз с каким-то интервалом. Я бы использовал таймер, но не знаю как использовать его в потоке. ProcessMessages вроде чистит очередь. UPD: попробовал - не помогло. Последний раз редактировалось kiman.ru, 12.03.2012 в 21:27. |
#4
|
|||
|
|||
![]() взаимодействие с формой вроде в синхронайз выводить надо,не?
могу предложить такой способ если таймер юзать нельзя.берешь текущее время,запоминаешь,и бесконечным циклом while true do сравниваешь,если запомненное время отличается от настояещего на секунду(или какой те интервал нужен) то переименовать кнопку,и обновить запомненное время, так по кругу пока файл не скопируется =) |
#5
|
||||
|
||||
![]() Если копируешь в главном потоке программы - то естественно будет подвисать.
Вот тут примеры, мне больше всего нравится тот где CopyFileEx ЗЫЖ Если интересно - могу объяснить подробнее почему у тебя зависает (не обновляется). Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
Этот пользователь сказал Спасибо Aristarh Dark за это полезное сообщение: | ||
kiman.ru (13.03.2012)
|
#6
|
|||
|
|||
![]() Цитата:
Да, мне интересно почему так происходит. |