Главная страница
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.058 c
1-1080734556
SisiusP
2004-03-31 16:02
2004.04.18
Перехват ShortCut через ApplicationEvents?


3-1079438187
VolanD
2004-03-16 14:56
2004.04.18
Печать DBGrid а


9-1066765833
Dimanizm
2003-10-21 23:50
2004.04.18
GMS файлы


7-1077025317
L.evil
2004-02-17 16:41
2004.04.18
Как програмнов в XP изменить/добавить учётную запись


14-1080429285
VID
2004-03-28 03:14
2004.04.18
Какие стадии мастерства существуют ?