|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.06.2011, 09:13 | #1 |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 273
|
EOSError 1400 "Недопустимый дескриптор окна"
Доброго времени суток.
После того как перенес некоторый код в поток при завершении программы стала вылетать ошибка EOSError 1400 "Недопустимый дескриптор окна". Код программно помещает на форму некоторое количество некоторых компонентов(таких как tlabel, timage, tbutton итп). Когда код был вне потока все было нормально, причина появления ошибки мне совершенно не ясна т.к. код выполняется до конца без ошибок и по идее поток должен при этом завершаться. Вот этот код(пару компонентов TLabel я из него убрал т.к. иначе сообщение выходило слишком большое, но смысл остался тот же): Код:
Заранее спасибо. P.S. Мб мысль глупая но всеже - а не может это быть из за того что если динамически создавать объекты в потоке то поток не завершиться после выполнения и будет продолжать жить пока эти объекты существуют? |
21.06.2011, 09:48 | #2 |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 273
|
Нашел то что вызывает ошибку, эта строчка:
el_menu_btn[element_i].Parent := sScrollBox1; Но почему? У остальных компонентов родительским точно также является sScrollBox1... |
21.06.2011, 10:40 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
1. Когда выполняете TImage.Create(nil), то Free для компонента нужно программно делать
2. Создание визуальных компонент, адресовка их на форму - делать с использованием синхронизации
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
21.06.2011, 10:42 | #4 |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 273
|
Уже итак заменял все на create(Form10)(че только не пробовал), все тоже самое, и к тому же ошибка все равно не в этом а в той строчке которую я указал... И плюс к тому этот код раньше стоял просто в onshow а не в потоке и работал нормально, я его просто от туда скопировал, изменилось лишь то что он оказался в потоке.
|
21.06.2011, 10:47 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
21.06.2011, 11:41 | #6 |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 273
|
Синхронизация действительно помогла) спасибо =)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка при работе с canvas "Неверный дескриптор" | Алекс Ялта | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 17 | 13.06.2011 22:32 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |
Восстановить файл "недопустимый формат" | adonis | Microsoft Office Excel | 2 | 07.05.2009 08:59 |
Что такое "дескриптор" и с чем его едят? | Snake_ua | Win Api | 3 | 30.10.2007 11:17 |