Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.03.02;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.036 c
2-1202561165
oleg_teacher
2008-02-09 15:46
2008.03.02
маска


15-1201186192
oldman
2008-01-24 17:49
2008.03.02
"Интерфейс не зарегистрирован" что бы это могло быть?


2-1202323373
Efir
2008-02-06 21:42
2008.03.02
Событие исчезновения подсказки


2-1202195960
иИи
2008-02-05 10:19
2008.03.02
Полупрозрачность


6-1181367530
Сергей Колесник
2007-06-09 09:38
2008.03.02
Отправка RAW пакета





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский