![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
свойство в виде массива
kiberg © (2008-02-26 11:19:00)Я хочу в своем объекте разместить массив записей, что-то вроде этого:
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;
kiberg (2008-02-26 11:55:00) [1]Спасибо!
Сергей М. (2008-02-26 11:52:00) [2]PRowInDict = ^TRowInDict
function TStructDict.GetItems(aIndex: Integer): PRowInDict;
begin
Result := @ FItems[aIndex];
end;
kiberg (2008-02-26 11:47:00) [3]Что-то я не понял. А как это будет выглядеть в виде кода?
Сергей М. (2008-02-26 11:38:00) [4]Доступ к элементу массива не по значению (как сейчас у тебя реализовано), а по ссылке
kiberg (2008-02-26 11:33:00) [5]А какая может быть другая реализация?
Сергей М. (2008-02-26 11:32:00) [6]При такой реализации это будет выглядеть не иначе как:
var
Item: TRowInDict;
..
Item := vStructDict.Items[1];
Item.WordForm := vStr;
vStructDict.Items[1] := Item;