Библиотека шаблонов в Delphi

Благодаря Andreas Hausladen мы теперь можем использовать расширенные возможности языка Delphi. В том числе и шаблоны проектироввания. Скачать патч препроцессора и ознакомиться с новыми возможностями расширения языка можно заглянув по ссылке http://andy.jgknet.de/dlang.

Здесь будут выкладываться шаблоны общего назначения

Шаблоны функций и процедур без ООП

Так как данное расширение не позволяет создать шаблон функции или процедуры, то такие подпрограммы объединены в шаблон generic TelSystem = class и являются в нем статическими.
class function Max(const a,b:T):T;
Максимум двух значений, только для типов, у которых определена операция '>'
class function Min(const a,b:T):T;
Миниимум двух значений, только для типов, у которых определена операция '<'
class function IfThen(const aValue:boolean; const aTrue,aFalse:T):T;
Возвращает aTrue если aValue истинно, иначе возвращает aFalse
class procedure Exchange(var a,b:T);
Меняет значения местами
скачать модуль elSystem.pas

Шаблон списка

По своему поведению похож на класс TList
generic TelList = class

CompareFunction:function(a,b:T):integer;
function Add(Item: T): integer;
destructor Destroy; override;
procedure Clear;
procedure Delete(Index: integer);
procedure Exchange(Index1, Index2: integer);
function Extract(Item: T): T;
function First: T;
function IndexOf(Item: T): Integer;
procedure Insert(Index: integer; Item: T);
function Last: T;
procedure Move(CurIndex, NewIndex: integer);
function Remove(Item: T): integer;
function Copy: TelList;
procedure Sort;
property Count: integer read fCount write setCount;
property Items[Index: integer]: T read Get write Put; default;
скачать модуль elList.pas

На главную
Hosted by uCoz