[AI CC-CC2021] Присвоение значение свойства Text при создании компонента

Creative

Топикстартер
15 лет на форуме
Сообщения
296
Реакции
3
Вариант 1.
var Sample = SamplePanel.add("edittext", undefined,'3000');
Sample.Text = 2000;
$.writeln(Sample.Text);

Все в порядке, показывает 2000.


Вариант 2.
var Sample = SamplePanel.add("edittext", undefined,'3000');
$.writeln(Sample.Text);

Показывает undefined.

В хелпе написано, что при создании компонента методом add, содержание аргумента Text присваивается свойства Text создаваемого компонента. Выходит, что не присваивается, или я что-то неправильно поняла?
Зачем мне это нужно? Мне нужно, чтобы в процедуре создания формы дефолтные значения отображались в соответствующих окнах ввода (что работает) и одновременно отправлялись в соответствующие переменные для участия в последующих расчетах (что не работает, если явно не присвоить свойству Text нужное значение). Хочу избежать лишнего кода или понять, что этот код на самом деле необходим.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
В хелпе написано, что при создании компонента методом add, содержание аргумента Text присваивается свойства Text создаваемого компонента. Выходит, что не присваивается, или я что-то неправильно поняла?
Что за "Text" откуда вы его взяли? Есть свойство "text" оно и отображает содержимое эдитбокса
А "Text" - левое свойство которое вы вводите в первом случае дополнительно
 

Creative

Топикстартер
15 лет на форуме
Сообщения
296
Реакции
3
Я взяла его из Хелпа. 3-й аргумент метода add. Интересует последняя строчка определения. Мне правда смущает "if supplied", может быть у меня просто не supplied.
-----------------------------------------
Window.add (type: String , bounds: Bounds , text: String , properties: Object ): Object
ScriptUI Classes
Creates and returns a new control or container object and adds it to the children of this window.

text (optional): Data Type: String
The text or label, a localizable string.
Initial text to be displayed in the control as the title, label, or contents, depending on the control type. If supplied, this value is assigned to the new object’s text property.
-----------------------------------------

То есть оно левое, использовать его бессмысленно, и значение свойства text нужно явно присваивать после создания. Так?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Похоже вы до яваскрипта на бейсике программировали?
Срочно избавляйтесь от его вредных привычек, тут (как и во всех нормальных языках) "text" и "Text" - два совершенно разных свойства
 

Creative

Топикстартер
15 лет на форуме
Сообщения
296
Реакции
3
Да, я уже поняла эту засаду. А до Бейсика, я на Дельфи писала, ему тоже пофиг.

то есть если я пишу
var Sample = SamplePanel.add("edittext", undefined,'3000');
то 3000 я кладу в свойство text

а если... О нет!! Я проверила, нужно было писать $.writeln(Sample.text);
Легче умереть.... А физический смысл у каждого из них как именно различается? (Text и text)
 

Oleg Butrin

20 лет на форуме
Сообщения
1 989
Реакции
1 213
А физический смысл у каждого из них как именно различается? (Text и text)
Очень хочется процитировать фильм Кин-дза-дза.
Язык javascript регистрозависимый, поэтому text, Text, TEXT, tEXT и другие сочетания будут разными переменными. Что логично, ибо даже коды этих строк разные.
 
  • Спасибо
Реакции: Creative

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
А физический смысл у каждого из них как именно различается? (Text и text)
Еще раз повторяю - имя идентификатора casesensivity, то есть, "text", "Text", "TExt",... - будут совершенно разными свойствами
И если свойство "text" уже определено в данном объекте и означает содержимое эдитбокса, то свойство "Text" вы дописываете данному объекту сами и оно не означает ровным счетом ничего, разве что, вы его потом сами использовать захотите для каких то своих целей
 
  • Спасибо
Реакции: Creative

Creative

Топикстартер
15 лет на форуме
Сообщения
296
Реакции
3
Вы что, хотите сказать, что я, вне конструктора, могу просто так, из ничего создать свойство системного (то есть даже не мной описанного) объекта, и компилятор спокойно это пропустит?
Могло быть хуже. (С)
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Вы что, хотите сказать, что я, вне конструктора, могу просто так, из ничего создать свойство системного (то есть даже не мной описанного) объекта, и компилятор спокойно это пропустит?
Добро пожаловать в яваскрипт! ;)
 
Последнее редактирование:

Oleg Butrin

20 лет на форуме
Сообщения
1 989
Реакции
1 213
Вы считаете, что интерпретируемый язык нуждается в компиляторе?
Значительная часть объектов javascript позволяет определять свойства и методы как на уровне объекта, так и на уровне прототипа.
 
  • Спасибо
Реакции: Creative

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835

Creative

Топикстартер
15 лет на форуме
Сообщения
296
Реакции
3
Я постараюсь привыкнуть к тому, что ногу можно не только отрубить, но и пришить в любое время и в любое место. :)
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835