![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с 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.