Главная страница
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.024 c
2-1203478710
Biomass
2008-02-20 06:38
2008.03.23
графическую зависимость данных от времени


15-1202628640
Настюшка
2008-02-10 10:30
2008.03.23
Графика!!!


15-1202685792
Land
2008-02-11 02:23
2008.03.23
Можно ли у произвольного рекорда узнать названия полей и их типы?


2-1203784386
Chris-81
2008-02-23 19:33
2008.03.23
Forward


2-1204109129
Ковалев
2008-02-27 13:45
2008.03.23
Change