serbod писал(а):Обработчик чего?
Сказано же - пропертей. Код (рамочно) в посте выше.
Написал первую обёртку TCoverMapRect. Что-то не то. Получается, на такие проперти надо писать персональные обработчики, что не есть хорошо. ...думаю.
Добавлено спустя 5 минут 12 секунд:Aleh писал(а):Строковое представление в хозяйстве пригодится
раньше был согласен, хотя практика показала, что не так уж нужно. Сейчас старым пользуюсь, новое не пишу.
Aleh писал(а):Класс-обертка тоже конвертируется в строку
- НЕТ, он служит для передачи нативного!!! рекорда "из пункта А в пункт Б"
Добавлено спустя 7 минут 49 секунд:вот
- Код: Выделить всё
TCoverProp = class
end;
TCoverMapRect = class(TCoverProp)
R:TMapRect;
end;
Добавлено спустя 13 минут 29 секунд:далее
- Код: Выделить всё
property Gabarits:TCoverMapRect read GetGabarits write SetGabarits;//сама проперть
function TMapObject.GetGabarits: TCoverMapRect;
begin
result:=TCoverMapRect.Create;
result.R:=MapRect;//MapRect - рекорд в классе
end;
procedure TMapObject.SetGabarits(AValue:TCoverMapRect);
begin
if AValue=nil then exit;
MapRect:=AValue.R;
AValue.Free;
end;
// в потомке
property ExtendRect:TCoverMapRect read GetExtendRect write SetExtendRect2; // FExtendRect:TMapRect;//фиксированный экстент pulkovo42
function TMapFrame.GetExtendRect: TCoverMapRect;
begin
result:=TCoverMapRect.Create;
result.R:=FExtendRect;
end;
procedure TMapFrame.SetExtendRect2(AValue: TCoverMapRect);
begin
if AValue=nil then exit;
SetExtendRect(AValue.R);
AValue.Free;
end;
в общем на каждую проперть этого типа надо писать эти примитивные обработчики.
нормальная эволюция проги, когда рекорды эволюционируют в классы, тогда тема закроется, но выходит с рекордами в пропертях беда.