![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Покажите пример работы с array property
volph © (2002-06-30 17:14:00)Покажите пример работы с array property
Anatoly Podgoretsky (2002-06-30 20:19:00) [1]Так и осталось непонятным, то ли ты хочешь использовать, то ли хочешь создать компонент с индексными саойствами?
Юрий Зотов (2002-06-30 20:06:00) [2]См., например, в исходниках модуля Classes свойство Values у объекта TStrings (TStringList).
volph (2002-06-30 19:37:00) [3]А если индекс не целое число а строка?
Бурундук (2002-06-30 19:23:00) [4]Простейший пример
TTest = class
private
FData: array of Integer;
public
function GetData(Index: Integer): Integer;
procedure SetData(Index: Integer; Value: Integer);
property Data[Index: Integer]: Integer read GetData write SetData; // default;
end;
function GetData(Index: Integer): Integer;
begin
if (Index > 0) and (Index < Length(FData)) then
Result := FData[Index]
else
Result := 0; // raise ...;
end;
procedure SetData(Index: Integer; Value: Integer);
begin
if (Index > 0) and (Index < Length(FData)) then
FData[Index] := Value
else
; // raise ...;
end;
И работаешь с Test.Data как с массивом
default означает, что ты можешь написать как
Test.Data[i], так и просто Test[i]
Index не обязательно должен быть целым, это может быть что угодно, хоть строка или объект.
Индексов может быть несколько:
property Data[Name: string; Index: Integer{...}]...
Anatoly Podgoretsky (2002-06-30 18:30:00) [5]Да требуются подробности непонимания, что именно, а так работа не отличается от работы с обычным массивов, например Pixels[x,y] наглядный пример свойства с друхмерным массивом, Mermo.Lines[N] одномерный
Юрий Зотов (2002-06-30 18:24:00) [6]Повторять хелп смысла, конечно, нет. В чем конкретно проблема? Что именно не работает?
volph (2002-06-30 18:20:00) [7]не работает пример и не пойму его логику :(
Anatoly Podgoretsky (2002-06-30 17:33:00) [8]Тема в хелпе Array properties как раз с примерами