Поле типа Listbox.

  • Автор темы DNT
  • Дата начала
D

DNT

На форме есть поле типа ListBox, список которого жестко задан: числа от 0 до 9.
когда пользователь меняет значение поля нажатием кнопок "вверх/вниз" - число визуально в поле изменяется, НО если взять значение этого поля, например uidoc.document.f1(0), то оно не поменялось (осталось старое). Решается эта проблема "кликаньем" по самому полю, оно становится выделенным и теперь можно брать uidoc.document.f1(0), значение будет верным. Т.е. когда меняем значение в поле, потом нужно ещё переместить фокус на него.

Вопрос: как сделать так, чтоб не было необходимости подтверждать свой выбор кликаньем по полю? Необходимо чтоб пользователь менял значение и нажимал кнопку, без необходимости кликать по полю.

p.s. как-то сумбурно я всё объяснил :) ... прилагаю картинку, если не понятно, разъясню подробно
 

Вложения

  • 123.JPG
    123.JPG
    6,2 КБ · Просмотры: 525
D

DNT

По-моему, нужно делать свои кнопки.


Пробовал. В таком случае большая задержка между кликом по кнопке и изменением числа в поле. Неудобно, допустим в поле число 9, тебе надо выставить 5 - логично было бы быстро щелкнуть по кнопке "вниз" четыре раза, но на практике после четырех кликов будет 6 или 7. Дискомфорт еще хуже чем при использовании ListBox.
 
A

Akupaka

а не пробовал научить юзера нажимать Enter (пробел) для подтверждения?..
на самом-то деле это не глюк, это правильная работа элемента, т.е. есть фокус предполагаемого значения, а есть выбранное значение..
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
Вообще странно использовать скроллинг для изменения значений. :)
 
D

DNT

а не пробовал научить юзера нажимать Enter (пробел) для подтверждения?..
на самом-то деле это не глюк, это правильная работа элемента, т.е. есть фокус предполагаемого значения, а есть выбранное значение..


Научить это легко сказать, будут делать ошибочный набор и вопить что ошибки не по их вине, а программа неправильно работает. Этот вариант оставим как самый последний.

А программно получается никак нельзя? Допустим не в момент изменения поля, а в момент нажатия по кнопке "Подтвердить" как-то изменить выбранное значение поля на то что под фокусом?

Вообще странно использовать скроллинг для изменения значений. :)

Постановка задачи такая - использовать только мышу. А ListBox просто подходит для наглядности, предметная область - показания бытовых счетчиков учёта эл., воды, ....
 
A

Akupaka

можешь сделать обычное поле, рядом уцепить две картинки, на каждую из которых повесить функцию +/- значения и будет тебе щастье...
если не хочешь решать глупые задачи, приучай пользователей использовать все правильно!
то, что пользователь некорректно использует программу не является проблеммой программы или разработчика!
 
D

DNT

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

Это всё понятно. Я собственно хотел получить ответ и получил: реализовать на ListBox нельзя. Буду использовать ComboBox.
Всем спасибо.
 

Murtas

Green Team
11.04.2006
137
1
BIT
5
DNT

Notes sucks! - как раз и у меня имеется аналогичная проблема на данный момент - только с ComboBox (по сути не важно ListBox или ComboBox).
В пользовательском диалоге инициализирую 2 ComboBox поля - по дефолту почему-то выставляются последние значения. Так вот если эти значения удовлетворяют мне - я ничего не меняю и соответственно значения из берутся из первых значений ... короче, пока забил на это путем инициализации этих ComboBox-ов из других полей, так что при открытии диалога эти поля пусты и юзеру обязательно нужно их потрогать ...
 
A

Akupaka

Murtas, слишком категоричное заявление... я и поинтереснее проблемы встречал...
думаю, что ты просто чего-то не учитываешь... во всяком случае из того, что ты написал че-то не логично получается... либо слишком сумбурно написано...
если хочешь инициализировать комбу нужным значением, то пишешь его в default value и все корректно инициализируется...
 

Murtas

Green Team
11.04.2006
137
1
BIT
5
думаю, что ты просто чего-то не учитываешь... во всяком случае из того, что ты написал че-то не логично получается... либо слишком сумбурно написано...
если хочешь инициализировать комбу нужным значением, то пишешь его в default value и все корректно инициализируется...

Возможно я чего-то не учитываю, поэтому и хочу учесть это здесь :( ... а default value чевота не работает тоже ... я и @Subset юзал и [] - не фурычит!
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
Да всё работает. Просто список значений должен быть внесён до установки дефолтного значения.
 

Murtas

Green Team
11.04.2006
137
1
BIT
5
Ура заработало!

Раньше я ставил в default value для поля FieldValue -> FieldValue[1]
А теперь FieldValue -> FieldValues[1]
 
A

Akupaka

вот видишь, а ты говоришь нотес-сакс...
 

Murtas

Green Team
11.04.2006
137
1
BIT
5
Akupaka, в нормальных языках/скриптах обычно справляются с одним полем в таком случае...
 
A

Akupaka

Murtas, чесгря, я не понял что и почему у тебя не получилось :() но я уверен, что это лишь от недостатка опыта ;)
понятие "нормально" тут не применимо, т.к. если бы до этого сидел на лотусе, а потом перешел на како-нить делфи, то нормально было бы иначе :(
 

Murtas

Green Team
11.04.2006
137
1
BIT
5
Akupaka, так а чего ты так уверен, если ты не понял :) ...

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

Про нормально - если я выбирал в поле 10-й элемент в списке а после нажатия кнопки это стало в в 0-й позиции ... да и список в этом поле стал уже не списком - как это назвать? Правильно - лотусная привычка :).

ЗЫ... вы тока поймите меня правильно - я ни в коем случае не против лотуса, так как сам с лотусом связан ... просто я оптимистически надеюсь, что со временем лотус не помрет и будет идти наравне с современными IDE и языками программирования.

Все тема закрыта.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
472
"все беды от неудовольствия проистекають, вот ежели дать человеку всё..."
не нравится реализация интерфейса в Нотес - ну дык есть LS2J и наборчики от AWT до swing (в поддерживаемые версии домины, он входит)...
лепите свои интерфейсы - какие хотите
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!