Поле типа Listbox.

DNT

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

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

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

Вложения

  • 7.5 КБ Просмотры: 34

DNT

Постоялец форума
Lotus team
12.10.2005
594
2
#3
По-моему, нужно делать свои кнопки.

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

Akupaka

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

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#5
Вообще странно использовать скроллинг для изменения значений. :)
 

DNT

Постоялец форума
Lotus team
12.10.2005
594
2
#6
а не пробовал научить юзера нажимать Enter (пробел) для подтверждения?..
на самом-то деле это не глюк, это правильная работа элемента, т.е. есть фокус предполагаемого значения, а есть выбранное значение..

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

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

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

Akupaka

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

DNT

Постоялец форума
Lotus team
12.10.2005
594
2
#10
можешь сделать обычное поле, рядом уцепить две картинки, на каждую из которых повесить функцию +/- значения и будет тебе щастье...
если не хочешь решать глупые задачи, приучай пользователей использовать все правильно!
то, что пользователь некорректно использует программу не является проблеммой программы или разработчика!
Это всё понятно. Я собственно хотел получить ответ и получил: реализовать на ListBox нельзя. Буду использовать ComboBox.
Всем спасибо.
 

Murtas

Lotus team
11.04.2006
128
0
#11
DNT

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

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#12
Murtas, слишком категоричное заявление... я и поинтереснее проблемы встречал...
думаю, что ты просто чего-то не учитываешь... во всяком случае из того, что ты написал че-то не логично получается... либо слишком сумбурно написано...
если хочешь инициализировать комбу нужным значением, то пишешь его в default value и все корректно инициализируется...
 

Murtas

Lotus team
11.04.2006
128
0
#13
думаю, что ты просто чего-то не учитываешь... во всяком случае из того, что ты написал че-то не логично получается... либо слишком сумбурно написано...
если хочешь инициализировать комбу нужным значением, то пишешь его в default value и все корректно инициализируется...
Возможно я чего-то не учитываю, поэтому и хочу учесть это здесь :( ... а default value чевота не работает тоже ... я и @Subset юзал и [] - не фурычит!
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#14
Да всё работает. Просто список значений должен быть внесён до установки дефолтного значения.
 

Murtas

Lotus team
11.04.2006
128
0
#15
Ура заработало!

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

Murtas

Lotus team
11.04.2006
128
0
#17
Akupaka, в нормальных языках/скриптах обычно справляются с одним полем в таком случае...
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#18
Murtas, чесгря, я не понял что и почему у тебя не получилось :() но я уверен, что это лишь от недостатка опыта ;)
понятие "нормально" тут не применимо, т.к. если бы до этого сидел на лотусе, а потом перешел на како-нить делфи, то нормально было бы иначе :(
 

Murtas

Lotus team
11.04.2006
128
0
#19
Akupaka, так а чего ты так уверен, если ты не понял :) ...

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

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

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

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

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 586
272
#20
"все беды от неудовольствия проистекають, вот ежели дать человеку всё..."
не нравится реализация интерфейса в Нотес - ну дык есть LS2J и наборчики от AWT до swing (в поддерживаемые версии домины, он входит)...
лепите свои интерфейсы - какие хотите