![]() |
|
|
![]()
|
|
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
Всем добрый вечер!
Возникла сл. проблемка. У меня в программе происходит загрузка КЛАДР'а из локальной БД в сетевую. Сначала я делал без потока, так сказать для проверки, все работает, но естественно окно подвисает. Сейчас решил сделать через потоки. Сначала попробывал создать поток посредством среды, (Files->New->Othner->ThreadObject). В теле потока (Execute), написал цикл, и сделал вывод в ProgressBar через Synchronize. Запускаю поток и у меня появляется ошибка, но как только я убираю строку ProgressBar, то все работает нормально. Не поняв прикола, я создал чистый проект и повторил там вывод, все заработало. Стало грустно. Попробовал создать в чистом проекте поток с помощью CreateThread, написал проверил, работает. Возвращаюсь в свой проект переношу код с CreateThread, запускаю и опять ошибка Access Violation, и тут до меня доходит, что форма где происходят все действия создается не автоматом а руками:
Вот и думаю, правда из-за этого может, если да, то как исправить, а если нет, то из-за чего это может быть? Это сообщение отредактировал(а) vikaz - 25.9.2009, 20:40 -------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
В общем проверил я на пустом проекте это, действительно, ошибка появляется когда форма не создается автоматически. Если вызывать через Show(), то все работает отлично! :(
Совсем грустно. подскажите, как это побороть? Заранее спасибо. -------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
В какой последовательности вы запускаете поток, создаете форму и прогресс-бар? В каком месте программы?
|
|||
|
||||
| vikaz |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
запускается главная форма, у нее есть меню,через меню выбираю пункт который мне нужен, на этом пункте сл. код:
Появляется нужная форма со всем элементами, ProgressBar, лежит как раз на этой форме. Нажимаю кнопку в которой код:
Это сам код потока:
-------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
||||||||
|
|||||||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
||||
|
||||
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
Нас интересует N8Click Это сообщение отредактировал(а) vikaz - 25.9.2009, 22:03 -------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
А в обработчике потока Form_Kladr->sGauge->Progress = j; Вы не забыли присвоить значение Form_Kladr? |
|||
|
||||
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
можно подробнее с этого места?
-------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
||||
|
||||
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
Сразу же попробовал не прокатило! Единственное, что вернул форму в автосоздаваемые и вызываю Form_Kladr->ShowModal(); :( -------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
В главной форме нет переменной с именем Form_Kladr?
|
|||
|
||||
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
Нет! только указатели на TForm и все!
-------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Попробуйте посмотреть чему равно значение Form_Kladr в обработчике потока. Мне кажется, что этот адрес не указывает на форму.
|
|||
|
||||
| vikaz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: 10 Всего: 12 |
Подскажите, как это сделать!
-------------------- ![]() Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
||||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |