Текущий архив: 2003.02.17;
Скачать: CL | DM;
ВнизРазработка компонента Найти похожие ветки
← →
Yarmak_Sergey (2003-02-08 13:10) [0]Уважаемые мастера!!!
Пишу компонент, кот. в себе инкапсулирует несколько визуальных контролов, в том числе TRadioGroup. Предположим назовем этот компонент TTestComponent = class(TCustomControl).
В конструкторе TTestComponent я пишу следующее
constructor TTestComponent.Create(AOwner: TComponent);
begin
FRadioGroup := TRadioGroup.Create(Self);
FRadioGroup.Parent := Selft;
FRadioGroup.Items.Add("First Item");
FRadioGroup.Items.Add("Second Item");
end;
Так вот вопрос, почему когда я перетягиваю контрол с палитры ком понент на форму возникает ошибка с сообщением
"Control has no parent window" ?
← →
Романов Р.В. (2003-02-08 13:15) [1]
> FRadioGroup.Parent := Selft;
Наверно не Self, а Self.Parent. Хотя вы лучше должны знать как он должен работать.
← →
Palladin (2003-02-08 13:16) [2]ИМХО
inherited Create(AOwner)
self.parent:=AOwner
в конструкторе попоробуй написать
← →
Yarmak_Sergey (2003-02-08 15:10) [3]Palladin ©
А что на уровне конструктора не определен Parent?
Тогда, когда же определяется Parent для TTestComponent?
И почему если не пишешь строки
FRadioGroup.Items.Add("First Item");
FRadioGroup.Items.Add("Second Item");
то все корректно?
← →
Anatoly Podgoretsky (2003-02-08 15:16) [4]Это ты их должен писать :-)
← →
Style (2003-02-08 23:17) [5]Зачем использовать TRadioGroup юзай TPanel и кучу RadioButton
а в TRadioGroup глюк
в модуле ExtCtrls
в процедуре ArrangeButtons
строчка DeferWindow если ее удалить то все работает :))
← →
Юрий Зотов (2003-02-09 10:18) [6]Ошибка возникает из-за строк:
FRadioGroup.Items.Add("First Item");
FRadioGroup.Items.Add("Second Item");
Причина - в конструкторе у FRadioGroup еще нет окна.
Заместите метод CreateWnd и перенесите эти строки в него, строго ПОСЛЕ вызова inherited.
Страницы: 1 вся ветка
Текущий архив: 2003.02.17;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.01 c