Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-1081969220
/\_A_M_E_P
2004-04-14 23:00
2004.05.02
Проблема при минимизации окна.


11-1065880939
Hamer1
2003-10-11 18:02
2004.05.02
Как экстрактировать Ресурс


14-1081857543
WELLiON
2004-04-13 15:59
2004.05.02
файл-менеджер


3-1081327000
YurikGl
2004-04-07 12:36
2004.05.02
DBExpres Открытие и закрытие соединения


8-1075134301
ST
2004-01-26 19:25
2004.05.02
FFT





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский