Главная страница
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.054 c
7-1076590661
Davey
2004-02-12 15:57
2004.04.18
Где найти WMI SDK


8-1072338923
olookin
2003-12-25 10:55
2004.04.18
Слушать музыку через удаленный Винамп


3-1079721558
Elast
2004-03-19 21:39
2004.04.18
Дата для IB


1-1080732957
Borealis
2004-03-31 15:35
2004.04.18
MDIChild в DLL


7-1076972335
ripp
2004-02-17 01:58
2004.04.18
Надо мониторить передачу COM port.