![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Мой метод Create скрывает виртуальный метод базового класса... [D6, WinXP]
SnapIn © (2004-12-09 06:15:00)Мой метод Create скрывает виртуальный метод базового классаTCustomForm. Почему?
public
constructor Create(Owner: TCustomForm; iEditStatus: Integer = iAddState);
...
constructor TfmDialog.Create(Owner: TCustomForm; iEditStatus: Integer = iAddState);
begin
inherited Create(Owner);
end;
еще в справке создание конструктора описывается с директивой override
если же я дописываю в объявлении override - выдается сообщение:
Объявление Create отличается от предыдущего объявления...
SnapIn (2004-12-09 10:50:00) [1]Спасибо всем за ответы!
KSergey (2004-12-09 08:51:00) [2]> public
constructor Create(Owner: TCustomForm; iEditStatus: Integer = iAddState); reintroduce;
ЮЮ (2004-12-09 07:07:00) [3]>Объявление Create отличается от предыдущего объявления...
А почему оно отличается? Если Create у наследника виртуальный, значит это ему зачем-то понадобилось. Значит и параметры у контсруктора объекта-потомка должны быть те же, что и предка.
iEditStatus можно или сделать свойством, которое устанавливать после созжания обекта или Написать ещё один конструктор, например,
constructor CreateWithStatus(Owner: TCustomForm; iEditStatus: Integer = iAddState);
и уже его использовать в своих целях.
З.Ы. Компонент, небось, был унаследован от TControl, но создается только в RunTime?