Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.02.07;
Скачать: [xml.tar.bz2];

Вниз

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

 
Nucer   (2009-12-12 14:38) [0]

Есть следующий класс:
 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 есть возможность применять что-то вроде макросов, где вместо типа указывается имя, заключенное в треугольных скобках (видел подобный код на этом форуме). Действительно ли есть такое или я ошибаюсь? Найти информацию в интернете и во встроенной справке не получилось.


 
clickmaker ©   (2009-12-12 14:47) [1]

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

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


 
clickmaker ©   (2009-12-12 14:48) [2]

вру. в д2009


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

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


 
Sapersky   (2009-12-12 16:35) [4]

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



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2010.02.07;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.005 c
2-1260617922
Nucer
2009-12-12 14:38
2010.02.07
Универсальный список записей


15-1259774632
Наиль
2009-12-02 20:23
2010.02.07
Опять про Марка Руссиновича


6-1204447263
IntruderLab
2008-03-02 11:41
2010.02.07
TICQClient


15-1259839785
Тимоха123
2009-12-03 14:29
2010.02.07
перечисление форм проекта


3-1234507272
matveih1
2009-02-13 09:41
2010.02.07
ibconsvc.exe





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский