Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.29;
Скачать: CL | DM;

Вниз

новый класс на базе чекбокса   Найти похожие ветки 

 
malamba   (2002-07-16 09:28) [0]

Братья по разуму, помогите разобраться!

Создал новый класс на основе CheckBox-a (отличие - в нескольких доп. полях, в которых сохраняю свои данные). Экземпляры класса создаются в run-time. Даю им родителя, размеры, положение и свои данные.
В debug-time для проверки кладу на форму новый компонент и вижу все его новые свойства в Инспекторе объектов.
В run-time ничего не создается. Точнее создается, но поскольку владелец - TComponent, ничего не прорисовывается.
Пробовал указывать владельцем TWinControl - такое впечатление, что в новом классе только мои свойства, а от родительского ничего не передалось. Имя - от формы, на мои имена не реагирует.

Для наглядности - кусочки кода:


type
TCheckBoxGost = class(TCheckBox)
private
FKolStranic: Integer;

protected
procedure SetKolStranic(const Value: Integer);

published
constructor Create(AOwner: TWinControl);
destructor Destroy(AOwner: TWinControl);
property KolStranic: Integer read FKolStranic write SetKolStranic;

****************************************************************
constructor TCheckBoxGost.Create(AOwner: TWinControl);
begin
inherited Create(AOwner) ;
end;


****************************************************************
А вызываю я его так:

MyCheckBoxGost:= TCheckBoxGost.Create(Self);

Где-то явная лажа, но где - не хватает опыта понять...


 
Kaban ©   (2002-07-16 09:33) [1]

MyCheckBoxGost:= TCheckBoxGost.Create(Self);
MyCheckBoxGost.Parent:=Self;


 
olookin ©   (2002-07-16 09:36) [2]

Нужно поставить строку:

MyCheckBoxGost.Parent:=Form1 (или self);

После этого у меня все появилось.


 
Eugene Lachinov ©   (2002-07-16 09:41) [3]

published
constructor Create(AOwner: TWinControl);
destructor Destroy(AOwner: TWinControl);

Это как-то неправильно, хотя в данной реализации несущественно, обычно
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;


 
malamba   (2002-07-16 17:28) [4]

Eugene Lachinov-у
знаю, что нужно override;, но у меня эта зараза сообщает, что неопознаваемое слово. Возможно что-то где-то не упомянулось. НО работает и без этого, тем более, что на стандартные методы CheckBoxa я не покушался.

Всем спасибо!
Главная бяка была вот в чем:
была строка
.Parent:=(фрейм, в котором создавались чекбоксы);
Вместо имени фрейма у меня стояла переменная, в которой хранилось это самое имя.
Когда ввел имя напрямую, все мои родненькие повылазили.



Страницы: 1 вся ветка

Текущий архив: 2002.07.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
14-95491
Ajax
2002-06-27 15:09
2002.07.29
Программа учета...


1-95351
ilg
2002-07-18 13:07
2002.07.29
AnsiLowerCase для Char


1-95355
EugeneP
2002-07-18 11:56
2002.07.29
Delphi 5 и Delphi 6. Компиляция DLL


14-95489
raiks
2002-06-29 14:28
2002.07.29
Где взять api для написания прог для мобильника (siemens me45)?


3-95238
Pro
2002-07-08 21:40
2002.07.29
Накопительный отчет