Changeset 426 for Generics/TemplateGenerics/Generic/GenericList.inc
- Timestamp:
- Sep 24, 2012, 1:47:39 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Generics/TemplateGenerics/Generic/GenericList.inc
r414 r426 12 12 // - all items operations (Clear, Reverse, Sort) 13 13 14 TGList = class; 15 16 TGListSortCompare = function(Item1, Item2: TGListItem): Integer of object; 17 TGListToStringConverter = function(Item: TGListItem): string; 18 TGListFromStringConverter = function(Text: string): TGListItem; 19 TGListItemArray = array of TGListItem; 14 TGAbstractList = class 15 16 end; 20 17 21 18 // TGList<TGListIndex, TGListItem> = class 22 TGList = class 19 TGList = class(TGAbstractList) 20 public 21 type 22 PItem = ^TGListItem; 23 TSortCompare = function(Item1, Item2: TGListItem): Integer of object; 24 TToStringConverter = function(Item: TGListItem): string; 25 TFromStringConverter = function(Text: string): TGListItem; 26 TItemArray = array of TGListItem; 23 27 private 24 28 FItems: array of TGListItem; … … 34 38 procedure SetLast(AValue: TGListItem); 35 39 procedure SetFirst(AValue: TGListItem); 36 procedure QuickSort(L, R : TGListIndex; Compare: T GListSortCompare);40 procedure QuickSort(L, R : TGListIndex; Compare: TSortCompare); 37 41 protected 38 42 procedure Put(Index: TGListIndex; const AValue: TGListItem); virtual; 39 43 procedure SetCount(const AValue: TGListIndex); virtual; 40 44 public 41 type42 PItem = ^TGListItem;43 45 function CompareMem(P1, P2: Pointer; Length: cardinal): Boolean; inline; 44 46 function Add(Item: TGListItem): TGListIndex; … … 53 55 function EqualTo(List: TGList): Boolean; 54 56 procedure Exchange(Index1, Index2: TGListIndex); 55 procedure Explode(Text, Separator: string; Converter: T GListFromStringConverter; SlicesCount: Integer = -1);57 procedure Explode(Text, Separator: string; Converter: TFromStringConverter; SlicesCount: Integer = -1); 56 58 function Extract(Item: TGListItem): TGListItem; 57 59 property First: TGListItem read GetFirst write SetFirst; 58 60 procedure Fill(Start, Count: TGListIndex; Value: TGListItem); 59 function GetArray(Index, ACount: TGListIndex): T GListItemArray;61 function GetArray(Index, ACount: TGListIndex): TItemArray; 60 62 procedure GetList(List: TGList; Index, ACount: TGListIndex); 61 63 procedure GetBuffer(Index: TGListIndex; var Buffer; Count: TGListIndex); 62 function Implode(Separator: string; Converter: T GListToStringConverter): string;64 function Implode(Separator: string; Converter: TToStringConverter): string; 63 65 function IndexOf(Item: TGListItem; Start: TGListIndex = 0): TGListIndex; virtual; 64 66 function IndexOfList(List: TGList; Start: TGListIndex = 0): TGListIndex; … … 77 79 SourceIndex, SourceCount: TGListIndex); 78 80 procedure ReplaceBuffer(Index: TGListIndex; var Buffer; Count: TGListIndex); 79 procedure Sort(Compare: T GListSortCompare);81 procedure Sort(Compare: TSortCompare); 80 82 procedure SetArray(Values: array of TGListItem); 81 83 procedure BeginUpdate; … … 88 90 property OnUpdate: TNotifyEvent read FOnUpdate write FOnUpdate; 89 91 end; 90 92 91 93 {$UNDEF INTERFACE} 92 94 {$ENDIF} … … 237 239 end; 238 240 239 function TGList.GetArray(Index, ACount: TGListIndex): T GListItemArray;241 function TGList.GetArray(Index, ACount: TGListIndex): TItemArray; 240 242 var 241 243 I: Integer; … … 255 257 end; 256 258 257 procedure TGList.QuickSort(L, R: TGListIndex; Compare: T GListSortCompare);259 procedure TGList.QuickSort(L, R: TGListIndex; Compare: TSortCompare); 258 260 var 259 261 I, J: TGListIndex; … … 524 526 end; 525 527 526 procedure TGList.Sort(Compare: T GListSortCompare);528 procedure TGList.Sort(Compare: TSortCompare); 527 529 begin 528 530 if FCount > 1 then … … 571 573 end; 572 574 573 function TGList.Implode(Separator: string; Converter: T GListToStringConverter): string;575 function TGList.Implode(Separator: string; Converter: TToStringConverter): string; 574 576 var 575 577 I: TGListIndex; … … 585 587 end; 586 588 587 procedure TGList.Explode(Text, Separator: string; Converter: T GListFromStringConverter; SlicesCount: Integer = -1);589 procedure TGList.Explode(Text, Separator: string; Converter: TFromStringConverter; SlicesCount: Integer = -1); 588 590 begin 589 591 Clear;
Note:
See TracChangeset
for help on using the changeset viewer.