Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.02;
Скачать: CL | DM;

Вниз

Вопрос по ООП   Найти похожие ветки 

 
Igit   (2008-02-07 22:34) [0]

Здравствуйте. Написал объект, аналог TList только для моей структуры.

есть структура

{
   Содержание книги
}
 THTMLContentItem = record
   link: string;
   name: string;
 end;
 PHTMLContentItem = ^THTMLContentItem;


объект, для работы с содержанием.

 THTMLContentList = class
 private
   FList: TList; // хранилище данных
 protected
   function GetItems(Idx: integer): THTMLContentItem;
   procedure SetItems(Idx: integer; const value: THTMLContentItem);
 public
   constructor Create;
   destructor Destroy; override;
   function Add(Item: THTMLContentItem): Integer;
   procedure Delete(Idx: Integer);
   function Count: integer;
   procedure Exchange(idx1, idx2: integer);
   property Items[idx: integer]: THTMLContentItem read GetItems write SetItems; default;
 end;


все прекрасно работает. Вот цикл в котором заполняется этот объект из ListView:

var CL: THTMLContentList;
 i: Integer;
 item: THTMLContentItem;
begin
 CL := THTMLContentList.Create;
 for i := 0 to ListView1.Items.Count - 1 do
 begin
   item.name := ListView1.Items.Item[i].Caption;
   item.link := ListView1.Items.Item[i].SubItems.Strings[0];
   CL.Add(item);
 end;
 ShowMessage(CL.Items[2].name);
 CL.Free;
end;


Все работает. Теперь сам вопрос:
как нужно сделать, чтобы была допустипа запись
CL.Items[2].name := "Глава1";
А то компилятор выдает ошибку
[DCC Error] uProject.pas(382): E2064 Left side cannot be assigned to

С Уважением.


 
Anatoly Podgoretsky ©   (2008-02-07 22:39) [1]

> Igit  (07.02.2008 22:34:00)  [0]

Надо создать индексное свойство ItemName и если необходимо, то и ItemLink


 
ketmar ©   (2008-02-08 05:17) [2]

>[0] Igit (2008-02-07 22:34:00)
логично. property не является полноценным left value. извращаться можно, но лучше см. [1]

---
Understanding is not required. Only obedience.


 
Виктор007 ©   (2008-02-08 11:26) [3]

Понятно. Спасибо. Сейчас именно так и сделаю.
А можно подробнее про "извращаться"? Дело в том что с классами разбираюсь самостоятельно, и выходит очень медленно. Поэтому меня интересуют всякие приемы, которые помогут больше понять о возможностях ООП подхода.


 
ketmar ©   (2008-02-08 11:45) [4]

>[3] Виктор007 (2008-02-08 11:26:00)
именно потому и не дам, что извращение. начинающему оно не надо напрочь, только мозг забьёт ненужной информацией. а когда станешь «продолжающим» — сам сможешь. %-)

---
Understanding is not required. Only obedience.


 
newbie2   (2008-02-08 15:42) [5]


> Виктор007

посмотри TStringList, ты практически его по новой пишешь



Страницы: 1 вся ветка

Текущий архив: 2008.03.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
2-1202101305
Alexandr Malygin
2008-02-04 08:01
2008.03.02
вставить рисунок в excel


2-1202564853
Makxs
2008-02-09 16:47
2008.03.02
интересный вопрос


8-1174918678
San ciz
2007-03-26 18:17
2008.03.02
DSPack и Delphi 2006 Хелп!!!


2-1202406703
Nemeziz
2008-02-07 20:51
2008.03.02
try..except


15-1201632004
timeout
2008-01-29 21:40
2008.03.02
UUID компьютера