Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с TList 
:(
    Опции темы
Fox_in
Дата 22.5.2007, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 30.4.2007

Репутация: нет
Всего: нет



Создаю класс с полем типа TList. Заполняю его объектами, которые также имеют поле TList. В результате при попытке обратиться к "вложенному" полю появляется ошибка. Как можно исправить??

Присоединённый файл ( Кол-во скачиваний: 16 )
Присоединённый файл  ogl.rar 18,25 Kb
PM MAIL   Вверх
skyboy
Дата 22.5.2007, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



ругань на абстрактный метод, да? smile
TList - это не "конечный" класс: там немало абстрактных методов. Надо использовать наследников(благо, в составе модуля Contnrs их достаточно: TObjectList, TInterfacesList, всякие там TQueue и т.д.) этого класса.

нужен код smile
написанное выше - бред. оставлено в назидание остальным.

Это сообщение отредактировал(а) skyboy - 22.5.2007, 22:51
PM MAIL   Вверх
Alexeis
Дата 22.5.2007, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



Цитата(skyboy @  22.5.2007,  21:28 Найти цитируемый пост)
TList - это не "конечный" класс: там немало абстрактных методов.

Который?

Код

  TList = class(TObject)
  private
    FList: PPointerList;
    FCount: Integer;
    FCapacity: Integer;
  protected
    function Get(Index: Integer): Pointer;
    procedure Grow; virtual;
    procedure Put(Index: Integer; Item: Pointer);
    procedure Notify(Ptr: Pointer; Action: TListNotification); virtual;
    procedure SetCapacity(NewCapacity: Integer);
    procedure SetCount(NewCount: Integer);
  public
    destructor Destroy; override;
    function Add(Item: Pointer): Integer;
    procedure Clear; virtual;
    procedure Delete(Index: Integer);
    class procedure Error(const Msg: string; Data: Integer); overload; virtual;
    class procedure Error(Msg: PResStringRec; Data: Integer); overload;
    procedure Exchange(Index1, Index2: Integer);
    function Expand: TList;
    function Extract(Item: Pointer): Pointer;
    function First: Pointer;
    function GetEnumerator: TListEnumerator;
    function IndexOf(Item: Pointer): Integer;
    procedure Insert(Index: Integer; Item: Pointer);
    function Last: Pointer;
    procedure Move(CurIndex, NewIndex: Integer);
    function Remove(Item: Pointer): Integer;
    procedure Pack;
    procedure Sort(Compare: TListSortCompare);
    procedure Assign(ListA: TList; AOperator: TListAssignOp = laCopy; ListB: TList = nil);
    property Capacity: Integer read FCapacity write SetCapacity;
    property Count: Integer read FCount write SetCount;
    property Items[Index: Integer]: Pointer read Get write Put; default;
    property List: PPointerList read FList;
  end;


Добавлено через 4 минуты и 59 секунд
Цитата(Fox_in @  22.5.2007,  12:25 Найти цитируемый пост)
В результате при попытке обратиться к "вложенному" полю появляется ошибка. Как можно исправить?? 

   Какая ошибка? У меня все скомпилилось и запустилось. Отлично работает.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
skyboy
Дата 22.5.2007, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



Цитата(Alexeis @  22.5.2007,  20:42 Найти цитируемый пост)
Который?

аааааа... посыпаю голову пеплом. перепутать TList с TStrings  - это нечто :( 
прошу прощения.
PM MAIL   Вверх
aktuba
Дата 22.5.2007, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 7
Всего: 38



skyboy, а пепел качественный?  smile Извените за флуд...


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Alexeis
Дата 23.5.2007, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



Цитата(skyboy @  22.5.2007,  22:51 Найти цитируемый пост)
аааааа... посыпаю голову пеплом. перепутать TList с TStrings  - это нечто :( 
прошу прощения. 

  Перепутать совсем не сложно, зная про существование класса-гибрида TStringList и того что одна часть его названия абстрактна smile 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Fox_in
Дата 23.5.2007, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 30.4.2007

Репутация: нет
Всего: нет



Так, проблему исправил -- пределывал раза три, наконец все получилось. Забыл про TList.Create перед обращением к списку.

Это сообщение отредактировал(а) Fox_in - 23.5.2007, 10:53
PM MAIL   Вверх
Fox_in
Дата 23.5.2007, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 30.4.2007

Репутация: нет
Всего: нет



В продолжение темы...

Есть переменная типа TList. Я добавляю элементы в список. Затем содержимое списка нужно передать другой переменной, а эта будет использоваться снова. Как это реализовать?? (корректный обмен, то есть)
PM MAIL   Вверх
aktuba
Дата 23.5.2007, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 7
Всего: 38



Assign


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Fox_in
Дата 23.5.2007, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 30.4.2007

Репутация: нет
Всего: нет



Ээээ... А поподробнее можно?? (желательно с куском кода)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0516 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.