Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2016, 18:10   #1
CraZZZy-GameRRR
Пользователь
 
Регистрация: 15.04.2010
Сообщений: 98
По умолчанию Наследование метода от TCollection

Есть класс TTasksList, наследник от TCollection. Мне нужно, чтобы в нём работал метод FindItemID. Я в своём классе в переопределении метода привожу результат из TCollectionItem к моему классу TTask.

Код:
type
  TTask = class(TCollectionItem)
  private
    //FID: integer;
    FTime: string;
    FTitle: string;
    FActive: boolean;
  public
    constructor Create(Collection: TCollection); override;
    //destructor Destroy; override;
  published
  //  property ID: integer read FID write FID;
    property Time: string read FTime write FTime;
    property Title: string read FTitle write FTitle;
    property Active: boolean read FActive write FActive;
  end;

  TTasksList = class(TCollection)
  private
    function GetTask(index:integer): TTask;
    procedure SetTask(index:integer; Value:TTask);
  public
    function Add:TTask;
    property Items[Index:integer]:TTask read GetTask write SetTask; default;
    function FindItemID(ID: Integer): TTask; override;
  end;


// ...

implementation

// ...

function TTasksList.FindItemID(ID: Integer): TTask;
begin
  Result := TTask(inherited FindItemID(ID));
end;
Получаю ошибку:
Цитата:
[Error] utasks.pas(33): Cannot override a static method
Заглянул в classes.pas, там ни о каком static не написано:
Код:
function FindItemID(ID: Integer): TCollectionItem;
Что я делаю не так?

Delphi 7.
CraZZZy-GameRRR вне форума Ответить с цитированием
Старый 20.10.2016, 19:12   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

в данном случае static = is not ( virtual or dinamic)
override применим только к virtual и dinamic методам.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 20.10.2016 в 19:16.
evg_m на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Событие Change для TCollection CraZZZy-GameRRR Общие вопросы Delphi 0 20.10.2016 00:55
OOP Pascal TCollection МихаилС Помощь студентам 0 22.10.2011 22:41
TStrings, TStringList, Tlist, TCollection Bogdaha Общие вопросы Delphi 6 28.05.2011 19:09
Вызов метода из метода kuzjma PHP 8 10.12.2010 02:38
В методе TCollectionItem получить значение поля класса, содержащего TCollection Roof Общие вопросы Delphi 2 12.09.2010 01:55