![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| Gorinich |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 21.10.2005 Репутация: нет Всего: нет |
Помогите вынести в отдельный поток процедуру, которая закачивает файлы на сервер по FTP. Во время закачки на экран выводится форма с TAnimate, TProgressBar и TLabel, которые наглядно отображают работу.
Но во время работы проседуры прога подвисает. Сначала форма появлялась с большой задержкой - поставил Application.ProcessMessages - форма появляется, но бумажки в TAnimate не бегают. С потоками у меня не очень. Помогите!!!
Пробовал CreateThread(nil,128,@Upload(hConnect,uploadDir),self,0,h); - не получается... |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 10 Всего: 133 |
Это сообщение отредактировал(а) Poseidon - 19.1.2006, 18:00 -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| Gorinich |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 21.10.2005 Репутация: нет Всего: нет |
Poseidon, спасибо за пример, но у меня проблемка:
процедура Upload(Connect:pointer, Dir:string) - рекурсивная. В ней просматривается папка Dir, если находится папка, то опять вызывается Upload c путем к папке в параметре Dir, если файл - то он отправляется по FTP. Так мне что, ставить UploadThread:= TUploadThread.Create(False, hConnect, uploadDir); внутри. И как потом уничтожить потоки? Буду думать и пробовать.
|
|||
|
||||
| Poseidon |
|
||||||||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 10 Всего: 133 |
Попробуй так:
Поставь после
строку
поток завершится сам сразу после завершение процесса внутре потока. Это сообщение отредактировал(а) Poseidon - 21.1.2006, 15:07 -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
||||||||
|
|||||||||
| Gorinich |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 21.10.2005 Репутация: нет Всего: нет |
Пока не могу протестировать , сервак не доступен
Попробовал скомпилить: procedure WorkWithVCL; внес в TUploadThread и закрыл end'ом. Вобщем как только с серваком проблемы закончатся буду тестить. |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 10 Всего: 133 |
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
TAnimate и так выполняется в огтдельном потоке, так что даже не знаю поможет ли...
-------------------- Обижено школьников: 8 |
|||
|
||||
| Gorinich |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 21.10.2005 Репутация: нет Всего: нет |
Не работает
Даже файлы заливать перестала. |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |