123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- unit ProjGatherProperties;
- interface
- uses
- Classes, ZhAPI;
- type
- TProjGatherProperty = class
- private
- FName: string;
- FValue: string;
- public
- constructor Create(const AName: string);
- destructor Destroy; override;
- property Name: string read FName write FName;
- property Value: string read FValue write FValue;
- end;
- TProjGatherProperties = class
- private
- FList: TList;
- function FindProjGatherProperty(const AName: string): TProjGatherProperty;
- function AddProjGatherProperty(const AName: string): TProjGatherProperty;
- function GetCount: Integer;
- function GetPgPropperty(AIndex: Integer): TProjGatherProperty;
- public
- constructor Create;
- destructor Destroy; override;
- function GetProjGatherProperty(const AName: string): TProjGatherProperty;
- property Count: Integer read GetCount;
- property PgProperty[AIndex: Integer]: TProjGatherProperty read GetPgPropperty;
- end;
- implementation
- uses SysUtils;
- { TProjGatherProperty }
- constructor TProjGatherProperty.Create(const AName: string);
- begin
- FName := AName;
- end;
- destructor TProjGatherProperty.Destroy;
- begin
- inherited;
- end;
- { TProjGatherProperties }
- function TProjGatherProperties.AddProjGatherProperty(
- const AName: string): TProjGatherProperty;
- begin
- Result := TProjGatherProperty.Create(AName);
- FList.Add(Result);
- end;
- constructor TProjGatherProperties.Create;
- begin
- FList := TList.Create;
- end;
- destructor TProjGatherProperties.Destroy;
- begin
- ClearObjects(FList);
- FList.Free;
- inherited;
- end;
- function TProjGatherProperties.FindProjGatherProperty(
- const AName: string): TProjGatherProperty;
- var
- i: Integer;
- vProperty: TProjGatherProperty;
- begin
- Result := nil;
- for i := 0 to Count - 1 do
- begin
- vProperty := PgProperty[i];
- if vProperty.Name = AName then
- begin
- Result := vProperty;
- Break;
- end;
- end;
- end;
- function TProjGatherProperties.GetCount: Integer;
- begin
- Result := FList.Count;
- end;
- function TProjGatherProperties.GetPgPropperty(
- AIndex: Integer): TProjGatherProperty;
- begin
- Result := TProjGatherProperty(FList.Items[AIndex]);
- end;
- function TProjGatherProperties.GetProjGatherProperty(
- const AName: string): TProjGatherProperty;
- begin
- Result := FindProjGatherProperty(AName);
- if not Assigned(Result) then
- Result := AddProjGatherProperty(AName);
- end;
- end.
|