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

Вниз

Сохранение published-свойств в поток   Найти похожие ветки 

 
cult ©   (2002-10-25 15:30) [0]

Господа, вот такой вопрос:

есть ли в Дельфи штатная возможность НЕ сохранять одно или несколько Published-свойств в поток?
т.е. я хочу сохранять туда не полный их список, а за некоторым исключением.

Спасибо.


 
Skier ©   (2002-10-25 15:32) [1]

>cult
есть
например написать :
YourProperty : TYourType read...write...stored False


 
cult ©   (2002-10-25 15:35) [2]

так это Design-Time!
а мне надо писать компонент в поток во время выполнения, и при этом не писать туда некоторые из published-свойств, вот как стоит вопрос


 
Skier ©   (2002-10-25 15:39) [3]

>cult
А ты их пишешь разве не через TWriter ?!


 
Игорь Шевченко ©   (2002-10-25 15:39) [4]

Stored False;


 
cult ©   (2002-10-25 15:45) [5]

я, честно говоря, только начинаю заниматься проработкой вопроса.

т.е. вы мне предлагаете все Published - свойства объявить изначально со Stored:=false и потом в явном виде заставлять их записываться в поток?


 
Skier ©   (2002-10-25 15:48) [6]

>cult

> вы мне предлагаете все Published - свойства объявить изначально
> со Stored:=false


1) Не все, а только те, которые не нужно писать в поток
2) Не Stored:=false, а просто Stored False
(см. Skier © (25.10.02 15:32) и Игорь Шевченко ©
(25.10.02 15:39))



 
cult ©   (2002-10-25 15:55) [7]

т.е., если свойство объявлено со Stored True, то отменить его сохранение уже нельзя? :(


 
Skier ©   (2002-10-25 15:58) [8]

>cult
Можно.
Объяви свой потомок...


 
Skier ©   (2002-10-25 16:00) [9]

>cult
И поставь у нужного св-ва Stored False


 
cult ©   (2002-10-25 16:07) [10]

это все не совсем то, что надо...
Есть класс, в котором некоторые свойства объявлены Published именно и только для того, чтобы автоматически писаться в поток.

Однао обнаружилось, что в ряде случаев некоторые из этих Published-свойств не потребуются при последующем чтении, и писать их в поток не нужно. В-принципе, каждое свойство может оказаться таким "ненужным". Получается, что мне нужно делать Stored False для всех published-свойств, а потом, при записи, указывать, какие из них писать, а какие нет? Тогда пропадают все преимущества публикуемых свойств. Вот я и спрашиваю - а можно ли "на ходу" отменять эту "записываемость" для свойства?

Я еще не надоел? Тогда жду ответа :)
Спасибо.


 
reonid ©   (2002-10-25 16:16) [11]

Насколько я помню, в директиве stored можно указать функцию - соответственно, с её помощью можно управлять сохранением "на ходу".

Можно также написать вручную сохранение всех св-в -
но это геморройно, там слишком много всяких частных случаев.
(Хотя тоже ничего сверъестественного)


 
Юрий Зотов ©   (2002-10-25 16:17) [12]

Класс-предок:
published
property SomeProp.... // что угодно, это неважно
...

Ваш класс-потомок:
private
function IsSomePropStored: boolean;
...
published
property SomeProp stored IsSomePropStored;
...

function ...IsSomePropStored: boolean;
begin
Result := csDesigning in ComponentState // и что угодно еще
end;

После этого в run-time можно использовать стандартное сохранение компонента в поток и свойство сохраняться не будет. В design-time все останется по-прежнему.


 
cult ©   (2002-10-25 16:25) [13]

reonid , Юрий Зотов:

похоже, это именно то, что я искал. Если stored действительно может быть не константой, а процедурой, то проблема решена. Буду пробовать, спасибо.

skier:

без Вас диалог бы не состоялся :) Спасибо.



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

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

Наверх




Память: 0.49 MB
Время: 0.032 c
1-11244
pirat
2002-10-25 14:37
2002.11.04
Про бинарники делфи


1-11271
Lizard
2002-10-22 13:44
2002.11.04
Почему не работает ? Программа вроде WipeInfo от Нортона.


14-11425
Sergo
2002-10-15 10:59
2002.11.04
QNX


1-11328
CrowD
2002-10-24 09:43
2002.11.04
Удаление переменных и обращение к классу из функции этого класса?


6-11377
Grande
2002-08-30 12:24
2002.11.04
Как прослушать порт?