Главная страница
    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.045 c
1-1082200454
Alek_1
2004-04-17 15:14
2004.05.02
StringReplace


6-1078947690
3APA3A
2004-03-10 22:41
2004.05.02
Какими компонентами можно передать Stream


14-1081750751
dolmat
2004-04-12 10:19
2004.05.02
Linux or Windows?


6-1079071432
Ozone
2004-03-12 09:03
2004.05.02
Файл в сети


14-1081278369
Игорь Шевченко
2004-04-06 23:06
2004.05.02
Упражение из книжки Таненбаума (Современные операционные системы)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский