Форум: "Основная";
Текущий архив: 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