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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2017, 15:15   #1
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию D7 TObjectList Get/SetItem - ошибка

Здравствуйте!
Не пойму, чего не нравится Delphi 7?
Пытаюсь сделать класс TObjectList и прописать в нём Get/SetItem своего типа. На DXE сто раз получалось, решил перенести на D7, а он стал ругаться.
Класс:
Код:
  TLevels = class(TObjectList)
  private
    function GetItems(Index: Integer): TLevel;
    procedure SetItems(Index: Integer; const Value: TLevel);
  published
  public
    property Items[Index: Integer]: TLevel read GetItems write SetItems; default;
  end;
Код:
function TLevels.GetItems(Index: Integer): TLevel;
begin
  Result := TLevel(inherited GetItem(Index));
end;
Ошибка при компиляции:
Цитата:
Invalid typecast
Код:
procedure TLevels.SetItems(Index: Integer; const Value: TLevel);
begin
  inherited SetItem(Index, Value);
end;
Ошибка при компиляции:
Цитата:
Incompatible types: 'TObject' and 'TLevel'
Как это исправить?
Ship_1 вне форума Ответить с цитированием
Старый 29.06.2017, 15:29   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

inherited может не нужно.

Вообще в ХЕ не нужно создавать такие обертки, там Generic'и есть.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 29.06.2017, 15:32   #3
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию

Да? Не знаете ли, случайно, статейку на русском про это?
А убирание inherited не помогло: всё осталось таким же (те же ошибки).
Ship_1 вне форума Ответить с цитированием
Старый 29.06.2017, 15:38   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

посмотреть что же это за тип такой TLevel
и сделать его "нормальным" классом (наследником TObject)
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 29.06.2017, 15:40   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А чего там читать, добавил нужный uses, написал TObjectList<TMyClass> и все.
http://docs.embarcadero.com/products...bjectList.html
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 29.06.2017, 15:45   #6
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию

evg_mСпасибо... Тупо получилось... В TLevel забыл Record на Class поменять...
Ship_1 вне форума Ответить с цитированием
Старый 29.06.2017, 15:45   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
А чего там читать, добавил нужный uses, написал TObjectList<TMyClass> и все.
всего ничего
Цитата:
Не пойму, чего не нравится Delphi 7?
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TObjectList - проблемы с удалением\очисткой Dee63 Общие вопросы Delphi 11 28.04.2015 17:18
TObjectList. Вопрос об изменении параметров. Rin Общие вопросы Delphi 10 21.04.2014 10:38
TObjectList.Add - проблемы JustKurt Помощь студентам 3 18.06.2010 19:36
Проблемы с TObjectList lexaltd Общие вопросы Delphi 6 06.04.2009 20:54