Форум: "Основная";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];
ВнизСоответствие классов Найти похожие ветки
← →
Unknown user © (2004-12-02 19:33) [0]МАстера подскажите как проверить что переменная Cls:TClass, имеет тип TItemClass=class of TItem?
← →
Суслик © (2004-12-02 19:35) [1]inheritsfrom
← →
Суслик © (2004-12-02 19:36) [2]или на равенство, если нужно точное условие
← →
Unknown user © (2004-12-02 19:41) [3]Cls.inheritsfrom(TItemClass) -ошибка компиляции
Cls=TItemClass -тоже. Сравнивать надо именно переменную типа TClass не имеет ли она тип TItemClass. Как?
← →
Суслик © (2004-12-02 19:42) [4]
> [3] Unknown user © (02.12.04 19:41)
ищи ошибку - я тебе все верно сказал
← →
Суслик © (2004-12-02 19:45) [5]
> Cls.inheritsfrom(TItem) -
тебе нужно это
← →
Юрий Зотов © (2004-12-02 23:47) [6]> Unknown user © (02.12.04 19:41) [3]
InheritsFrom.
Ошибка компиляции связана с чем-то другим, не с этим. И что за ошибка - разве у нее нет текста?
← →
Игорь Шевченко © (2004-12-03 01:00) [7]Если нужно точное сравнение, то можно попробовать
function IsItemClass (const Value: TClass): Boolean;
begin
Result := Value.ClassInfo = TItemClass.ClassInfo;
end;
Если же допустимы и наследники, то InheritsFrom
← →
VMcL © (2004-12-03 07:19) [8]>>Игорь Шевченко © (03.12.04 01:00) [7]
ИМХО, лучше так:function IsItemClass (const Value: TClass): Boolean;
begin
Result := (Value <> nil) and (Value.ClassInfo = TItemClass.ClassInfo);
end;
P.S. $BOOLEVAL, конечно, OFF.
← →
Unknown user © (2004-12-03 10:38) [9]Спасибо всем, как всегда не углядел.
← →
Игорь Шевченко © (2004-12-03 23:54) [10]VMcL © (03.12.04 07:19) [8]
Лучше :) А еще лучше сравнивать ClassName, что в общем-то довольно очевидно. Вредно по ночам советы давать.
С уважением,
← →
VMcL © (2004-12-04 13:51) [11]>>Игорь Шевченко © (03.12.04 23:54) [10]
:-)
← →
jack128 © (2004-12-04 17:39) [12]Игорь Шевченко © (03.12.04 23:54) [10]
А еще лучше сравнивать ClassName
разве равенство ClassName гарантирует что это один и тот же класс? Могут существовать одноименные классы объвленные в разных модулях.
← →
Игорь Шевченко © (2004-12-04 22:38) [13]jack128 © (04.12.04 17:39) [12]
Да, безусловно могут. Ошибся я, спасибо. Значит, остается ClassType для строгого сравнения.
При должной иерархии, кстати, сравнение по имени класса является довольно удобным средством не упоминать ненужные unit"ы в списке uses.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.036 c