Помогите, пожалуйста, разобраться с работой спиннеров.
Я сделал спиннер для изменения масштаба модели:
rollout ImportRollout "Model Import"
(
spinner SpnModelScale "Model scale: " range:[0.01,100,g_modelScale] type:#float scale:0.01 fieldwidth:60 align:#left
on SpnModelScale changed val do g_modelScale = val
)
По умолчанию значение g_modelScale = 1.0.
При изменении значения спиннера с помощью перемещения зажатой ЛКМ, оно изменяется с шагом 0,02 (хотя scale:0.01).
При изменении значения спиннера с помощью нажатия ЛКМ на стрелку вверх\вниз, оно изменяется с шагом 1.0 (хотя scale:0.01).
При попытке ручного ввода значения в поле спиннера, оно не изменяется (остается текущее значение спиннера).
Безуспешно пытался использовать эвент для изменения значения спиннера при ручном вводе значения в поле спиннера:
rollout ImportRollout "Model Import"
(
spinner SpnModelScale "Model scale: " range:[0.01,100,g_modelScale] type:#float scale:0.01 fieldwidth:60 align:#left
on SpnModelScale changed val do g_modelScale = val
on SpnModelScale entered do g_modelScale = SpnModelScale.value
)
Подскажите, пожалуйста, как сделать, чтобы:
1) значение спиннера изменялось с шагом 0.01 как при изменении значения спиннера с помощью перемещения зажатой ЛКМ, так и при изменении значения спиннера с помощью нажатия ЛКМ на стрелку вверх\вниз
2) значение спиннера изменялось при ручном вводе и нажатии Enter
Спасибо.
PS: Я так и не понял, как использовать дополнительные аргументы в этом эвенте:
on <spinner> entered [<inSpin_arg>] [<inCancel_arg>] do <expr>
Проверьте настройки макса на вкладке General в группе Spinners. По дефолту выглядит так:
Если включена привязка, то отключите. При включённой привязке у меня такое-же поведение только при одиночном клике по стрелке значение также меняется на 1, а в остальных случаях меняет нормально с шагом 0.01.
inSpin_arg - вернёт true если значение было изменено с помощью мыши.
inCancel_arg - вернёт true если во время зажатой ЛКМ нажали ПКМ.
Спасибо. Стоял флажок на Use Snap, убрал его.
Теперь при изменении значения спиннера с помощью нажатия ЛКМ на стрелку вверх\вниз,
оно изменяется с шагом 0.01 (как и указано в scale:0.01).
Однако, остальные проблемы так и остались:
1) При изменении значения спиннера с помощью перемещения зажатой ЛКМ,
оно все также изменяется с шагом 0,02 (хотя scale:0.01).
2) При попытке ручного ввода значения в поле спиннера, оно не изменяется (остается текущее значение спиннера).
inSpin_arg - вернёт true если значение было изменено с помощью мыши.
inCancel_arg - вернёт true если во время зажатой ЛКМ нажали ПКМ.
Спасибо, но это я понял из хелпа по макскрипту.
Я не понял только КАК и КОГДА применять эти аргументы.
В хелпе по максскрипту нет ни одного примера их применения.
Мне бы пример поглядеть, где их активно используют.
Доступ к резюме доступен только по пакетному доступу HR менеджерам зарегистрированных компаний. Узнать о вариантах корпоративных пакетов можно по ссылке.
Почемучкин
Помогите, пожалуйста, разобраться с работой спиннеров.
Я сделал спиннер для изменения масштаба модели:
rollout ImportRollout "Model Import" ( spinner SpnModelScale "Model scale: " range:[0.01,100,g_modelScale] type:#float scale:0.01 fieldwidth:60 align:#left on SpnModelScale changed val do g_modelScale = val )По умолчанию значение g_modelScale = 1.0.При изменении значения спиннера с помощью перемещения зажатой ЛКМ, оно изменяется с шагом 0,02 (хотя scale:0.01).
При изменении значения спиннера с помощью нажатия ЛКМ на стрелку вверх\вниз, оно изменяется с шагом 1.0 (хотя scale:0.01).
При попытке ручного ввода значения в поле спиннера, оно не изменяется (остается текущее значение спиннера).
Безуспешно пытался использовать эвент для изменения значения спиннера при ручном вводе значения в поле спиннера:
rollout ImportRollout "Model Import" ( spinner SpnModelScale "Model scale: " range:[0.01,100,g_modelScale] type:#float scale:0.01 fieldwidth:60 align:#left on SpnModelScale changed val do g_modelScale = val on SpnModelScale entered do g_modelScale = SpnModelScale.value )Подскажите, пожалуйста, как сделать, чтобы:1) значение спиннера изменялось с шагом 0.01 как при изменении значения спиннера с помощью перемещения зажатой ЛКМ, так и при изменении значения спиннера с помощью нажатия ЛКМ на стрелку вверх\вниз
2) значение спиннера изменялось при ручном вводе и нажатии Enter
Спасибо.
PS: Я так и не понял, как использовать дополнительные аргументы в этом эвенте:
Владислав Бодюл
Если включена привязка, то отключите. При включённой привязке у меня такое-же поведение только при одиночном клике по стрелке значение также меняется на 1, а в остальных случаях меняет нормально с шагом 0.01.
inSpin_arg - вернёт true если значение было изменено с помощью мыши.
inCancel_arg - вернёт true если во время зажатой ЛКМ нажали ПКМ.
Почемучкин
Теперь при изменении значения спиннера с помощью нажатия ЛКМ на стрелку вверх\вниз,
оно изменяется с шагом 0.01 (как и указано в scale:0.01).
Однако, остальные проблемы так и остались:
1) При изменении значения спиннера с помощью перемещения зажатой ЛКМ,
оно все также изменяется с шагом 0,02 (хотя scale:0.01).
2) При попытке ручного ввода значения в поле спиннера, оно не изменяется (остается текущее значение спиннера).
Спасибо, но это я понял из хелпа по макскрипту.
Я не понял только КАК и КОГДА применять эти аргументы.
В хелпе по максскрипту нет ни одного примера их применения.
Мне бы пример поглядеть, где их активно используют.