Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 04.05.2014, 01:18   #1
Qbl
Новичок
 
Регистрация: 04.05.2014
Сообщений: 2
Репутация: 10
По умолчанию Ошибка Control has no parent

Добрый день.
Вопрос такой.
Delphi 7. Создается компонент - наследник класса TLabeledEdit. Стоит добавить переопределение конструктора, или метода Change или добавить published свойство, как при попытке разместить компонент на форме появляется сообщение
Control ... has no parent window.

В конструкторе убирал инициализацию полей. Оставлял в порядке эксперимента лишь inherited Create(AOwner) - ошибка.
Если убрать все добавленные свойства, методы и т.д. и оставить голый класс - ошибка не исчезает. Помогает лишь удаление компонента из пакета, затем создание по-новой. Но опять же до упомянутого места, после чего опять выскакивает ошибка.
------
Проверил. Даже без свойств и конструкторов, простое переопределение метода Change уже приводит к такому результату. Хотя до этого не приводило. В рабочей программе (которая на данный момент запускается) переопределение работало и там стоит именно этот компонент.

В общем, подскажите, пожалуйста, в какую сторону копать.

Заранее спасибо.
Qbl вне форума   Ответить с цитированием
Старый 04.05.2014, 10:16   #2
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,815
Репутация: 6850
По умолчанию

Цитата:
Помогает лишь удаление компонента из пакета, затем создание по-новой.
Ну логично. Установленный компонент уже не зависит от исходника. Любые изменения его должны быть перестроены в BPL. В старых версиях Делфи еще и полюбому перерегистрация должна была быть, чтоб DCU заменялись на новые, в новых возможно эта болячка осталась, не знаю.
Поэтому тест компонента рекомендую делать не кидая его на форму с панели компонентов, а прописывая ручками в программе все его изначальное создание в коде. По крайней мере я так и выходил из положения, потому что постоянно переустанавливать было неудобно.
__________________
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 04.05.2014, 13:42   #3
Qbl
Новичок
 
Регистрация: 04.05.2014
Сообщений: 2
Репутация: 10
По умолчанию

"Установленный компонент уже не зависит от исходника"
Не совсем так. У меня в Delphi 7 если вносить другие изменения и перекомпилировать dclusr, то эти изменения моментально отражаются как в самой программе, так и в поведении при design-time.

В общем, воспользовался логичными костылями. В каждой переопределенной методе после inherited запихал if Parent=nil then exit;
Выглядит коряво, но работает.

Все же, не понимаю. Неужели тот же Change вызывается до определения родителя в каком-нибудь SetParent.

В любом случае, спасибо.
Qbl вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка Control has no parent window mosxe Общие вопросы Delphi 0 27.05.2013 11:25
Control '' has no parent window. при создание DateTimePicker bakanaev Общие вопросы Delphi 6 31.03.2013 15:44
Ошибка for loop control variable must be simple local variable 2UnLiMiTeDD Общие вопросы Delphi 8 19.03.2012 16:13
создание TSplitter на форме в dll, Control has no parent window sprofxx Общие вопросы Delphi 9 04.09.2010 13:37
Alpha Control (ошибка) ZBEP Компоненты Delphi 2 27.04.2009 12:00


13:08.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.