![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Виртуальный конструктор Create класса TComponent
McSSN © (2006-08-02 13:11:00)Для чего классу TComponent Виртуальныйконструктор.
Т.е. существует ли для этого практическое применение ?
Суслик (2006-08-04 00:24:00) [21]
> все, что видно на палитре компонентов в делфи - это следствие
> виртуальности конструктора TComponent
это следствие полиморфного инстанцирования, а вирт. констр. - это лишь одно из средств этого.
Юрий Зотов (2006-08-02 15:34:00) [22]> McSSN (02.08.06 13:24) [6]
Естественно. Они и имеют одинаковый вид, объявленный в классе TComponent. Если нужен другой вид, можно объявить новый виртуальный конструктор и метакласс (по типу TComponentClass).
McSSN (2006-08-02 13:31:00) [23]Спасибо.
McSSN (2006-08-02 13:24:00) [24]Наверное, для того, чтобы это было возможно использовать, конструкторы классов должны иметь одинаковый вид?
umbra (2006-08-02 13:21:00) [25]
> существует ли для этого практическое применение ?
>
все, что видно на палитре компонентов в делфи - это следствие виртуальности конструктораTComponent
Юрий Зотов (2006-08-02 13:20:00) [26]Дополнение насчет использования. Этот механизм используется, например, в самой VCL. Никто не мешает использовать его и нам тоже. Иногда это бывает нужно.
McSSN (2006-08-02 13:18:00) [27]Не то чтобы удивление. Допускаю, что могу что-то не знать или не понимать.
Юрий Зотов (2006-08-02 13:18:00) [28]> McSSN (02.08.06 13:11)
function CreateComponent(AClass: TComponentClass; AOwner: TComponent): TComponent;
begin
Result := AClass.Create(AOwner)
end;
Джо (2006-08-02 13:12:00) [29]А что вызывает удивление? Наличие виртуальных конструкторов вообще или наличие его у TComponent?