⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 databindingobjs.pas

📁 Delphi XML & XPATH源代码
💻 PAS
📖 第 1 页 / 共 3 页
字号:

  TXMLCinemaType = class(TXMLNode, IXMLCinemaType)
  protected
    { IXMLCinemaType }
    function GetId: WideString;
    function GetLogoUrl: WideString;
    function GetUrl: WideString;
    function GetName: WideString;
    function GetPhone: WideString;
    function GetAddress: WideString;
    function GetDirections: WideString;
    function GetFacilities: IXMLFacilitiesType;
    function GetPricing: IXMLPricingType;
    procedure SetId(Value: WideString);
    procedure SetLogoUrl(Value: WideString);
    procedure SetUrl(Value: WideString);
    procedure SetName(Value: WideString);
    procedure SetPhone(Value: WideString);
    procedure SetAddress(Value: WideString);
    procedure SetDirections(Value: WideString);
  public
    procedure AfterConstruction; override;
  end;

{ TXMLFacilitiesType }

  TXMLFacilitiesType = class(TXMLNode, IXMLFacilitiesType)
  protected
    { IXMLFacilitiesType }
    function GetCandyBar: Boolean;
    function GetDisabledAccess: Boolean;
    procedure SetCandyBar(Value: Boolean);
    procedure SetDisabledAccess(Value: Boolean);
  end;

{ TXMLPricingType }

  TXMLPricingType = class(TXMLNodeCollection, IXMLPricingType)
  protected
    { IXMLPricingType }
    function GetPrices(Index: Integer): IXMLPricesType;
    function Add: IXMLPricesType;
    function Insert(const Index: Integer): IXMLPricesType;
  public
    procedure AfterConstruction; override;
  end;

{ TXMLPricesType }

  TXMLPricesType = class(TXMLNode, IXMLPricesType)
  protected
    { IXMLPricesType }
    function GetId: WideString;
    function GetName: WideString;
    function GetPeriod: WideString;
    function GetAdult: Double;
    function GetChild: Double;
    function GetDiscount: Double;
    procedure SetId(Value: WideString);
    procedure SetName(Value: WideString);
    procedure SetPeriod(Value: WideString);
    procedure SetAdult(Value: Double);
    procedure SetChild(Value: Double);
    procedure SetDiscount(Value: Double);
  end;

{ TXMLScreeningsType }

  TXMLScreeningsType = class(TXMLNodeCollection, IXMLScreeningsType)
  protected
    { IXMLScreeningsType }
    function GetScreening(Index: Integer): IXMLScreeningType;
    function Add: IXMLScreeningType;
    function Insert(const Index: Integer): IXMLScreeningType;
  public
    procedure AfterConstruction; override;
  end;

{ TXMLScreeningType }

  TXMLScreeningType = class(TXMLNode, IXMLScreeningType)
  protected
    { IXMLScreeningType }
    function GetMovieId: WideString;
    function GetCinemaId: WideString;
    function GetStartDate: TDateTime;
    function GetEndDate: TDateTime;
    function GetFeatures: IXMLFeaturesType;
    function GetRestrictions: IXMLRestrictionsType;
    function GetSessions: IXMLSessionsType;
    procedure SetMovieId(Value: WideString);
    procedure SetCinemaId(Value: WideString);
    procedure SetStartDate(Value: TDateTime);
    procedure SetEndDate(Value: TDateTime);
  public
    procedure AfterConstruction; override;
  end;

{ TXMLFeaturesType }

  TXMLFeaturesType = class(TXMLNode, IXMLFeaturesType)
  protected
    { IXMLFeaturesType }
    function GetDigitalSound: WideString;
    procedure SetDigitalSound(Value: WideString);
  end;

{ TXMLRestrictionsType }

  TXMLRestrictionsType = class(TXMLNode, IXMLRestrictionsType)
  protected
    { IXMLRestrictionsType }
    function GetNoPasses: Boolean;
    procedure SetNoPasses(Value: Boolean);
  end;

{ TXMLSessionsType }

  TXMLSessionsType = class(TXMLNodeCollection, IXMLSessionsType)
  protected
    { IXMLSessionsType }
    function GetSession(Index: Integer): IXMLSessionType;
    function Add: IXMLSessionType;
    function Insert(const Index: Integer): IXMLSessionType;
  public
    procedure AfterConstruction; override;
  end;

{ TXMLSessionType }

  TXMLSessionType = class(TXMLNode, IXMLSessionType)
  protected
    { IXMLSessionType }
    function GetPriceId: WideString;
    procedure SetPriceId(Value: WideString);
    function GetTime: TDateTime;          // KW
    procedure SetTime(Value: TDateTime);  // KW
  end;

{ Global Functions }

function GetMovieWatcher(Doc: IXMLDocument): IXMLMovieWatcherType;
function LoadMovieWatcher(const FileName: WideString): IXMLMovieWatcherType;
function NewMovieWatcher: IXMLMovieWatcherType;

implementation

{ Global Functions }

function GetMovieWatcher(Doc: IXMLDocument): IXMLMovieWatcherType;
begin
  Result := Doc.GetDocBinding('movie-watcher', TXMLMovieWatcherType) as IXMLMovieWatcherType;
end;

function LoadMovieWatcher(const FileName: WideString): IXMLMovieWatcherType;
begin
  Result := LoadXMLDocument(FileName).GetDocBinding('movie-watcher', TXMLMovieWatcherType) as IXMLMovieWatcherType;
end;

function NewMovieWatcher: IXMLMovieWatcherType;
begin
  Result := NewXMLDocument.GetDocBinding('movie-watcher', TXMLMovieWatcherType) as IXMLMovieWatcherType;
end;

