Changeset 326 for Generics/NativeGenerics/Units
- Timestamp:
- Feb 8, 2012, 2:13:08 PM (14 years ago)
- Location:
- Generics/NativeGenerics/Units
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
Generics/NativeGenerics/Units/GenericList.pas
r324 r326 93 93 end; 94 94 95 T ListObject<TItem> = class(TGList<TItem>)95 TGObjectList<TItem> = class(TGList<TItem>) 96 96 private 97 97 procedure Put(Index: Integer; const AValue: TItem); override; … … 105 105 end; 106 106 107 T ListString<TItem> = class(TGList<TItem>)107 TGStringList<TItem> = class(TGList<TItem>) 108 108 private 109 109 public … … 603 603 end; 604 604 605 { T ListObject }606 607 procedure T ListObject<TItem>.Assign(Source: TGList<TItem>);605 { TGObjectList } 606 607 procedure TGObjectList<TItem>.Assign(Source: TGList<TItem>); 608 608 begin 609 609 Clear; … … 612 612 end; 613 613 614 procedure T ListObject<TItem>.Put(Index: Integer; const AValue: TItem);614 procedure TGObjectList<TItem>.Put(Index: Integer; const AValue: TItem); 615 615 begin 616 616 if OwnsObjects then FItems[Index].Free; … … 618 618 end; 619 619 620 procedure T ListObject<TItem>.Delete(Index: Integer);620 procedure TGObjectList<TItem>.Delete(Index: Integer); 621 621 begin 622 622 if OwnsObjects then FItems[Index].Free; … … 624 624 end; 625 625 626 procedure T ListObject<TItem>.Clear;626 procedure TGObjectList<TItem>.Clear; 627 627 var 628 628 I: Integer; … … 638 638 end; 639 639 640 constructor T ListObject<TItem>.Create;640 constructor TGObjectList<TItem>.Create; 641 641 begin 642 642 inherited; … … 644 644 end; 645 645 646 destructor T ListObject<TItem>.Destroy;646 destructor TGObjectList<TItem>.Destroy; 647 647 begin 648 648 Clear; … … 650 650 end; 651 651 652 { T ListString}653 654 procedure T ListString<TItem>.Assign(Source: TGList<TItem>);652 { TGStringList } 653 654 procedure TGStringList<TItem>.Assign(Source: TGList<TItem>); 655 655 begin 656 656 Clear; … … 658 658 end; 659 659 660 procedure T ListString<TItem>.Delete(Index: Integer);660 procedure TGStringList<TItem>.Delete(Index: Integer); 661 661 begin 662 662 FItems[Index] := ''; … … 664 664 end; 665 665 666 procedure T ListString<TItem>.Clear;666 procedure TGStringList<TItem>.Clear; 667 667 var 668 668 I: Integer; … … 676 676 end; 677 677 678 constructor T ListString<TItem>.Create;678 constructor TGStringList<TItem>.Create; 679 679 begin 680 680 inherited; 681 681 end; 682 682 683 destructor T ListString<TItem>.Destroy;683 destructor TGStringList<TItem>.Destroy; 684 684 begin 685 685 Clear; -
Generics/NativeGenerics/Units/GenericTree.pas
r132 r326 9 9 10 10 type 11 // TGTreeNode<TItem> = class;12 11 13 // TGTreeNodeList = TGList<TGTreeNode>; 12 { TGAbstractTreeNode } 14 13 15 TGTreeNode<TItem> = class 16 // Childs: ; 17 Value: TItem; 18 procedure Clear; 14 TGAbstractTreeNode<TItem> = class 15 private 16 function GetValue: TItem; virtual; abstract; 17 procedure SetValue(AValue: TItem); virtual; abstract; 18 public 19 type 20 TNode = TGAbstractTreeNode<TItem>; 21 var 22 Childs: TGAbstractList<TNode>; 23 procedure Clear; virtual; abstract; 24 constructor Create; virtual; 25 destructor Destroy; override; 26 property Value: TItem read GetValue write SetValue; 27 end; 28 29 { TGAbstractTree } 30 31 TGAbstractTree<TItem> = class 32 public 33 type 34 TNode = TGAbstractTreeNode<TItem>; 35 TIndex = NativeInt; 36 private 37 function GetItem(Index: TIndex): TItem; 38 procedure SetItem(Index: TIndex; AValue: TItem); 39 var 40 TopItem: TGAbstractTreeNode<TItem>; 41 procedure Clear; virtual; abstract; 42 constructor Create; virtual; 43 property Items[Index: TIndex]: TItem read GetItem write SetItem; 44 end; 45 46 47 TGTreeNode<TItem> = class(TGAbstractTreeNode<TItem>) 48 public 49 type 50 TNode = TGTreeNode<TItem>; 51 private 52 FValue: TItem; 53 function GetValue: TItem; override; 54 procedure SetValue(AValue: TItem); override; 55 public 56 procedure Clear; override; 57 constructor Create; override; 58 destructor Destroy; override; 19 59 end; 20 60 21 61 TGTree<TItem> = class 22 // TopItem: TGTreeNode; 23 procedure Clear; 62 public 63 type 64 TNode = TGTreeNode<TItem>; 65 private 66 FItems: TGList<TNode>; 67 public 68 procedure Clear; override; 69 constructor Create; override; 70 destructor Destroy; override; 24 71 end; 72 25 73 26 74 implementation 27 75 28 76 { TGTreeNode } 77 78 function TGTreeNode<TItem>.GetValue: TItem; 79 begin 80 Result := FValue; 81 end; 82 83 procedure TGTreeNode<TItem>.SetValue(AValue: TItem); 84 begin 85 FValue := AValue; 86 end; 29 87 30 88 procedure TGTreeNode<TItem>.Clear; … … 40 98 end; 41 99 100 constructor TGTree<TItem>.Create; 101 begin 102 inherited; 103 FItems := TGList<TNode>.Create; 104 end; 105 106 destructor TGTree<TItem>.Destroy; 107 begin 108 inherited Destroy; 109 FItems.Free; 110 end; 111 112 { TGAbstractTree<TItem> } 113 114 function TGAbstractTree<TItem>.GetItem(Index: TIndex): TItem; 115 begin 116 117 end; 118 119 procedure TGAbstractTree<TItem>.SetItem(Index: TIndex; AValue: TItem); 120 begin 121 122 end; 123 124 constructor TGAbstractTree<TItem>.Create; 125 begin 126 end; 127 128 constructor TGTreeNode<TItem>.Create; 129 begin 130 inherited; 131 Childs := TGList<TNode>.Create; 132 end; 133 134 destructor TGTreeNode<TItem>.Destroy; 135 begin 136 Childs.Free; 137 inherited; 138 end; 139 140 { TGAbstractTreeNode<TItem> } 141 142 constructor TGAbstractTreeNode<TItem>.Create; 143 begin 144 end; 145 146 destructor TGAbstractTreeNode<TItem>.Destroy; 147 begin 148 inherited Destroy; 149 end; 150 151 42 152 end.
Note:
See TracChangeset
for help on using the changeset viewer.