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

Вниз

Невизуальные компоненты внутри другого невизуального компонента   Найти похожие ветки 

 
Deep ©   (2004-12-14 21:00) [0]

сделал сабж,
проблема в том, что не сохраняются свойства вложенных невизуальных компонентов выставленные в дизайнере. Т.е. авыставил свойства, сохранил, вышел. Захожу - свойства имеют значения по умолчанию.


 
vuk ©   (2004-12-14 21:08) [1]

Вложенные каким образом? SetSubComponent? Или что?


 
Deep ©   (2004-12-14 21:15) [2]

TdbxDataSource = class(TDataSource)
 private
   { Private declarations }
   FClientDataSet: TClientDataSet;
   FDataSetProvider: TDataSetProvider;
   FSQLDataSet: TSQLDataSet;
   //procedure SetClientDataSet(Value: TClientDataSet);
   //procedure SetDataSetProvider(Value: TDataSetProvider);
   //procedure SetSQLDataSet(Value: TSQLDataSet);
 protected
   { Protected declarations }
 public
   { Public declarations }
   constructor Create(AOwner: TComponent); override;
   destructor Destroy; override;
 published
   { Published declarations }
   property ClientDataSet: TClientDataSet read FClientDataSet;// write SetClientDataSet;
   property DataSetProvider: TDataSetProvider read FDataSetProvider; // write SetDataSetProvider;
   property SQLDataSet: TSQLDataSet read FSQLDataSet; // write SetSQLDataSet;
 end;

constructor TdbxDataSource.Create(AOwner: TComponent);
begin
 inherited;
 FSQLDataSet := TSQLDataSet.Create(self);
 FSQLDataSet.Name := "SQLDataSet";

 FDataSetProvider := TDataSetProvider.Create(self);
 FDataSetProvider.DataSet := SQLDataSet;
 FDataSetProvider.Name := "DataSetProvider";

 FClientDataSet := TClientDataSet.Create(self);
 FClientDataSet.Name := "ClientDataSet";
 FClientDataSet.ProviderName := FDataSetProvider.Name;

 //настроим наш DataSource
 Dataset := ClientDataSet;
end;

destructor TdbxDataSource.Destroy;
begin
 if FClientDataSet.Active then
   FClientDataSet.Close;

 FClientDataSet.Free;
 FDataSetProvider.Free;
 FSQLDataSet.Free;
 inherited;
end;


 
vuk ©   (2004-12-14 21:27) [3]

Чтобы свойства сохранялись, для всех вложенных компонентов нужно вызывать SetSubComponent(true)


 
DiamondShark ©   (2004-12-14 21:31) [4]


> vuk ©   (14.12.04 21:27) [3]

Хм... А это для какой версии?
В 5 такого нету.


 
Deep ©   (2004-12-14 21:33) [5]

>>>vuk ©
сенкс, сделал. работает. :))

constructor TdbxDataSource.Create(AOwner: TComponent);
begin
 inherited;
 FSQLDataSet := TSQLDataSet.Create(self);
 FSQLDataSet.Name := "SQLDataSet";
 FSQLDataSet.SetSubComponent(true);

 FDataSetProvider := TDataSetProvider.Create(self);
 FDataSetProvider.DataSet := SQLDataSet;
 FDataSetProvider.Name := "DataSetProvider";
 FDataSetProvider.SetSubComponent(true);

 FClientDataSet := TClientDataSet.Create(self);
 FClientDataSet.Name := "ClientDataSet";
 FClientDataSet.ProviderName := FDataSetProvider.Name;
 FClientDataSet.SetSubComponent(true);

 //настроим наш DataSource
 Dataset := ClientDataSet;
end;


 
vuk ©   (2004-12-14 21:35) [6]

to DiamondShark ©   (14.12.04 21:31) [4]:
>Хм... А это для какой версии?
>В 5 такого нету.
С 6-ки начиная.


 
DiamondShark ©   (2004-12-14 22:40) [7]

Посмотрел в 5 реализацию TReader/TWriter.
Жестко прописано по типам свойств: если TComponent -- писать ссылку (путь).
Абыдна, да.


 
vuk ©   (2004-12-14 22:44) [8]

В 5-ке, можно попробовать ручками сохранять свойства в бинарный поток. Потом ручками же и загружать.


 
Юрий Зотов ©   (2004-12-15 11:33) [9]

> DiamondShark ©   (14.12.04 22:40) [7]

Разруливается через DefineProperties.



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

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

Наверх




Память: 0.49 MB
Время: 0.034 c
2-1127331630
highlander
2005-09-21 23:40
2005.10.16
Как правильно организовать поиск в таблице в приложении


14-1127469588
ilya39
2005-09-23 13:59
2005.10.16
VS .Net 2002


11-1108469818
NorthMan
2005-02-15 15:16
2005.10.16
KOLClasses...


14-1127394433
Narik
2005-09-22 17:07
2005.10.16
дата время и тд из FileListBox и DirectoryListBox


14-1127846871
syte_ser78
2005-09-27 22:47
2005.10.16
Посоветуйте программу.