Цитата:
Сообщение от Letos
У объекта Window1 нет свойства ActiveMaterial (только если вы его не создавали). Если вы хотите получить доступ к текущему активному материалу, строка должна выглядеть так:
Window1.ThickMaterial1 = ActiveMaterial.Thickness;
И еще одна странная вещь в вашем коде. Это как раз то же самое присвоение. Судя по коду, Window1.ThickMaterial1 - это числовое поле. Но в "ошибочной" строке вы пытаетесь записать толщину материала в переменную этого поля, из-за чего скрипт будет работать неверно.
Подробное пояснение, почему
После выполнения присвоения в третьей строке, в переменной Window1.ThickMaterial1 будет находиться число (16, например). Следующим шагом идет проверка на равенство значений Window1.ThickMaterial1.Value (то есть 16.Value) и 10. У переменной Window1.ThickMaterial1 числовое значение, у которого, в свою очередь, свойство Value отсутствует. В итоге Window1.ThickMaterial1.Value вернет undefined и условие будет выглядеть так:
if (undefined == 10).
В итоге, это условие не будет никогда верным, но из-за особенностей JS, оно не является ошибочным, поэтому скрипт продолжит работу.
[свернуть]
Выход из этой ситуации следующий: третью строку необходимо исправить, чтобы она выглядела так:
Window1.ThickMaterial1.Value = ActiveMaterial.Thickness;
P.S На будущее: если скрипт выдает ошибку, связанную с вашим вопросом, неплохо было бы и текст ошибки тоже добавлять, ведь в ней сказано почти все, что нужно для поиска ошибки и причин ее возникновения.
|
Добавлено через 29 минут
Спасибо большое. С Вашими поправками
Цитата:
Сообщение от Guamoko
Window1.ThickMaterial1.Value = ActiveMaterial.Thickness;
|
заработало,но только после того,
Цитата:
Сообщение от Guamoko
И еще одна странная вещь в вашем коде. Это как раз то же самое присвоение. Судя по коду, Window1.ThickMaterial1 - это числовое поле.
|
как я создал поле и присвоил ему значение Window1.ThickMaterial1.Value= ActiveMaterial.Thickness;
Вообще-то, мне это поле не нужно и в своем варианте
Window1.ThickMaterial1.=ActiveMaterial.Thickness;
я предполагал, что ThickMaterial1-переменная, принимающая значение толщины активного материала.А уже от этой переменной зависило
if(Window1.ThickMaterial1.Value==10){
Window1.BNapl1.Value=Window1.LGProf.Value+15;
Window1.BNapl1.Layout.Top=Window1.BNapl1.Layout.To p;
Возможно ли обойтись без поля? Если нет,я его скрою, присвоив Visible-false
Еще раз позволю себе повторить задачу,которую хотелось бы решить.
1)Объявить переменную,принимающую значение толщины активного материала.
2)при изменении материала,если толщина активного материала=10,запустить формулу
Window1.BNapl1.Value=Window1.LGProf.Value+15;
Window1.BNapl1.Layout.Top=Window1.BNapl1.Layout.To p;
которая выводит результат вычисления в окно BNapl1.