|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Вопрос по переопределению конструктоора
Создаю свой компонент
Код:
TRadioButtonCorrect=class(TRadioButton) private FBitmap:TBitmap; FLeftMove:Integer; FTopMove:Integer; procedure WMPaint(var Message: TWMPaint);message WM_PAINT; procedure AfterCreate(var Msg:TMessage);message WM_User+1001; public constructor Create(AOwner:TComponent);Override; destructor Destroy;Override; end; переопределяю конструктор так Код:
constructor TRadioButtonCorrect.Create(AOwner: TComponent); begin inherited Create(AOwner); // Parent:=TWinControl(Owner); FLeftMove:=16; FTopMove:=2; PostMessage(Handle,WM_User+1001,TForm(AOwner).Color,0); end; если ставлю Parent:=TWinControl(Owner); то получаю привязку компонента к форме, если вообще без этой строчки то получаю ошибку о том что нет родителя у компонента Мне нужно чтоб Parent был GroupBox или Panel или ещё что, то на что я кинул в дизайнере этот компонент Подскажите как это сделать |
#2
|
||||
|
||||
Цитата:
|
#3
|
||||
|
||||
А может дело в этой строке:
Код:
PostMessage(Handle,WM_User+1001,TForm(AOwner).Color,0); Код:
TForm(AOwner) Код:
(aOwner as TControl).Сolor |
#4
|
||||
|
||||
проблема с Handle в PostMessage
Код:
with TRadioButtonCorrect.CreateParented(Panel1.Handle) do begin Parent:=Panel1; Caption:='TRadioButtonCorrect'; end; Пишу программы за еду. __________________ Последний раз редактировалось NumLock, 27.08.2012 в 15:18. |
#5
|
||||
|
||||
Цитата:
да похоже дело было в пост мессадж, и да TForm(AOwner) не корректно, но TControl(AOwner).Color не работает потому что свойство protected (delphi xe2), решил через GetPropValue(AOwner,'Color') проблема решена всем спасибо)) P.S. В delphi xe2 (может и в других старше D7) есть такая проблема у TRadioButton в ObjectInspector нельзя поменять Font.Color, т.е. поменять можно но цвет всё равно задаст RunTime Themes, так вот это было решение с переопределением WMPain. Если кому интересно могу выложить код. Последний раз редактировалось Lost_Fish, 28.08.2012 в 07:15. |