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

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

Оператор IS... [D4]


KarlovAF ©   (2002-04-01 14:29:00) 

Как сделать функцию которая работала бы как оператор "is", но передавать ей
объект, который нужно проверить и ИМЯ КЛАССА, принадлежность объекта к
которому нужно проверить.


Набережных С.   (2002-04-01 18:35:00) [1]


> Shaman_Naydak © (01.04.02 18:29)

Согласен, поспешил.


Shaman_Naydak   (2002-04-01 18:29:00) [2]

>> Набережных С. Это не совсем оператор is. Ф-ция вернет False, если передать имя класса предка..
Вот такой вариант будет покорректнее
function __is(Obj: TObject; const ClassName: string): Boolean;
var Cl: TClass;
begin
Cl:=Obj.ClassType;
Result:=True;
while Cl <> nil do
begin
if Cl.ClassNameIs(ClassName) then exit;
Cl:=Cl.ClassParent;
end;
Result:=False;
end;


Набережных С.   (2002-04-01 18:18:00) [3]

function __is(a: TObject; b: string): boolean;
begin
Result := a.ClassName = b;
end;


Виктор Щербаков   (2002-04-01 14:42:00) [4]

function __is(a: TObject; b: TClass): boolean;
begin
Result := a is b;
end;


MBo   (2002-04-01 14:39:00) [5]

казалось бы, Is это и делает
if Sender is TEdit then ...


Наверх

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