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

Вниз

свойство в виде массива   Найти похожие ветки 

 
kiberg   (2008-02-26 11:19) [0]

Я хочу в своем объекте разместить массив записей, что-то вроде этого:

 TRowInDict = record
   WordForm: String;
   Prop: TWordProp;
   Basis: String;
   DateTime: TDateTime;
 end;

 TStructDict = class(TObject)
 private
   FItems: array of TRowInDict;
   function GetItems(aIndex: Integer): TRowInDict;
   procedure SetItems(aRow: TRowInDict; aIndex: Integer);
 public
   property Items[aIndex: Integer]: TRowInDict read GetItems write SetItems; default;
 end;

При этом я могу прочитать данные, например, vStr := vStructDict.Items[1].WordForm и записать в массив целую запись.
А как мне менять отдельные поля массива, например, vStructDict.Items[1].WordForm := vStr;


 
Сергей М. ©   (2008-02-26 11:32) [1]

При такой реализации это будет выглядеть не иначе как:

var
 Item: TRowInDict;
..
Item := vStructDict.Items[1];
Item.WordForm := vStr;
vStructDict.Items[1] := Item;


 
kiberg   (2008-02-26 11:33) [2]

А какая может быть другая реализация?


 
Сергей М. ©   (2008-02-26 11:38) [3]

Доступ к элементу массива не по значению (как сейчас у тебя реализовано), а по ссылке


 
kiberg   (2008-02-26 11:47) [4]

Что-то я не понял. А как это будет выглядеть в виде кода?


 
Сергей М. ©   (2008-02-26 11:52) [5]

PRowInDict = ^TRowInDict

function TStructDict.GetItems(aIndex: Integer): PRowInDict;
begin
 Result := @ FItems[aIndex];
end;


 
kiberg   (2008-02-26 11:55) [6]

Спасибо!



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

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

Наверх




Память: 0.47 MB
Время: 0.012 c
15-1202831718
No_Dead
2008-02-12 18:55
2008.03.23
Что я потеряю?


15-1202320985
Dmitry_V
2008-02-06 21:03
2008.03.23
насколько трудоёмко программирование ActiveX?


2-1203997892
Chorniy
2008-02-26 06:51
2008.03.23
Корректно ли делать так? WaitForSingleObject()


15-1202522610
Real
2008-02-09 05:03
2008.03.23
Уже три ночи


2-1203860838
dramadol
2008-02-24 16:47
2008.03.23
Обрезать длину файла при перезаписи