Лекция #1: Property в Delphi [Открытая] (комментарии)
Это сообщение сгенерировано автоматически.
эх, народ - чегото я зашел в эту ветку по старой памяти - и не нашел ответа на старинный вопрос как в ObjectInspector выстроить property в произвольном порядке, а не по алфавите (default).
Не было указано, что проперти позволяют для класса перегрузить оператор [].
Допустим есть класс аццкого массива:
TInfernalArray = class .... public property Element[i: Integer]: Integer read GetElement write SetElement; default; end;
Тогда в юзать его можно будет так:
var arr: TInfernalArray; something: Integer; begin arr := TInfernalArray.Create; .... arr[i] := something; .... something := arr[i]; .... end;
В Delphi проперти существуют не просто для "экономии буковок". Если класс объявлен с директивой {$M+}, как, например, класс TPersistent, то в классе будет хранится информация о всех published пропертях и методах. Это даёт большие возможности (на которых и держится VCL). Например, мы можем получить значения всех пропертей, не зная ничего о классе, можем прочитать из файла значения пропертей и установить их. Причём get и set методы вызываются автоматически, если пользоваться функциями
function GetPropValue(Instance: TObject; const PropName: string; PreferStrings: Boolean = True): Variant; procedure SetPropValue(Instance: TObject; const PropName: string; const Value: Variant);
из модуля TypInfo. Причём процедуру чтения пропертей класса из файла можно написать один раз, и она будет работать для всех классов одинаково. Тут уже "экономия буковок" может пойти на порядки, при грамотном использовании.
P.S. Я не из Эстонии, просто статью прочитал только что :)
Тема в архиве.