{ TXMLMovieWatcherType }

procedure TXMLMovieWatcherType.AfterConstruction;
begin
  RegisterChildNode('movies', TXMLMoviesType);
  RegisterChildNode('cinemas', TXMLCinemasType);
  RegisterChildNode('screenings', TXMLScreeningsType);
  inherited;
end;

function TXMLMovieWatcherType.GetMovies: IXMLMoviesType;
begin
  Result := ChildNodes['movies'] as IXMLMoviesType;
end;

function TXMLMovieWatcherType.GetCinemas: IXMLCinemasType;
begin
  Result := ChildNodes['cinemas'] as IXMLCinemasType;
end;

function TXMLMovieWatcherType.GetScreenings: IXMLScreeningsType;
begin
  Result := ChildNodes['screenings'] as IXMLScreeningsType;
end;

{ TXMLMoviesType }

procedure TXMLMoviesType.AfterConstruction;
begin
  RegisterChildNode('movie', TXMLMovieType);
  ItemTag := 'movie';
  ItemInterface := IXMLMovieType;
  inherited;
end;

function TXMLMoviesType.GetMovie(Index: Integer): IXMLMovieType;
begin
  Result := List[Index] as IXMLMovieType;
end;

function TXMLMoviesType.Add: IXMLMovieType;
begin
  Result := AddItem(-1) as IXMLMovieType;
end;

function TXMLMoviesType.Insert(const Index: Integer): IXMLMovieType;
begin
  Result := AddItem(Index) as IXMLMovieType;
end;


{ TXMLMovieType }

procedure TXMLMovieType.AfterConstruction;
begin
  RegisterChildNode('starring', TXMLStarringType);
  inherited;
end;

function TXMLMovieType.GetId: WideString;
begin
  Result := AttributeNodes['id'].Text;
end;

procedure TXMLMovieType.SetId(Value: WideString);
begin
  SetAttribute('id', Value);
end;

function TXMLMovieType.GetRating: WideString;
begin
  Result := AttributeNodes['rating'].Text;
end;

procedure TXMLMovieType.SetRating(Value: WideString);
begin
  SetAttribute('rating', Value);
end;

function TXMLMovieType.GetLogoUrl: WideString;
begin
  Result := AttributeNodes['logo-url'].Text;
end;

procedure TXMLMovieType.SetLogoUrl(Value: WideString);
begin
  SetAttribute('logo-url', Value);
end;

function TXMLMovieType.GetUrl: WideString;
begin
  Result := AttributeNodes['url'].Text;
end;

procedure TXMLMovieType.SetUrl(Value: WideString);
begin
  SetAttribute('url', Value);
end;

function TXMLMovieType.GetName: WideString;
begin
  Result := ChildNodes['name'].Text;
end;

procedure TXMLMovieType.SetName(Value: WideString);
begin
  ChildNodes['name'].NodeValue := Value;
end;

function TXMLMovieType.GetLength: Integer;
begin
  Result := ChildNodes['length'].NodeValue;
end;

procedure TXMLMovieType.SetLength(Value: Integer);
begin
  ChildNodes['length'].NodeValue := Value;
end;

function TXMLMovieType.GetDirector: WideString;
begin
  Result := ChildNodes['director'].Text;
end;

procedure TXMLMovieType.SetDirector(Value: WideString);
begin
  ChildNodes['director'].NodeValue := Value;
end;

function TXMLMovieType.GetStarring: IXMLStarringType;
begin
  Result := ChildNodes['starring'] as IXMLStarringType;
end;

function TXMLMovieType.GetSynopsis: WideString;
begin
  Result := ChildNodes['synopsis'].Text;
end;

procedure TXMLMovieType.SetSynopsis(Value: WideString);
begin
  ChildNodes['synopsis'].NodeValue := Value;
end;

{ TXMLStarringType }

procedure TXMLStarringType.AfterConstruction;
begin
  ItemTag := 'star';
  ItemInterface := IXMLNode;
  inherited;
end;

function TXMLStarringType.GetStar(Index: Integer): WideString;
begin
  Result := ChildNodes[Index].Text;  // KW
end;

function TXMLStarringType.Add(const Star: WideString): IXMLNode;
begin
  Result := AddItem(-1);
  Result.NodeValue := Star;
end;


function TXMLStarringType.Insert(const Index: Integer; const Star: WideString): IXMLNode;
begin
  Result := AddItem(Index);
  Result.NodeValue := Star;
end;



{ TXMLCinemasType }

procedure TXMLCinemasType.AfterConstruction;
begin
  RegisterChildNode('cinema', TXMLCinemaType);
  ItemTag := 'cinema';
  ItemInterface := IXMLCinemaType;
  inherited;
end;

function TXMLCinemasType.GetCinema(Index: Integer): IXMLCinemaType;
begin
  Result := List[Index] as IXMLCinemaType;
end;

function TXMLCinemasType.Add: IXMLCinemaType;
begin
  Result := AddItem(-1) as IXMLCinemaType;
end;

function TXMLCinemasType.Insert(const Index: Integer): IXMLCinemaType;
begin
  Result := AddItem(Index) as IXMLCinemaType;
end;


{ TXMLCinemaType }

procedure TXMLCinemaType.AfterConstruction;
begin
  RegisterChildNode('facilities', TXMLFacilitiesType);
  RegisterChildNode('pricing', TXMLPricingType);
  inherited;
end;

function TXMLCinemaType.GetId: WideString;
begin
  Result := AttributeNodes['id'].Text;
end;

procedure TXMLCinemaType.SetId(Value: WideString);
begin
  SetAttribute('id', Value);
end;

function TXMLCinemaType.GetLogoUrl: WideString;
begin

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -