Полная версия этой страницы:
Properties
Вопросы связанные с Properties.
1. Как перекрыть чтение и запись property класса-родителя в классе-потомке.
2. Что такое stored, default, nodefault, default, implements и др. "storage directives".
Barmutik
3:01:2006, 10:46
1. Просто переобъявите свойство с таким же названием и будут вызываться методы чтения и установки Вашего потомка.
2. Stored, Default, NoDefaut - отвечают за то будет ли хранится или нет значение проперти в файле формы
Implements - классная директива говорит о том что Вы можете указать что имплементация работы с вашим пропертем (когда эта директива установлена касательно проверти) реализована в другом классе или интерфейсе.
а если метод записи/чтения не объявлен как virtual или dynamic, тогда никак?
Barmutik
4:01:2006, 07:38
Ну видать Вы меня не поняли:
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
а мне ведь надо чтобы вызывались еще Method1 и Method2 из Method3/Method4
Barmutik
4:01:2006, 12:13
Хммм.. а самому их из своих методов вызвать ?
как? они же в private секции
похоже если метод статический, его никак не перекроешь
вообще этой проблемой я заинтересовался когда мне надо было при присвоении Caption перерисовывать компонент, а процедура SetText оказалась статической, поэтому пришлось создать property MyCaption,а уже оттуда перерисовывать.
Еще: SetEnabled - процедура установки активности - динамическая - поэтому я её перекрыл override, а вот с Caption так не получилось. Интересно почему SetText - статический метод?
А что за объект? У TControl'a метод SetText как виртуальный... А в чем проблема создать свое свойтсво Caption и через него использовать родительский Caption. А еще можно использовать reintroduce...
у меня TCustomControl.
а вообще чем отличаются объекты с Custom и объекты без него? Например TCustomControl - TCointrol, TCustomForm - TForm и т.д.
А фиг его знает... Знаю что лучше использовать custom'ы, т.к. у них с наследованием получше...
Barmutik
6:01:2006, 11:56
Со словами custom идут базовые классы от которых потом уже надо наследоваться и релаизовавывать то что конкретно надо ...
В этих классах содержатся только общие методы и свойства для сущностей которые они реализауют...
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.