Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

Как узнать есть ли у объекта заданное property?   Найти похожие ветки 

 
Fighter ©   (2004-04-13 06:48) [0]

Как узнать есть ли у объекта заданное property?
можно конечно что то вроде этого:
try
 <Объект>.<заданное свойство>
 //свойство есть
except
 //свойства нет
end;
Но может есть более красивый и корректный вариант?


 
MBo ©   (2004-04-13 07:04) [1]

см. файл typinfo.pas


 
ЮЮ ©   (2004-04-13 08:35) [2]

try
<Объект>.<заданное свойство>
//свойство есть
except
//свойства нет
end;

Если у объекта нет такого св-ва, то и компилятор не пропустит. Так что в try except end надобности нет :-)


 
Игорь Шевченко ©   (2004-04-13 09:57) [3]

IsPublishedProp(ObjectInstance, "имя_свойства")


 
Fighter ©   (2004-04-13 11:13) [4]

Пробовал, но почему то функция возвращает False, хотя свойство точно есть (объявлено в public)!


 
han_malign ©   (2004-04-13 11:19) [5]

>(объявлено в public)
- а надо в published, читай Help


 
Fighter ©   (2004-04-13 11:44) [6]

Догодаться конечно не сложно, что нужно published из названия функции (IsPublishedProp)! Но мне надо именно из public!
Читать Help дело хорошее (периодически почитываю), но вот я не нашёл ни слова относительно IsPublishedProp! Мож плохо искал...


 
Sha ©   (2004-04-13 11:47) [7]

http://www.rsdn.ru/article/Delphi/makecomponents.xml


 
Sha ©   (2004-04-13 11:50) [8]

http://www.informit.com/articles/article.asp?p=28278


 
Fighter ©   (2004-04-13 12:47) [9]

Извините уважаемый Sha, но к чему эти ссылки? Там ничего относительно моего вопроса нет!
У кого-нить есть готовое решение моего вопроса?


 
Sha ©   (2004-04-13 13:32) [10]

DefineProperty("заданное свойство", nil, nil, false);
IsPublishedProp(Объект,"заданное свойство");


 
Polevi ©   (2004-04-13 13:41) [11]

перенеси св-ва в паблишед секцию класса наследника


 
Fighter ©   (2004-04-14 04:17) [12]

Друзья мои спасибо за ваше решение помочь, но это немного не мой случай...
Обрисую картинку поконкретнее.
Итак имеем фрейм, который будем использовать в нескольких формах. В некоторых формах есть свойство isProgress типа boolean. Задача состоит в том, чтобы передать в свойство (isProgress) формы, на которой лежит фрейм, значение из фрейма.


 
Sun bittern ©   (2004-04-14 06:30) [13]

Fighter ©   (14.04.04 04:17) [12]

Ответ уже данн Polevi ©   (13.04.04 13:41) [11]

RTTI не доступно для свойств объявленных в Public, необходимо данные свойства перенести в раздел Published. За подробностями на сайт Анатолия Подгоредского и качать книгу Тейксеро и Пачеко том второй.


 
Юрий Зотов ©   (2004-04-14 09:09) [14]

> Fighter ©   (14.04.04 04:17) [12]

Введите класс TProgressForm, сделайте в нем свойство isProgress и все формы, которые должны иметь такое свойство, порождайте от этого класса. Тогда все становится элементарно - во фрейме пишете:

if Owner is TProgressForm then
 TProgressForm(Owner).isProgress := Value;



Страницы: 1 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
7-1078808748
Shark
2004-03-09 08:05
2004.05.02
Delphi и SIEMENS S7


3-1081343562
wild_arg
2004-04-07 17:12
2004.05.02
Удаление записей из dbf


1-1081865761
Rusty
2004-04-13 18:16
2004.05.02
Как определить текущее состояние приложения?


11-1066225387
.::D.e.M.o.N.i.X::.
2003-10-15 17:43
2004.05.02
MpegAudio Tools


3-1081178589
Wolferio
2004-04-05 19:23
2004.05.02
Помогите разобраться