|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.03.2010, 23:34 | #1 |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
Использование Self.Handle при создании и уничтожении компонента
Вообщем создаю компонент. Компонент есть наследником TCustomControl. Вроде все более ли менее работает. Но есть один баг, из-за которого вылетает вся программа.
Вот например: есть деструктор такого вида Код:
если же написать тот же деструктор, допустим вот так Код:
Все тоже самое и с конструктором. Есть некая процедура в которой используется Self.Handle и если я ее вызываю в конструкторе, то сразу же летит ошибка приведенная выше. Народ, подскажите, почему нельзя использовать Self.Handle в конструкторе и деструкторе? Или может я что то не так делаю, подскажите?
Будь проще и люди к тебе потянутся
|
09.03.2010, 23:38 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
в деструкторе своего класса наследуемый деструктор вызываем в конце а не в начале.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
09.03.2010, 23:50 | #3 | |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
Цитата:
Только вот не пойму, ну что не правильно я делаю?
Будь проще и люди к тебе потянутся
|
|
10.03.2010, 00:00 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
стоп...а Handle чем заполняется то?
случаем с оконным хендлом не путаете? ведь именно оно содержится в этом св-ве Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
10.03.2010, 00:06 | #5 |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
Сам конструктор
Код:
Код:
з.ы. я что то вообще уже запутался (((
Будь проще и люди к тебе потянутся
|
10.03.2010, 00:19 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
или его собственный, но уж точно не хендл таймера
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
10.03.2010, 00:29 | #7 |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
А что в таких случаях можно сделать?
Кстати, а если тут использую этот же Self.Handle в конструкторе: Код:
Может знаете, как исправить данный баг?
Будь проще и люди к тебе потянутся
|
10.03.2010, 00:38 | #8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
попробуйте другого предка(TWinControl например)
пока не нашел компонента основанного на TCustomControl а после С++ не могу вспомнить его смысл Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
10.03.2010, 00:51 | #9 |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
Предка пробовал менять, но положительного результата я не добился.
TWinControl - не подходит тем, что в нем нету Canvas, а вот TCustomControl - это предок TWinControl'a только с добавленным полем Canvas, так что по сути нету смысла менять предка, я так понимаю. Ну вот например, на TCustomControl по большому счету основан TPanel, хоть на самом деле у TPanel есть промежуточный класс TCustomPanel, но я думаю это не столь важно (этот промежуточный класс). Кто что еще может посоветовать?
Будь проще и люди к тебе потянутся
|
10.03.2010, 07:24 | #10 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
предпочитаю так...
Код:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка AV при уничтожении объектов из модулей(dll) | puga555 | Общие вопросы Delphi | 4 | 08.01.2010 22:14 |
Заменить стандартное событие компонента при создании своего. | postal2 | Компоненты Delphi | 6 | 28.08.2009 11:01 |
Проблема при создании компонента | Levsha100 | Компоненты Delphi | 3 | 02.05.2009 12:05 |
Проблема перехвата сообщений при создании невизуального компонента | volod3000 | Компоненты Delphi | 7 | 08.03.2009 14:13 |