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

Вниз

Порядок чтения published свойств   Найти похожие ветки 

 
Mim   (2004-03-29 16:09) [0]

Привет. Как задать порядок чтения из ресурсов или dfm published свойств.
Например

tmydataset = class(tdataset)
...
published
 property tablename: string read ftablename write ftablename;
 property active;
end;

При чтении active вызывается setactive;
Так вот жутко хочется чтоб в при прихождении в setactive свойство ftablename было определено.

то есть свойство фсешму читалось опосля tablename;


 
Mim   (2004-03-29 16:11) [1]

Мда, отвратительно написал :(, извиняюсь.

ресурсов или dfm, published свойств.

то есть свойство active читалось опосля tablename;


 
Reindeer Moss Eater ©   (2004-03-29 16:13) [2]

Просто надо научиться проверять ComponentState при выполнении методов и не выполнять открытия если csLoading csReading etc


 
Reindeer Moss Eater ©   (2004-03-29 16:14) [3]

Либо тупо управлять чтением последовательностью обявления свойств


 
Mim   (2004-03-29 16:15) [4]

Почемуто у меня последвательность никак не влияет на это.


 
Reindeer Moss Eater ©   (2004-03-29 16:17) [5]

Потому что модуль компонента не перекомпилировал.


 
vuk ©   (2004-03-29 16:22) [6]

Еще до кучи стоит разобраться, зачем нужен метод Loaded.


 
Mim   (2004-03-29 16:33) [7]

vuk ©   (29.03.04 16:22) [6]

Спасибо. Loaded - то что нада :).

делаю так

procedure TCkgXMLDataSet.SetActive(Value: Boolean);
begin
 if csLoading in Componentstate then
   begin
     FLoadActive := Value;
     exit;
   end;
...
end;

procedure TCkgXMLDataSet.Loaded;
begin
 inherited;
 Active := FLoadActive;
end;


 
Mim   (2004-03-29 16:35) [8]

Reindeer Moss Eater ©   (29.03.04 16:17) [5]  

Думается тут дело в другом, или в следовании этих свойств внутри dfm файла, или в том что свойство active обьявлено в предке, или в прокладке между клавиатурой и монитором :). В любом случае проблемка решилась, спасибо за участие.


 
Юрий Зотов ©   (2004-03-29 16:49) [9]

> Mim   (29.03.04 16:35) [8]

Чтобы снять все вопросы. Свойства ЧИТАЮТСЯ в порядке их следования в DFM - то есть, в порядке записи. А ПИШУТСЯ они в таком порядке:
- сначала в порядке объявления в published (начиная с самого дальнего предка);
- затем в порядке следования в DefineProperties (если перекрыт).

Значит, в Вашем случае надо либо использовать Loaded, либо сделать Active свойством ПОТОМКА (добавив Get/Set) и объявить его ПОСЛЕ TableName. Еще вариант - добавить к Active атрибут stоred False и написать его сохранение в DefineProperties.


 
Mim   (2004-03-30 09:34) [10]

Юрий Зотов ©   (29.03.04 16:49) [9]

Большое спасибо. Приклоняюсь перед вашей эрудированостью.
(со всем уважением, так сказать :) )



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

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

Наверх




Память: 0.49 MB
Время: 0.112 c
6-1074854456
juiceman
2004-01-23 13:40
2004.04.18
what about Indy ?


8-1072123867
Bagzoid
2003-12-22 23:11
2004.04.18
Игровое поле TImage. Хочу поместить на нам фишку TImage.


3-1079955665
Voland777
2004-03-22 14:41
2004.04.18
.bmp --> image


3-1079876881
Anarki
2004-03-21 16:48
2004.04.18
QReport - как узнать общее число страниц?


1-1080638553
Basilio
2004-03-30 13:22
2004.04.18
Можно ли сохранять/загружать из файла множества? (set of ...)