Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизКак узнать есть ли у объекта заданное 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.031 c