unit ViewModel;
{$MODE ObjFpc}
{$H+}
interface
uses
Classes, SysUtils, Fgl, EasySqliteOrm,
(* project units *)
Model;
type
TPageHead = class(TBaseObject)
end;
TPageHeadList = class(specialize TFPGObjectList<TPageHead>, IObjectContainer)
public
procedure AddObject(AnObject: TObject);
end;
TChapterWithPages = class(TChapter)
private
FPageHeads: TPageHeadList;
public
constructor Create;
destructor Destroy; override;
public
property PageHeads: TPageHeadList read FPageHeads;
end;
TChapterWithPagesList = class(specialize TFPGObjectList<TChapterWithPages>, IObjectContainer)
public
procedure AddObject(AnObject: TObject);
end;
implementation
procedure TChapterWithPagesList.AddObject(AnObject: TObject);
begin
Self.Add(AnObject as TChapterWithPages);
end;
constructor TChapterWithPages.Create;
begin
inherited Create;
FPageHeads := TPageHeadList.Create(True);
end;
destructor TChapterWithPages.Destroy;
begin
FreeAndNil(FPageHeads);
inherited Destroy;
end;
procedure TPageHeadList.AddObject(AnObject: TObject);
begin
Self.Add(AnObject as TPageHead);
end;
end.