Форум: "Начинающим";
Текущий архив: 2008.03.23;
Скачать: [xml.tar.bz2];
Внизсвойство в виде массива Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c