Форум: "Основная";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
Вниззначение по-умолчанию для св-ва типа 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.048 c