Форум: "Начинающим";
Текущий архив: 2008.08.31;
Скачать: [xml.tar.bz2];
ВнизКлассы: как присвоить свойствам значения по-умолчанию? Найти похожие ветки
← →
textExpanser (2008-07-23 12:07) [0]Нужно для сокращения кодинга и повышения удобочитаемости присваивать свойствам класса значения по-умолчанию прямо в описании этого класса.
Типа как константы-переменные (инициализируемые переменные).
А в классе это могло бы выглядеть так:
type
MyClass = class
Width :Integer = 1000;
Height :Integer = 700;
end;
Такое уже прикрутили в Delphi или еще нет? Если прикрутили, то с какой версии работает?
← →
Dennis I. Komarov © (2008-07-23 12:18) [1]в VCL есть много таких, надо бы глянуть, аль лень?
← →
Vlad Oshin © (2008-07-23 12:18) [2]Конструктор этого класса может проще написать?
← →
{RASkov} © (2008-07-23 12:19) [3]> [0] textExpanser (23.07.08 12:07)
До D7 - нет.
А присваивать значения по умолчанию нужно в конструкторе..... а если класс еще и компонент, то для "умалчиваемых" свойств есть деректива(или как ее там, комманда) default ххх.... Она(default) нужна только для ИО... еще можно указать целиком свойство default(оффтоп), т.е. свойство по умолчанию, пример: Lst: TStringList; Txt: String; Txt:=Lst.String[5] а можно и так: Txt:=Lst[5] Свойство String по умолчанию, но это уже не по теме.... сорри.
← →
Тын-Дын © (2008-07-23 12:19) [4]
> Dennis I. Komarov © (23.07.08 12:18) [1]
> в VCL есть много таких
Например?
← →
Anatoly Podgoretsky © (2008-07-23 12:19) [5]> textExpanser (23.07.2008 12:07:00) [0]
Свойства
← →
Медвежонок Пятачок © (2008-07-23 12:23) [6]присваивать свойствам класса значения по-умолчанию прямо в описании этого класса.
Такое невозможно без откровенных и кривых костылей. Объекты в D динамические и не создаются компилятором.
← →
textExpanser (2008-07-23 12:26) [7]А в записях (record)?
← →
Dennis I. Komarov © (2008-07-23 12:26) [8]> [4] Тын-Дын © (23.07.08 12:19)
TMemo =
...
property BevelKind default bkNone;
...
В каком конструкторе присваевается - не нашел (лень)
← →
Медвежонок Пятачок © (2008-07-23 12:27) [9]А в записях (record)?
а в букварь?
← →
Anatoly Podgoretsky © (2008-07-23 12:31) [10]Наверно с букваря и надо начинать, что бы мог отличать свойства от полей.
← →
textExpanser (2008-07-23 12:37) [11]Ок. Нужно именно для полей.
← →
Медвежонок Пятачок © (2008-07-23 12:38) [12]Для полей тоже самое что и для свойств.
[6]
← →
{RASkov} © (2008-07-23 12:46) [13]> [8] Dennis I. Komarov © (23.07.08 12:26)
> property BevelKind default bkNone;
default никуда ничего не присваивает... В данном случае нужно только для ИО(инспектора объектов)
← →
Медвежонок Пятачок © (2008-07-23 12:52) [14]А инспектору-то он зачем сдался?
← →
palva © (2008-07-23 12:53) [15]> default никуда ничего не присваивает...
> В данном случае нужно только для ИО(инспектора объектов)
При динамическом создании компонента - присваивает.
← →
Медвежонок Пятачок © (2008-07-23 12:54) [16]При динамическом создании компонента - присваивает.
Чего только не услышишь в жару
← →
Dennis I. Komarov © (2008-07-23 12:54) [17]> [13] {RASkov} © (23.07.08 12:46)
Я в курсе, просто не стал рыть в конструктре какого предка он присваивается. Пусть будет задание для автора...
← →
jack128_ (2008-07-23 12:55) [18]
> В данном случае нужно только для ИО(инспектора объектов)
не только.
> А инспектору-то он зачем сдался?
Инспектор продсвечивает жирным свойства, значения которых не равны, чем что по умолчаниюю идут.
← →
{RASkov} © (2008-07-23 12:58) [19]> [14] Медвежонок Пятачок © (23.07.08 12:52)
Для того, что бы не выделять жирным изменившееся свойство.... Т.е. если будет
property Width: Integer .... default 100;
В конструкторе:
Width:=100;
Для компонентов в таком случае ИО будет считать, что свойство по умолчанию и не выделит его жирным...
← →
Медвежонок Пятачок © (2008-07-23 13:01) [20]Ну я бы все равно не сказал, что дефолт нужен инспектору.
← →
Anatoly Podgoretsky © (2008-07-23 13:02) [21]
> А инспектору-то он зачем сдался?
F1
← →
Тын-Дын © (2008-07-23 13:06) [22]
> Dennis I. Komarov © (23.07.08 12:26) [8]
> > [4] Тын-Дын © (23.07.08 12:19)
>
>
> TMemo =
> ...
> property BevelKind default bkNone;
> ...
> В каком конструкторе присваевается - не нашел (лень)
А зря лень. тогда бы увидел, что присваиваются значения в конструкторе, а не в поле класса.
← →
Тын-Дын © (2008-07-23 13:09) [23]
> jack128_ (23.07.08 12:55) [18]
> Инспектор продсвечивает жирным свойства, значения которых
> не равны, чем что по умолчаниюю идут.
>
> {RASkov} © (23.07.08 12:58) [19]
> Для того, что бы не выделять жирным изменившееся свойство.
>
> Для компонентов в таком случае ИО будет считать, что свойство
> по умолчанию и не выделит его жирным...
Только для BDS.
← →
Медвежонок Пятачок © (2008-07-23 13:12) [24]не только для БДС, зато только для ординал тайп
← →
Тын-Дын © (2008-07-23 13:18) [25]
> Медвежонок Пятачок © (23.07.08 13:12) [24]
> не только для БДС, зато только для ординал тайп
В D6 нет такого для любых типов. В D5 тоже. Остается D7?
← →
textExpanser (2008-07-23 13:19) [26]Раньше default использовалось для того, чтобы не сохранять в dfm значения свойств, которые равны "default". Что-то изменилось?
Запутался я в ваших комментариях. Так можно как-то инициализировать свойство или поле класса прямо в описании класса?
← →
Медвежонок Пятачок © (2008-07-23 13:19) [27]остается
← →
Медвежонок Пятачок © (2008-07-23 13:23) [28]Так можно как-то инициализировать свойство или поле класса прямо в описании класса?
уже сказали.
← →
Тын-Дын © (2008-07-23 13:25) [29]
> textExpanser (23.07.08 13:19) [26]
>Так можно как-то инициализировать
> свойство или поле класса прямо в описании класса?
Нет.
← →
Anatoly Podgoretsky © (2008-07-23 13:47) [30]> textExpanser (23.07.2008 13:19:26) [26]
Изменилось, но и раньше поведение зависило от других модификаторов.
А сейчас кроме того что было, он еще и другие вещи делает, например подсветка в ИО
← →
Dennis I. Komarov © (2008-07-23 14:16) [31]> [22] Тын-Дын © (23.07.08 13:06)
А разве я где-то утверждал обратное? Или [0] оно это мне надо было. На какого, мне его искать, если я и так знаю, что гдемто оно там.
← →
Тын-Дын © (2008-07-23 14:21) [32]
> Dennis I. Komarov © (23.07.08 14:16) [31]
> > [22] Тын-Дын © (23.07.08 13:06)
>
> А разве я где-то утверждал обратное?
Твои слова:
> Dennis I. Komarov © (23.07.08 12:18) [1]
> в VCL есть много таких, надо бы глянуть, аль лень?
Или нет?
← →
Dennis I. Komarov © (2008-07-23 14:28) [33]> [32] Тын-Дын © (23.07.08 14:21)
Мои и что?
Subj: "Классы: как присвоить свойствам значения по-умолчанию?"
← →
Тын-Дын © (2008-07-23 16:08) [34]
> Dennis I. Komarov © (23.07.08 14:28) [33]
> > [32] Тын-Дын © (23.07.08 14:21)
>
> Мои и что?
И то. Топик читай внимательнее.
← →
Vlad Oshin © (2008-07-23 16:27) [35]CL=class
const
CI:char="5";
var
FI:string[2];
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
var
CL1:CL;
begin
cl1:=cl.Create;
showmessage(CL1.fi+"--"+CL1.CI);
CL1.CI:="3";
showmessage(CL1.fi+"--"+CL1.CI);
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.08.31;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.006 c