123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- unit tw26288;
- {$mode objfpc}{$h+}
- interface
- uses
- Classes, SysUtils;
-
- type
- { TGenVector }
- generic TGenVector<_TItem_> = class
- public type
- TItemToString = function (const Item: _TItem_) : String of object;
-
- strict private
- fOnItemToString: TItemToString;
-
- procedure SetOnItemToString(AValue: TItemToString);
-
- public
- constructor Create;
-
- function DefaultItemToString(const Item: _TItem_) : String; virtual;
-
- property OnItemToString : TItemToString read fOnItemToString
- write SetOnItemToString;
- end;
-
- implementation
- {--- TGenVector.Create ---}
- constructor TGenVector.Create;
- begin
- SetOnItemToString(nil);
- end;
- {--- TGenVector.DefaultItemToString ---}
- function TGenVector.DefaultItemToString(const Item: _TItem_): String;
- begin
- raise Exception.Create('Method not redefined');
- Result := '';
- end;
- {--- TGenVector.SetOnItemToString ---}
- procedure TGenVector.SetOnItemToString(AValue: TItemToString);
- begin
- if AValue = nil then
- fOnItemToString := @DefaultItemToString
- else
- fOnItemToString := AValue;
- end;
- end.
|