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

Вниз

не сохраняет чайлдов компонента в файл. почему?   Найти похожие ветки 

 
AlexT1000   (2002-11-14 13:44) [0]

Есть компонент .
TActionCollection = class (TComponent)
procedure Execute;
end;
В процессе работы в него добавляются компоненты

ActionCollection.InsertComponent(Component);

потом пытаюсь сохранить ActionCollection в файл .

S := ComponentToString(ActionCollection);
FAction.Write(s[1],Length(S));

в файле action.act только это.
object TActionCollection
end

а его дети не сохранились в файл. почему? ПОМОГИТЕ!

если сохранять в файл отдельно детей то все нормально
например

object TGammaAction
ID = 0
CanUndo = True
CanAction = True
State = 0
Gamma = 200
end
object TChannelSwapAction
ID = 0
CanUndo = True
CanAction = True
State = 0
SwapType = stGBR
end


 
AlexT1000   (2002-11-14 14:29) [1]

Пацаны, думаем!
Почему форма может сохранить все свои компоненты , а компонент вот несохряняет объекты , а сохраняет тольк опроперти. как то побороть!?


 
KoluChi   (2002-11-14 14:38) [2]

ComponentToString использует ObjectBinaryToText, который обрабатывает один объект. Компоненты TActionCollection - это другие объекты, поэтому и не сохраняет.


 
KoluChi   (2002-11-14 14:42) [3]

Call ReadComponentResFile to create a component and its children from their representation in a Windows resource file. Use WriteComponentResFile to save the component specified by the Instance parameter to the specified file, storing it in a Windows resource-file format.


 
AlexT1000   (2002-11-14 15:40) [4]

Ты неправ.
Я вызываю ComponentToString для формы и он сохряняет
все компоненты, которые принадлежат форме .


 
KoluChi   (2002-11-14 15:56) [5]

>Я вызываю ComponentToString для формы и он сохряняет
>все компоненты, которые принадлежат форме .
Ты не понял. А дочерние формы сохраняет? :)
Компоненты действительно принадлежат форме, они ее часть.
Вот если бы
TActionCollection=class(TComponent)
GammaAction: TGammaAction;
ChannelSwapAction: TChannelSwapAction;
end;

тогда другое дело, а это отдельные объекты.
Теперь понятно? :)


 
AlexT1000   (2002-11-14 16:08) [6]

я тоже так думал и поэтому в этот класс вставил

TActionCollection=class(TComponent)
Image: TImage;
end;

но он его фиг сохранил!



 
AlexT1000   (2002-11-14 16:12) [7]

Image естественно создал в конструкторе TActionCollection




 
KoluChi   (2002-11-14 16:25) [8]

Странно :(


 
AlexT1000   (2002-11-14 16:44) [9]

так отож!


 
KoluChi   (2002-11-14 16:46) [10]

В общем в чем-то я не прав, согласен. Действительно ObjectBinaryToText сохраняет только свойства. В чем-то есть существенная разница между TForm и TComponent (понятно, что потомок), что-то связанное с ресурсами. Но муза пока не пришла.


 
KoluChi   (2002-11-14 16:53) [11]

А что ReadComponentResFile, WriteComponentResFile не подходят?


 
AlexT1000   (2002-11-14 16:58) [12]

неа. не подходят.
я уже обошелся . сам сохраняю в ини файл все проперти объектов .
мне так удобней


 
Юрий Зотов   (2002-11-14 17:50) [13]

Посмотрите:

1. DefineProperties - позволяет сохранять что угодно и как угодно.

2. Read/Write RootComponent(Res) - позволяет сохранять компонент вместе с его Components.



 
AlexT1000   (2002-11-14 18:34) [14]

я уже смотрел. в лом писать.
как-то же форма сохряняет таки свои компоненты блин!


 
reonid   (2002-11-14 20:30) [15]

Попробуй переопределить TActionCollection.GetChildren



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

Форум: "Основная";
Текущий архив: 2002.11.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
1-82722
Bratva
2002-11-12 20:08
2002.11.25
Получить выделнную строку в ListBox


3-82665
kern
2002-11-06 12:21
2002.11.25
SQL


3-82613
Ryser
2002-11-05 13:37
2002.11.25
Как обновить TQuery не потеряв при этом текущей записи


1-82772
Comp
2002-11-15 12:47
2002.11.25
Assambler


14-82979
DeMoN-777
2002-11-07 04:45
2002.11.25
Бобровский





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский