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