Ignore:
Timestamp:
Jan 3, 2011, 3:25:24 PM (13 years ago)
Author:
george
Message:
Location:
Generics/TemplateGenerics/Generic
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • Generics/TemplateGenerics/Generic/GenericDictionary.inc

    r91 r112  
    1414{$DEFINE TGListToStringConverter := TDictionaryToStringConverter}
    1515{$DEFINE TGListFromStringConverter := TDictionaryFromStringConverter}
     16{$DEFINE TGListItemArray := TDictionaryItemArray}
    1617{$DEFINE INTERFACE}
    1718{$I 'GenericList.inc'}
     
    4849{$DEFINE TGListToStringConverter := TDictionaryToStringConverter}
    4950{$DEFINE TGListFromStringConverter := TDictionaryFromStringConverter}
     51{$DEFINE TGListItemArray := TDictionaryItemArray}
    5052{$DEFINE IMPLEMENTATION}
    5153{$I 'GenericList.inc'}
  • Generics/TemplateGenerics/Generic/GenericList.inc

    r109 r112  
    66  TGListToStringConverter = function(Item: TGListItem): string;
    77  TGListFromStringConverter = function(Text: string): TGListItem;
     8  TGListItemArray = array of TGListItem;
    89
    910  // TGList<TGListIndex, TGListItem> = class
     
    3233    procedure DeleteItems(Index, Count: TGListIndex);
    3334    function EqualTo(List: TGList): Boolean;
     35    procedure Exchange(Index1, Index2: TGListIndex);
     36    procedure Explode(Text, Separator: string; Converter: TGListFromStringConverter; SlicesCount: Integer = -1);
    3437    function Extract(Item: TGListItem): TGListItem;
    35     procedure Exchange(Index1, Index2: TGListIndex);
    3638    property First: TGListItem read GetFirst write SetFirst;
    3739    procedure Fill(Start, Count: TGListIndex; Value: TGListItem);
     40    function GetArray: TGListItemArray;
    3841    function Implode(Separator: string; Converter: TGListToStringConverter): string;
    39     procedure Explode(Text, Separator: string; Converter: TGListFromStringConverter; SlicesCount: Integer = -1);
    4042    function IndexOf(Item: TGListItem; Start: TGListIndex = 0): TGListIndex;
    4143    function IndexOfList(List: TGList; Start: TGListIndex = 0): TGListIndex;
     
    4850    procedure Reverse;
    4951    procedure Sort(Compare: TGListSortCompare);
    50     procedure SetArray(Values: array of TGListItem);
     52    procedure SetArray(Values: TGListItemArray);
    5153    property Count: TGListIndex read FCount write SetCount;
    5254    property Capacity: TGListIndex read GetCapacity write SetCapacity;
     
    123125  FCount := AValue;
    124126  if AValue < Capacity then SetCapacityOptimized(AValue); // After FCount change
     127end;
     128
     129function TGList.GetArray: TGListItemArray;
     130var
     131  I: Integer;
     132begin
     133  SetLength(Result, Count);
     134  I := 0;
     135  while I < Count do begin
     136    Result[I] := FItems[I];
     137    I := I + 1;
     138  end;
    125139end;
    126140
     
    181195begin
    182196  Result := Start;
    183   // Use slower CompareMem instead of (FItems[Result] <> Item) to support records
    184197  while (Result < FCount) and
    185198  not CompareMem(Addr(FItems[Result]), Addr(Item), SizeOf(TGListItem)) do
     
    358371end;
    359372
    360 procedure TGList.SetArray(Values: array of TGListItem);
     373procedure TGList.SetArray(Values: TGListItemArray);
    361374var
    362375  I: TGListIndex;
  • Generics/TemplateGenerics/Generic/GenericListObject.inc

    r101 r112  
    77{$DEFINE TGListToStringConverter := TGListObjectToStringConverter}
    88{$DEFINE TGListFromStringConverter := TGListObjectFromStringConverter}
     9{$DEFINE TGListItemArray := TGListObjectItemArray}
    910{$DEFINE INTERFACE}
    1011{$I 'GenericList.inc'}
     
    4243{$DEFINE TGListToStringConverter := TGListObjectToStringConverter}
    4344{$DEFINE TGListFromStringConverter := TGListObjectFromStringConverter}
     45{$DEFINE TGListItemArray := TGListObjectItemArray}
    4446{$DEFINE IMPLEMENTATION}
    4547{$I 'GenericList.inc'}
  • Generics/TemplateGenerics/Generic/GenericListString.inc

    r101 r112  
    77{$DEFINE TGListToStringConverter := TGListStringToStringConverter}
    88{$DEFINE TGListFromStringConverter := TGListStringFromStringConverter}
     9{$DEFINE TGListItemArray := TGListStringItemArray}
    910{$DEFINE INTERFACE}
    1011{$I 'GenericList.inc'}
     
    4041{$DEFINE TGListToStringConverter := TGListStringToStringConverter}
    4142{$DEFINE TGListFromStringConverter := TGListStringFromStringConverter}
     43{$DEFINE TGListItemArray := TGListStringItemArray}
    4244{$DEFINE IMPLEMENTATION}
    4345{$I 'GenericList.inc'}
  • Generics/TemplateGenerics/Generic/GenericQueue.inc

    r91 r112  
    77{$DEFINE TGListToStringConverter := TGQueueToStringConverter}
    88{$DEFINE TGListFromStringConverter := TGQueueFromStringConverter}
     9{$DEFINE TGListItemArray := TGQueueItemArray}
    910{$DEFINE INTERFACE}
    1011{$I 'GenericList.inc'}
     
    4243{$DEFINE TGListToStringConverter := TGQueueToStringConverter}
    4344{$DEFINE TGListFromStringConverter := TGQueueFromStringConverter}
     45{$DEFINE TGListItemArray := TGQueueItemArray}
    4446{$DEFINE IMPLEMENTATION}
    4547{$I 'GenericList.inc'}
  • Generics/TemplateGenerics/Generic/GenericSet.inc

    r91 r112  
    77{$DEFINE TGListToStringConverter := TGSetToStringConverter}
    88{$DEFINE TGListFromStringConverter := TGSetFromStringConverter}
     9{$DEFINE TGListItemArray := TGSetItemArray}
    910{$DEFINE INTERFACE}
    1011{$I 'GenericList.inc'}
     
    4041{$DEFINE TGListToStringConverter := TGSetToStringConverter}
    4142{$DEFINE TGListFromStringConverter := TGSetFromStringConverter}
     43{$DEFINE TGListItemArray := TGSetItemArray}
    4244{$DEFINE IMPLEMENTATION}
    4345{$I 'GenericList.inc'}
  • Generics/TemplateGenerics/Generic/GenericStack.inc

    r91 r112  
    77{$DEFINE TGListToStringConverter := TGStackToStringConverter}
    88{$DEFINE TGListFromStringConverter := TGStackFromStringConverter}
     9{$DEFINE TGListItemArray := TGStackItemArray}
    910{$DEFINE INTERFACE}
    1011{$I 'GenericList.inc'}
     
    4142{$DEFINE TGListToStringConverter := TGStackToStringConverter}
    4243{$DEFINE TGListFromStringConverter := TGStackFromStringConverter}
     44{$DEFINE TGListItemArray := TGStackItemArray}
    4345{$DEFINE IMPLEMENTATION}
    4446{$I 'GenericList.inc'}
  • Generics/TemplateGenerics/Generic/GenericTree.inc

    r91 r112  
    99{$DEFINE TGListToStringConverter := TGTreeToStringConverter}
    1010{$DEFINE TGListFromStringConverter := TGTreeFromStringConverter}
     11{$DEFINE TGListItemArray := TGTreeItemArray}
    1112{$DEFINE INTERFACE}
    1213{$I 'GenericList.inc'}
     
    4647{$DEFINE TGListToStringConverter := TGTreeToStringConverter}
    4748{$DEFINE TGListFromStringConverter := TGTreeFromStringConverter}
     49{$DEFINE TGListItemArray := TGTreeItemArray}
    4850{$DEFINE IMPLEMENTATION}
    4951{$I 'GenericList.inc'}
Note: See TracChangeset for help on using the changeset viewer.