Форум: "Компоненты";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
ВнизКоллекция после запуска пустая Найти похожие ветки
← →
Anatoly © (2004-12-15 19:45) [0]В designTime заполняю коллекцию элементами, а после запуска она оказывается пустой. Подскажите, пожалуйста, в чем дело. Кстати, если закрыть и открыть Delphi, то она опустошается и в DesignTime.
← →
Юрий Зотов © (2004-12-16 00:26) [1]Ответ простой - коллекция не сохраняется в DFM. А почему - это без кода не скажешь.
← →
Anatoly © (2004-12-16 11:12) [2]Вот код:
TQueryCollectionItem = class(TCollectionItem)
private
FQuery: TQuery;
FMasterQuery: TQuery;
FPK_FieldName: string;
FFK_MasterFieldName: string;
FQueryCaption: string;
procedure SetQuery(const Value: TQuery);
procedure SetMasterQuery(const Value: TQuery);
procedure SetFK_MasterFieldName(const Value: string);
procedure SetPK_FieldName(const Value: string);
procedure SetQueryCaption(const Value: string);
protected
function GetDisplayName: string; override;
published
property Query: TQuery read FQuery write SetQuery;
property QueryCaption: string read FQueryCaption write SetQueryCaption;
property MasterQuery: TQuery read FMasterQuery write SetMasterQuery;
property PK_FieldName: string read FPK_FieldName write SetPK_FieldName;
property FK_MasterFieldName: string read FFK_MasterFieldName write SetFK_MasterFieldName;
public
(*
type
TDriverNameProperty = class(TDBStringProperty)
public
procedure GetValueList(List: TStrings); override;
end;
procedure TDriverNameProperty.GetValueList(List: TStrings);
begin
(GetComponent(0) as TDatabase).Session.GetDriverNames(List);
end;
...
RegisterPropertyEditor(TypeInfo(string), TDatabase, "DriverName", TDriverNameProperty);
*)
end;
TQueryCollection = class (TCollection)
private
FOwner: TPersistent;
function GetItem(Index: Integer): TQueryCollectionItem;
procedure SetItem(Index: Integer; Value: TQueryCollectionItem);
protected
function GetOwner: TPersistent; override;
procedure Added(var Item: TCollectionItem); override;
public
constructor Create(Owner: TPersistent);
function Add: TQueryCollectionItem;
property Items[Index: Integer]: TQueryCollectionItem read GetItem write SetItem stored True; default;
end;
THReport = class (TComponent)
...
FQueryList: TQueryCollection;
constructor Create(AOwner: TComponent); override;
...
end;
...
constructor THReport.Create(AOwner: TComponent);
begin
...
FQueryList := TQueryCollection.Create(self);
end;
{ TQueryCollection }
function TQueryCollection.Add: TQueryCollectionItem;
begin
Result := TQueryCollectionItem(inherited Add);
end;
procedure TQueryCollection.Added(var Item: TCollectionItem);
begin
inherited Added(Item);
end;
constructor TQueryCollection.Create(Owner: TPersistent);
begin
FOwner := Owner;
inherited Create(TQueryCollectionItem);
end;
function TQueryCollection.GetItem(Index: Integer): TQueryCollectionItem;
begin
Result := TQueryCollectionItem(inherited GetItem(Index));
end;
function TQueryCollection.GetOwner: TPersistent;
begin
Result := FOwner;
end;
procedure TQueryCollection.SetItem(Index: Integer;
Value: TQueryCollectionItem);
begin
inherited SetItem(Index, TCollectionItem(Value));
end;
{ TQueryCollectionItem }
function TQueryCollectionItem.GetDisplayName: string;
begin
if FQuery <> nil then
begin
result := FQuery.Name;
if FQueryCaption <> "" then
result := FQueryCaption + "(" + result + ")";
end
else
result := inherited GetDisplayName;
end;
procedure TQueryCollectionItem.SetFK_MasterFieldName(const Value: string);
begin
FFK_MasterFieldName := Value;
end;
procedure TQueryCollectionItem.SetMasterQuery(const Value: TQuery);
begin
FMasterQuery := Value;
end;
procedure TQueryCollectionItem.SetPK_FieldName(const Value: string);
begin
FPK_FieldName := Value;
end;
procedure TQueryCollectionItem.SetQuery(const Value: TQuery);
begin
FQuery := Value;
end;
procedure TQueryCollectionItem.SetQueryCaption(const Value: string);
begin
FQueryCaption := Value;
end;
← →
Pentium133 © (2004-12-16 16:24) [3]используй TQueryCollection = class (TOwnedCollection)
← →
Anatoly © (2004-12-16 16:55) [4]Спасибо, все получилось
Страницы: 1 вся ветка
Форум: "Компоненты";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c