Форум: "Компоненты";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
ВнизНевизуальные компоненты внутри другого невизуального компонента Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.043 c