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

Вниз

Как передать в параметре имя класса?   Найти похожие ветки 

 
Ш-К   (2004-03-05 11:18) [0]

Чтобы было нечто подобное:

function TFrameList.Add(TClassType: T????): Integer;
begin
 result := TClassType.Create(self).SelfAdding;
end;

То есть я заранее не знаю тип объекта, который будет вызвать SelfAdding.


 
Тимохов ©   (2004-03-05 11:21) [1]

type
tobj = class
  constructor Create(aList: TFrameList); virtual;
  procedure selfadding;
end;
tcls = class of tobj;

function TFrameList.Add(aCls: TCls): Integer;
begin
result := aCls.Create(self).SelfAdding;
end;

использование
type
tobj1 = class(tobj);
fl: tframelist;
begin
....
fl.Add(tobj1);
...


 
Карелин Артем ©   (2004-03-05 11:22) [2]

function TFrameList.Add(Obj: TComponent): Integer;
begin
if Obj is TSomeComponent then Result:=TSomeComponent(Obj).SelfAdding;
if Obj is TOtherComponent then Result:=TOtherComponent(Obj).SelfAdding;
end;
Ну или пропиши метод в общем родителе.


 
Семен Сорокин ©   (2004-03-05 11:22) [3]

class of + F1


 
Ш-К   (2004-03-05 12:34) [4]

Спасибо


 
Юрий Зотов ©   (2004-03-05 13:06) [5]

> Карелин Артем ©   (05.03.04 11:22) [2]

А если таких вариантов 10 тыс.? И каждый день еще новые появляются? Не знаю, как Вы, а я бы поленился такой код и писать, и поддерживать.

> Ш-К   (05.03.04 11:18)  
См. [1] и [3].



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

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

Наверх




Память: 0.47 MB
Время: 0.05 c
8-1069321670
Arsenij
2003-11-20 12:47
2004.03.28
Адресация видеопамяти с использованием Директ Ыкс


1-1078898432
Николай
2004-03-10 09:00
2004.03.28
редактор Edit


1-1079044735
Kneaz
2004-03-12 01:38
2004.03.28
dobaviti svojstvo CheckBox v komponent TreeView


14-1077789105
_none_
2004-02-26 12:51
2004.03.28
метрополитен. правила.


14-1077810262
Домарощинер
2004-02-26 18:44
2004.03.28
HDD space