![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как проверить, экземпляром какого класса является элемент TList? [D7, WinXP]
Aleksandr. © (2004-06-17 14:32:00)В экземпляре TList элементы могут быть разных пользовательских классов, наследников TObject. Как при обращении к элементу TList узнать, какого он класса?
Amoeba (2004-06-18 12:01:00) [1]Да!!! Объявлять как class (TObject)необходимости нет.
Aleksandr. (2004-06-18 11:57:00) [2]Спасибо за консультации. Тогда истчо вопрос: является ли для компилятора очевидным, что все объекты, объявленные как
type
TObject1 = class
A : integer;
B : integer;
...
end;
TObject2 = class
C : string;
D : integer;
...
end;
являются потомками TObject? Или их надо объявлять для этого как class (TObject)?
Тимохов (2004-06-17 17:19:00) [3]
> наследовались
имхо реализовывали.
Dolphin1 (2004-06-17 16:55:00) [4]ClassName - возвращает строку с именм класса
а is - не очень хорошб лучше проверять на InheritsFrom()
И если в одном списке лежат обьекты разных пользовательских классов то лучше чтобы все они наследовались от одного интерфейса
icWasya (2004-06-17 16:47:00) [5]лучше используй TObjectList
Тимохов (2004-06-17 14:38:00) [6]l: tlist;
...
if tobject(l[i]) is TYuorClass then ...
ЗЫ надо быть уверенным, что в l лежат именно потомки tobject, а не ссылка например на записи. Иначе будет швах.
Романов Р.В. (2004-06-17 14:38:00) [7]F1 - TObject.ClassName, TObject.ClassType
default (2004-06-17 14:35:00) [8]через оператор is, ClassName...