![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Классы: как присвоить свойствам значения по-умолчанию? [D2, D3, D4, D5, D6, D7, D2005, 95/98, ME, NT4, 2000, XP, 2003]
textExpanser © (2008-07-23 12:07:00)Нужно для сокращения кодинга и повышения удобочитаемости присваивать свойствам класса значения по-умолчанию прямо в описании этого класса.
Типа как константы-переменные (инициализируемые переменные).
А в классе это могло бы выглядеть так:
type
MyClass = class
Width :Integer = 1000;
Height :Integer = 700;
end;
Такое уже прикрутили в Delphi или еще нет? Если прикрутили, то с какой версии работает?
palva (2008-07-23 12:53:00) [21]> default никуда ничего не присваивает...
> В данном случае нужно только для ИО(инспектора объектов)
При динамическом создании компонента - присваивает.
Медвежонок Пятачок (2008-07-23 12:52:00) [22]А инспектору-то он зачем сдался?
{RASkov} (2008-07-23 12:46:00) [23]> [8] Dennis I. Komarov © (23.07.08 12:26)
> property BevelKind default bkNone;
default никуда ничего не присваивает... В данном случае нужно только для ИО(инспектора объектов)
Медвежонок Пятачок (2008-07-23 12:38:00) [24]Для полей тоже самое что и для свойств.
[6]
textExpanser (2008-07-23 12:37:00) [25]Ок. Нужно именно для полей.
Anatoly Podgoretsky (2008-07-23 12:31:00) [26]Наверно с букваря и надо начинать, что бы мог отличать свойства от полей.
Медвежонок Пятачок (2008-07-23 12:27:00) [27]А в записях (record)?
а в букварь?
Dennis I. Komarov (2008-07-23 12:26:00) [28]> [4] Тын-Дын © (23.07.08 12:19)
TMemo =
...
property BevelKind default bkNone;
...
В каком конструкторе присваевается - не нашел (лень)
textExpanser (2008-07-23 12:26:00) [29]А в записях (record)?
Медвежонок Пятачок (2008-07-23 12:23:00) [30]присваивать свойствам класса значения по-умолчанию прямо в описании этого класса.
Такое невозможно без откровенных и кривых костылей. Объекты в D динамические и не создаются компилятором.
Anatoly Podgoretsky (2008-07-23 12:19:00) [31]> textExpanser (23.07.2008 12:07:00) [0]
Свойства
Тын-Дын (2008-07-23 12:19:00) [32]
> Dennis I. Komarov © (23.07.08 12:18) [1]
> в VCL есть много таких
Например?
{RASkov} (2008-07-23 12:19:00) [33]> [0] textExpanser (23.07.08 12:07)
До D7 - нет.
А присваивать значения по умолчанию нужно в конструкторе..... а если класс еще и компонент, то для "умалчиваемых" свойств есть деректива(или как ее там, комманда) default ххх.... Она(default) нужна только для ИО... еще можно указать целиком свойство default(оффтоп), т.е. свойство по умолчанию, пример: Lst: TStringList; Txt: String; Txt:=Lst.String[5] а можно и так: Txt:=Lst[5] Свойство String по умолчанию, но это уже не по теме.... сорри.
Dennis I. Komarov (2008-07-23 12:18:00) [34]в VCL есть много таких, надо бы глянуть, аль лень?
Vlad Oshin (2008-07-23 12:18:00) [35]Конструктор этого класса может проще написать?