Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];

Вниз

Сохранение 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
3-11103
Ренат
2002-10-14 10:06
2002.11.04
Привелегии на всю базу


14-11488
Beginner-Designer
2002-10-16 20:37
2002.11.04
ПРо провайдеров, которые дают доступ через guest-guest


1-11251
Semion
2002-10-23 08:24
2002.11.04
Подскажите где найти


1-11284
nickolayLI
2002-10-23 12:20
2002.11.04
DrawGrid and ListView


3-11100
theEnter
2002-10-14 08:55
2002.11.04
Можно ли сделать SQL запрос внутри Дельфи к результатам запроса в





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский