Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с ActiveX-контролом: "control ... has no parent window" [D6, D7, Win2k, WinXP]


3fc ©   (2004-10-13 08:12:00) 

Добрый день, уважаемые мастера!

Помогите, плиз, с данной проблемой. При регистрации ActiveX-компонента Delphi выдает вышеуказанное сообщение. Компонент выводит текст под произвольным углом средствами WinAPI. Код конструктора следующий:
...
type
 TRotateText = class(TWinControl)
 private
   Fdc: HDC;
...
constructor TRotateText.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);
...
 Parent := nil;                      
 Fdc := GetDC(Handle); //далее использую Fdc при выводе текста
...
end;
...
Что я делаю не так?


3fc   (2004-10-14 08:10:00) [1]

Юрий Зотов

Ок, спасибо за совет, все работает.


Юрий Зотов   (2004-10-13 13:35:00) [2]

GetDC(Handle)

Обращение к хэндлу окна происходит в конструкторе, когда окно еще не создано. Перенесите в метод СreateWnd ПОСЛЕвызова inherited. И уберите Parent := nil. А при выводе текста, если есть опасность, что окна еще нет, проверяйте HandleAllocated.


Наверх

Титульная страница Поиск, карта сайта Написать письмо