Форум: "Основная";
Текущий архив: 2004.02.17;
Скачать: [xml.tar.bz2];
ВнизЕсть ли возможнось узнать есть ли у класса A public-свойство B? Найти похожие ветки
← →
Эдуард (2004-02-08 16:26) [0]Господа мастера, собственно сабж...
Естественно сабж нужен в runtime. Более того,
известно в класс А имеет свойство B в секции protected, т.о.
наследник A может его иметь или не иметь.
Пример -
A : TWinControl; // TWinControl has protected OnEnter event
...
A := TCustomEdit.Create(...); // OnEnter also protected
A := TEdit.Create(...); // OnEnter is public!
Заранее спасибо!
← →
MBo (2004-02-08 16:38) [1]только для published.
← →
Palladin (2004-02-08 16:44) [2]
> := TEdit.Create(...); // OnEnter is public!
не public, а published
смотри файл %Delphi%\Source\RTL\Common\TypInfo.pas
← →
Юрий Федоров (2004-02-08 16:52) [3]К protected свойству можно получить доступ
то есть, если класс А имеет это свойство, любой потомок также будет его иметь.
А в какой именно секции - не так важно
← →
Эдуард (2004-02-08 17:16) [4]to Юрий Федоров
как получить тогда доступ к protected-свойству потомка A?
напр. А is TCustomEdit, тогда A.OnEnter - не сработает...
← →
Amoeba (2004-02-09 14:22) [5]
> как получить тогда доступ к protected-свойству потомка
На прошлой неделе это уже обсудалось в форуме.
← →
Тимохов (2004-02-09 14:33) [6]
> Эдуард (08.02.04 17:16) [4]
Можно так.
unit 1;
interface
type
tprotected = class
protected i: integer;
end;
implementation
end.
unit 2
interface
type
tprotected2 = class(tprotected1);
procedure A(v: tprotected);
implementation
procedure A(v: tprotected);
begin
v.i := 2; // так будет ошибка
tprotected2(v).i := 2; // а так, нет
end;
end.
← →
Тимохов (2004-02-09 14:34) [7]гnit 2
interface
type
tprotected2 = class(tprotected);
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.17;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c