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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> доступ к свойствам объектов в TList 
V
    Опции темы
dtp
Дата 22.7.2009, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Подскажите, пожалуйста, забыл как это делал.
Создаю список объектов. Нужен доступ к свойствам объектов, чтобы можно было бы их редактировать. Как-то делал, но не могу найти прежний код.
Вот код, который позволяет читать, но не позволяет редактировать - присваивать значение:
 
Код


 TapSite=Record
  Empty:Boolean;
  BuildingID:Integer;
 End;

TSite=class
  Info: TapSite;
 end;
 
  TListSite=class
    private
    FItem:TList;
    FCount:Integer;
    public
    constructor Create;
    function AddSite:Integer;
    function Delete(ID:Integer):Boolean;
    function Items(ID:Integer):TapSite;
    procedure Clear;
    property Count:Integer read FCount;
  end;
 
 
{ TListSite }
//--------------------------SITE LIST ADD------------------------------------------------------
function TListSite.AddSite: Integer;
begin
 self.FItem.Add(TSite.Create);
 FCount:=FItem.Count;
 Result:= FItem.Count-1;
end;
//--------------------------SITE LIST CLEAR------------------------------------------------------
procedure TListSite.Clear;
begin
 FItem.Clear;
 FCount:=FItem.Count;
end;
//--------------------------SITE LIST CREATE------------------------------------------------------
constructor TListSite.Create;
begin
 inherited;
 FItem:=TList.Create;
 FCount:=FItem.Count;
end;
//--------------------------SITE LIST DELETE------------------------------------------------------
function TListSite.Delete(ID: Integer): Boolean;
begin
 Result:=FALSE;
 if (FItem.Count=0) or (ID>FItem.Count) then exit
  else  FItem.Delete(ID);
 FCount:=FItem.Count;
 Result:=TRUE;
end;
//--------------------------SITE LIST ITEMS------------------------------------------------------
function TListSite.Items(ID: Integer): TapSite;
begin
  if (ID>0) and (ID<FItem.Count) then
   Result:=TSite(FItem.Items[ID]).Info;
end; 


Нужна такая реализация (чтобы скрыть типы классов):
 
Код

SitesList.Items(loop).Empty:=TRUE; //запись какого-то свойства объекта в списке


PM MAIL   Вверх
niteo
Дата 22.7.2009, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Чет ты перемудрил...
юзай property
--------------------
Мне чужого лишнего не нада.Ешь ананасы, рябчиков жуй,день твой последний приходит, буржуй...
PM MAIL   Вверх
dtp
Дата 22.7.2009, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



TList.Items:[index:Intger]:Pointer
а мне нужно возвращать запись (Record).. то есть, для работы с property нужно создавать 2 функции (Set/Get), но присваивать придется всю запись (Record), а не ее элемент 


Уже решил! Возвращаю ссылку на объект, а не саму запись.

Это сообщение отредактировал(а) dtp - 22.7.2009, 16:48
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.0428 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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