Главная страница
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.045 c
14-1080109453
Dmitriy O.
2004-03-24 09:24
2004.04.18
Спам или не спам ?


14-1079637216
RealRascal
2004-03-18 22:13
2004.04.18
Опять про моргание мониторов


9-1066084648
yu-roman
2003-10-14 02:37
2004.04.18
как делать игру :)


7-1076701580
Khabibulin
2004-02-13 22:46
2004.04.18
Спящий режим


1-1080710558
Stas
2004-03-31 09:22
2004.04.18
MDI форма в DLL