Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

значение по-умолчанию для св-ва типа single   Найти похожие ветки 

 
ancara   (2004-04-01 09:20) [0]

Господа, подскажите. Пишу компонент, сделал у него св-во:property Red: single ... по умолчанию оно должно быть 0.2 (устанавливается при Create), а если оно 0 (ноль) то это уже не по умолчанию, только вот Дельфя об этом не знает и если там 0, она не хочет это св-во в файл формы сохранять (*.dfm). В итоге компонент создается, в Create ставиться 0.2 а потом на 0 не переправляется.


 
Defunct ©   (2004-04-01 09:25) [1]

Примерчик из модуля Froms:

property Visible: Boolean read FVisible write SetVisible default True;


 
Digitman ©   (2004-04-01 09:28) [2]


> если там 0, она не хочет это св-во в файл формы сохранять
>


что, прямо так и говорит, мол, "не хочу ноль сохранять" ?
или как это выглядит ?


 
ancara   (2004-04-01 09:31) [3]

Это я смотрел уже, в help"е значится:
The default and nodefault directives are supported only for ordinal types and for set types, provided the upper and lower bounds of the set’s base type have ordinal values between 0 and 31
Это, типа, тока для ordinal, множеств (set of), boolean и еще чё-то, я не понял...


 
ancara   (2004-04-01 09:33) [4]

Digitman > Не ну я в блокноте открыл файл *.dfm (у меня форма не в бинарном, а в текстовом виде)и там этого св-ва нету. А другие есть, кот. не в ноль...


 
Digitman ©   (2004-04-01 09:47) [5]

оно, свойство-то, у тебя точно published ?


 
Skier ©   (2004-04-01 10:00) [6]


> Это, типа, тока для ordinal, множеств (set of), boolean

угу


 
ancara   (2004-04-01 10:01) [7]

да, конечно...


 
Юрий Зотов ©   (2004-04-01 10:31) [8]

Просто добавьте stored True, а default уберите совсем. Для этого типа свойств опция default не поддерживается.


 
ancara   (2004-04-01 10:36) [9]

В help"е:
If a property has no stored directive, it is treated as if stored True were specified.
У меня странные подозрения, что borland"овцы спецально мне назло так сделали, чтоб таких компонентов не писал...


 
Юрий Зотов ©   (2004-04-01 10:47) [10]

ОК. Есть еще способ - напишите stored IsRedStored и добавьте в private метод:

function TMyClass.IsRedStored: boolean;
begin
 Result := Red <> 0.2
end;


 
Digitman ©   (2004-04-01 10:58) [11]


> borland"овцы спецально мне назло так сделали


угу ... они как знали, что ты скакого-то перепугу это св-во попытаешься сделать single ... хотя по имени св-ва можно сделать вывод, что речь идет о значении цветовой составляющей ... которая вполне можно сделать и целочисленным


 
ancara   (2004-04-01 11:00) [12]

Не, не, не, Юрий, мы друг друга не поняли. То что написано в help"e про stored(см. выше) означает, что если я не укажу явно

stored false
то Дельфя будет считать, что указано
stored true
Я указывал ради эксперимента true (мол: "Это св-во надо сохранить, по-любому!"), она его сохраняет без проблем, но если оно НЕ НОЛЬ. А если ноль она думает типа что его сохранять раз оно ноль. Я так подозреваю, что в Дельфе считается, что ноль - это значение по умолчанию для всех типов свойств, кот. могут быть нулем. Проблема в том, что посредством директивы default можно Дельфе "сказать" что по-умолчанию значение иное, но default не применима к типу single (см. выше). Вообщем я в тупике, надо в Borland жалобы писать :)))
  А за код спасибо Юрию, но он не поможет.


 
ancara   (2004-04-01 11:03) [13]

Digitman > да не я тут с OpenGL немного замутил а в Opengl.pas:
GLfloat = Single;
Но чувствую, что придется сделать ordinal, а в самый ответсвенный момент приводить к диапазону [0.0 ... 1.0]


 
Defunct ©   (2004-04-01 20:20) [14]

Ps: Сохраняйте вручную.


 
Юрий Зотов ©   (2004-04-01 20:39) [15]

> ancara   (01.04.04 11:00) [12]

> Не, не, не, Юрий, мы друг друга не поняли
Эт-точно. Я же написал - stored IsRedStored. А не True.

> А за код спасибо Юрию, но он не поможет
А Вы все-таки попробуйте...
:о)



Страницы: 1 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.025 c
1-1079954454
BALU1111
2004-03-22 14:20
2004.04.18
Опять TListView


3-1079891555
neVIP
2004-03-21 20:52
2004.04.18
Эксклюзивный доступ к базе


14-1080029055
Alexander666
2004-03-23 11:04
2004.04.18
NTFS


1-1080902321
kEY//
2004-04-02 14:38
2004.04.18
наверное, поток...


4-1075488257
stainer
2004-01-30 21:44
2004.04.18
loadbitmap не пашет!