Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Универсальный список записей


Nucer ©   (2009-12-12 14:38:00) 

Есть следующий класс:
 TChars = class
 private
   FItems: array of TChar;

   function Find(ObjectId: Integer): Integer;
   function GetItem(Index: Integer): TChar;
   function GetCount: Integer;
 public
   property Items[index: Integer]: TChar read GetItem; default;
   property Count: Integer read GetCount;

   function Get(ObjectId: Integer; var Char: TChar): Boolean;
   function Add(Char: TChar): Boolean;
   function Delete(ObjectId: Integer): Boolean;
   procedure Clear;

   constructor Create;
   destructor Destroy; override;
 end;


TChar - запись, содержащая (в том числе) поле ObjectId.

Проблема в том, что есть записи других типов (у всех есть поле ObjectId) для которых надо реализовать такие же классы, управляющие списком. Можно конечно каждый раз копировать код, заменяя типы, но наверняка есть более красивое решение. Использовать в данном конкретном случае объекты вместо записей не хотелось бы.

Если я не ошибаюсь, в Delphi есть возможность применять что-то вроде макросов, где вместо типа указывается имя, заключенное в треугольных скобках (видел подобный код на этом форуме). Действительно ли есть такое или я ошибаюсь? Найти информацию в интернете и во встроенной справке не получилось.


Sapersky   (2009-12-12 16:35:00) [1]

Про стандартный TList в курсе?
Если так уж хочется что-то своё изобрести, то можно в качестве основы взять это:
http://sapersky.narod.ru/files/Arrays.rar
Где-то у меня был и модифицированный в соответствии с подобным подходом TList, если надо - выложу.


Nucer   (2009-12-12 15:00:00) [2]

Спасибо. Жаль, а то я наделялся использовать это в D7 :(


clickmaker   (2009-12-12 14:48:00) [3]

вру. в д2009


clickmaker   (2009-12-12 14:47:00) [4]

> Delphi есть возможность применять что-то вроде макросов,
> где вместо типа указывается имя, заключенное в треугольных
> скобках

generics?
они вроде только в д2007 появились


Наверх

Титульная страница Поиск, карта сайта Написать письмо