Properties

  • Автор темы -
  • Дата начала
Статус
Закрыто для дальнейших ответов.

Гость
#1
Вопросы связанные с Properties.
1. Как перекрыть чтение и запись property класса-родителя в классе-потомке.
2. Что такое stored, default, nodefault, default, implements и др. "storage directives".
 
B

Barmutik

Гость
#2
1. Просто переобъявите свойство с таким же названием и будут вызываться методы чтения и установки Вашего потомка.

2. Stored, Default, NoDefaut - отвечают за то будет ли хранится или нет значение проперти в файле формы
Implements - классная директива говорит о том что Вы можете указать что имплементация работы с вашим пропертем (когда эта директива установлена касательно проверти) реализована в другом классе или интерфейсе.
 

Гость
#3
а если метод записи/чтения не объявлен как virtual или dynamic, тогда никак?
 
B

Barmutik

Гость
#4
Ну видать Вы меня не поняли:

Код:
type
TAncestor = class
  ...
 property Value: Integer read Method1 write Method2;
end;

TDescendant = class(TAncestor)
  ...
 property Value: Integer read Method3 write Method4;
end;
...
MyObject := TDescendant.Create;
И будут вызываться Ваши методы 3 и 4
 

Гость
#5
а мне ведь надо чтобы вызывались еще Method1 и Method2 из Method3/Method4
 
B

Barmutik

Гость
#6
Хммм.. а самому их из своих методов вызвать ?
 

Гость
#7
как? они же в private секции
похоже если метод статический, его никак не перекроешь
вообще этой проблемой я заинтересовался когда мне надо было при присвоении Caption перерисовывать компонент, а процедура SetText оказалась статической, поэтому пришлось создать property MyCaption,а уже оттуда перерисовывать.
Еще: SetEnabled - процедура установки активности - динамическая - поэтому я её перекрыл override, а вот с Caption так не получилось. Интересно почему SetText - статический метод?
 
X

xelaok

Гость
#8
А что за объект? У TControl'a метод SetText как виртуальный... А в чем проблема создать свое свойтсво Caption и через него использовать родительский Caption. А еще можно использовать reintroduce...
 

Гость
#9
у меня TCustomControl.
а вообще чем отличаются объекты с Custom и объекты без него? Например TCustomControl - TCointrol, TCustomForm - TForm и т.д.
 
X

xelaok

Гость
#10
А фиг его знает... Знаю что лучше использовать custom'ы, т.к. у них с наследованием получше...
 
B

Barmutik

Гость
#11
Со словами custom идут базовые классы от которых потом уже надо наследоваться и релаизовавывать то что конкретно надо ...

В этих классах содержатся только общие методы и свойства для сущностей которые они реализауют...
 
Статус
Закрыто для дальнейших ответов.