Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.12.2015, 10:40
ArhDemetriy ArhDemetriy вне форума
Прохожий
 
Регистрация: 28.12.2015
Сообщения: 1
Версия Delphi: XE 5
Репутация: 10
По умолчанию Как применить метод родителя к полю перегруженному в наследнике?

Подскажите как перегрузить внутренний тип родителя, или поле родителя оставив работоспособным метод работающий с этим полем?
Есть массив записей и сортировка массива
Код:
TFaserClass = class
protected
type
  TRecord = record
    Name:string;
  end;
  TArray = array of TRecord;
var
  MyArray : TArray;
public
  procedure SortMyArray;
end;
В дочке добавляются поля в тип записи, но код сортировки переносится копипастом. Т.к. сортировка идёт по полю Name
Код:
TDoterClass = class(TFaserClass)
protected
type
  TRecord = record
    Name:string;
    URL:string;   //изменение только тут
  end;
  TArray = array of TRecord;
var
  MyArray : TArray;
public
  procedure SortMyArray;
end;
Как применить метод родителя к полю перегруженному в дочке? Код метода остаётся точно таким-же, я просто хочу убрать копию кода сортировки и редактировать его в одном месте.
Если не перегружать тип массива и само поле MyArray, то в дочке у MyArray остаётся тип как в родителе.
Код:
TDoterClass = class(TFaserClass)
protected
type
  TRecord = record
    Name:string;
    URL:string;
  end;
  Procedure Test;
end;
Procedure TDoterClass.Test; begin
  SetLength(MyArray,1);
  MyArray[0].URL := 'A';//E2003 undeclared
end;

Передача поля как параметр тоже не работает (разные типы);
Код:
procedure SortArray(var MyArray : TArray);
Может стоит покопать в сторону Variant или абстрактных классов? Подскажите получится-ли реализовать ими? Просто запись в моём случае удобна выделением памяти через SetLength массива.
По сути мне нужно чтобы код из родителя автоматически подставлялся в наследник, может есть какие-то команды линковщику говорящие взять текст реализации метода из родителя?
среда: Rad Studio XE 5

Последний раз редактировалось ArhDemetriy, 28.12.2015 в 10:48.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:43.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025