Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как проверить, экземпляром какого класса является элемент 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...


Наверх

Титульная страница Поиск, карта сайта Написать письмо