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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2011, 22:26   #1
Arsenx777
Delphi, c++, php
Форумчанин
 
Аватар для Arsenx777
 
Регистрация: 14.03.2011
Сообщений: 288
Вопрос Поток и groupbox

Я создал поток TThread и в нем проиcходят разные действия,

Код:
procedure Potock2.Execute;
begin
...
 form1.groupbox1.Visible:=false;
 form1.groupbox2.Visible:=true;
 form1.groupbox3.Visible:=true;
end;
как программа запускается ошибок нет, но стоит мне кликнуть по лубому месту формы тут же выскакиевает ошибка! В чем причана и как этого избежать?


Еще один вопрос не в тему почему вконтакте не получается также авторизоваться как и на обычных других сайтах? Почему с VK.com заморок больше?
Изображения
Тип файла: jpg SC.jpg (13.8 Кб, 141 просмотров)
Мудр тот, кто знает нужное, а не многое.

Arsenx777 вне форума Ответить с цитированием
Старый 29.08.2011, 22:37   #2
Voody
Форумчанин
 
Регистрация: 22.06.2009
Сообщений: 310
По умолчанию

Поподробнее.
Когда запускается поток?
Что-то в нем происходит долгое, что он не успевает завершится до того, как вы кликните на форме?
Voody вне форума Ответить с цитированием
Старый 29.08.2011, 23:37   #3
Arsenx777
Delphi, c++, php
Форумчанин
 
Аватар для Arsenx777
 
Регистрация: 14.03.2011
Сообщений: 288
По умолчанию

Цитата:
Сообщение от Voody Посмотреть сообщение
Поподробнее.
Когда запускается поток?
Что-то в нем происходит долгое, что он не успевает завершится до того, как вы кликните на форме?

Программа запускается, потом я нажимаю на кнопку для зупуска потока в котором есть тот фрагмент кода, после запуска потока, если форму (тоесть программу) не трогать ошибок не будет! только тогда как я кликну мышкой в любом месте формы тогда я ошибка!
Мудр тот, кто знает нужное, а не многое.

Arsenx777 вне форума Ответить с цитированием
Старый 30.08.2011, 00:10   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Из потока обращаетесь к визуальным объектам формы без синхронизации (судя по первому посту). Скорее всего это и есть ваша проблема
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 30.08.2011, 00:45   #5
Voody
Форумчанин
 
Регистрация: 22.06.2009
Сообщений: 310
По умолчанию

Цитата:
Сообщение от Arsenx777 Посмотреть сообщение
Программа запускается, потом я нажимаю на кнопку для зупуска потока в котором есть тот фрагмент кода, после запуска потока, если форму (тоесть программу) не трогать ошибок не будет! только тогда как я кликну мышкой в любом месте формы тогда я ошибка!
Дак что-то в потоке происходит долгое? Ведь ошибка происходит во время выполнения потока, правильно я понимаю?
Тот код, что вы показали, исполнится моментально. Значит дело в других строках.
Поток запускается в одном экземпляре?

Цитата:
Сообщение от Аватар Посмотреть сообщение
Из потока обращаетесь к визуальным объектам формы без синхронизации (судя по первому посту). Скорее всего это и есть ваша проблема
Это может быть только неправильно с точки зрения кода, но никак не приводить к ошибке, если например запущен один поток.
Voody вне форума Ответить с цитированием
Старый 30.08.2011, 00:53   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
Это может быть только неправильно с точки зрения кода, но никак не приводить к ошибке, если например запущен один поток.
Я не исключаю, что конкретная ошибка по другой причине. Но как раз отсутствие синхронизации очень часто приводит к ошибкам даже при простом кликаньи мышью по форме. Да и код приведен далеко не полностью...
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 30.08.2011, 11:24   #7
Arsenx777
Delphi, c++, php
Форумчанин
 
Аватар для Arsenx777
 
Регистрация: 14.03.2011
Сообщений: 288
По умолчанию

когда я комментирую этот фрагмент кода то все работает прекрастно!
И что такое синхронизация потока? Для чего это надо? Как добить правильной синхронизации потока?
Мудр тот, кто знает нужное, а не многое.

Arsenx777 вне форума Ответить с цитированием
Старый 30.08.2011, 17:05   #8
Voody
Форумчанин
 
Регистрация: 22.06.2009
Сообщений: 310
По умолчанию

Поток один?
Если много, то зачем в каждом потоке такие действия делать идентичные. Делайте их один раз.
Если один, что еще происходит в потоке?
Voody вне форума Ответить с цитированием
Старый 01.09.2011, 09:39   #9
Mifody
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 215
По умолчанию

Цитата:
И что такое синхронизация потока? Для чего это надо? Как добить правильной синхронизации потока?
Фот фот, с этого надо было и начинать . Для общего развития и вникания в тему - Тынц.
Там конечно много воды и все досконально (ну по крайней мере для начала) можно и не читать. Основное в Главах 1, 2, 3, 4. Дальше идут уже тонкости, в данный сек, думаю, Вам они пока не нужны, но в будущем пригодятся .
Помог с вопросом - тыркаем в весы, Вам не сложно, а мне приятно
Mifody вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скопировать GroupBox a_n_n_a Общие вопросы Delphi 5 15.03.2011 10:30
Поток. Не получается создать поток. Выдает ошибки при запуске bigory Общие вопросы по Java, Java SE, Kotlin 3 23.09.2010 00:40
GroupBox Chudo4258 Помощь студентам 2 07.05.2009 21:43
GroupBox Иринкаа Компоненты Delphi 5 23.11.2007 18:45