Форум: "Основная";
Текущий архив: 2002.07.29;
Скачать: [xml.tar.bz2];
Внизновый класс на базе чекбокса Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c