Тема: Поиск
Показать сообщение отдельно
  #1  
Старый 04.04.2014, 07:59
Аватар для morebeauty
morebeauty morebeauty вне форума
Начинающий
 
Регистрация: 21.06.2012
Сообщения: 106
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Поиск

Народ, подскажите, мне чего то не хватает мозгов.

Есть классы. Например

Код:
Tclass1 = class;
Tclass1 = class
private
fFieldA:string;
fFieldB:string;
Next:Tclass1;
public
constructor Create(fielda, fieldb: string);
end;

Tclass1list = class
private
fFirst:Tclass1;
function Search(index:olevariant):TClass1; //функция, которая ищет экземпляр Tclass1 по индексу или по полям fFieldA:string; fFieldB:string
public
property Cl[index: olevariant]:Tclass1 read Search; default;
end;

Tclass2 = class;
Tclass2 = class
private
fFieldC:string;
Next:Tclass2;
public
constructor Create(fieldC: string);
end;

Tclass2list = class
private
fFirst:Tclass2;
function Search(index:olevariant):TClass2; //функция, которая ищет экземпляр Tclass1 по индексу или по полю fFieldC:string;
public
property Cl[index: olevariant]:Tclass2 read Search; default;
end;

Таких классов еще несколько. В каждом есть поиск. Работает он одинаково, вычисляет тип переданной переменной index и если она числовая, то выдает экземпляр с нужным индексом, если текстовая, то ищет по нужным текстовым полям.
Вопрос, как можно вынести поиск в отдельный класс или обычную функцию, чтобы не описывать для каждого класса функцию поиска?
Хотелось бы изобразить в общем виде, типа:

Код:
function Search (СтрокаПоискаИлиИндекс: olevariant; СсылкаНаПервыйЭлементfFirst:КакойТипТутУказать; СписокПолейПоКоторымИскать:ВкакомВидеПередатьТожеНеЗнаю):ТипНужногоЭкземпляраКлассаТожеНеЗнаюКакВернуть;

Если это возможно осуществить, помогите.
Ответить с цитированием