Changeset 112 for Generics/TemplateGenerics/Generic/GenericList.inc
- Timestamp:
- Jan 3, 2011, 3:25:24 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Generics/TemplateGenerics/Generic/GenericList.inc
r109 r112 6 6 TGListToStringConverter = function(Item: TGListItem): string; 7 7 TGListFromStringConverter = function(Text: string): TGListItem; 8 TGListItemArray = array of TGListItem; 8 9 9 10 // TGList<TGListIndex, TGListItem> = class … … 32 33 procedure DeleteItems(Index, Count: TGListIndex); 33 34 function EqualTo(List: TGList): Boolean; 35 procedure Exchange(Index1, Index2: TGListIndex); 36 procedure Explode(Text, Separator: string; Converter: TGListFromStringConverter; SlicesCount: Integer = -1); 34 37 function Extract(Item: TGListItem): TGListItem; 35 procedure Exchange(Index1, Index2: TGListIndex);36 38 property First: TGListItem read GetFirst write SetFirst; 37 39 procedure Fill(Start, Count: TGListIndex; Value: TGListItem); 40 function GetArray: TGListItemArray; 38 41 function Implode(Separator: string; Converter: TGListToStringConverter): string; 39 procedure Explode(Text, Separator: string; Converter: TGListFromStringConverter; SlicesCount: Integer = -1);40 42 function IndexOf(Item: TGListItem; Start: TGListIndex = 0): TGListIndex; 41 43 function IndexOfList(List: TGList; Start: TGListIndex = 0): TGListIndex; … … 48 50 procedure Reverse; 49 51 procedure Sort(Compare: TGListSortCompare); 50 procedure SetArray(Values: array of TGListItem);52 procedure SetArray(Values: TGListItemArray); 51 53 property Count: TGListIndex read FCount write SetCount; 52 54 property Capacity: TGListIndex read GetCapacity write SetCapacity; … … 123 125 FCount := AValue; 124 126 if AValue < Capacity then SetCapacityOptimized(AValue); // After FCount change 127 end; 128 129 function TGList.GetArray: TGListItemArray; 130 var 131 I: Integer; 132 begin 133 SetLength(Result, Count); 134 I := 0; 135 while I < Count do begin 136 Result[I] := FItems[I]; 137 I := I + 1; 138 end; 125 139 end; 126 140 … … 181 195 begin 182 196 Result := Start; 183 // Use slower CompareMem instead of (FItems[Result] <> Item) to support records184 197 while (Result < FCount) and 185 198 not CompareMem(Addr(FItems[Result]), Addr(Item), SizeOf(TGListItem)) do … … 358 371 end; 359 372 360 procedure TGList.SetArray(Values: array of TGListItem);373 procedure TGList.SetArray(Values: TGListItemArray); 361 374 var 362 375 I: TGListIndex;
Note:
See TracChangeset
for help on using the changeset viewer.