![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Доброго всем дня.
Делал, делал свою программу. Вдруг возник неожиданный вопрос: нужны ли мне Property или полями обойдёмся. У меня в стороннем юните: Код:
TP= class Enabled:Boolean; end; И я в рабочей проге создаю объект класса TP и обращаюсь к нему: Код:
var ClassObject:TP; ... ClassObject.Enabled:=True; И всё . Зачем тогда придумали какие-то property? Может я что-то упустил ? |
|
#2
|
|||
|
|||
|
А визуальное проектирование? (Смотри в Object Inspector, там есть твой Properties)
P.S. не по русски как то без property получается |
|
#3
|
||||
|
||||
|
Именно так, исключительно для визуального программирования, ведь не всегда свойства класса имеют такой простой тип. А будет у вас скажем свойством TStringList. Как вы его заполнять будете в одной строчке?
|
|
#4
|
||||
|
||||
|
Цитата:
lmikle правильно сказал - для добавления логики. Например у TLabel есть свойство Caption При его изменении нужно перерисовать контрол. Или при установке нового значения нужно проверить удовлетворяет ли оно какому-то условию. Прийдет время, сам ощутишь острую необходимость. Цитата:
|
|
#5
|
||||
|
||||
|
Цитата:
|
|
#6
|
|||
|
|||
|
Начиная с версии 5.0 в TurboPascal была поддержка ООП (так называемой теперь "старой модели"). Кстати, она сохранилась и теперь в Дельфи. Тогда класс описывался ключевым словом object. Посмотрите исходники TurboVision - это именно ООП с классами и объектами.
|
|
#7
|
|||
|
|||
|
Property нужны реально в нескольких случаях:
1. Когда ты хочешь добавить какую-нить логику при чтении значения или при его записи. Типичный пример - вывешивание свойства Count внутреннего списка наружу. 2. Когда тебе надо написать компонент. Object Inspector понимает только property в секции published. 3. Когда ты отдаешь свой класс в чужое пользование и хочешь скрыть часть внутренней структуры, хотя тут опять же можно обойтись и без них. |