Поле типа Listbox.

Тема в разделе "Lotus - Программирование", создана пользователем DNT, 19 янв 2009.

  1. DNT

    DNT Постоялец форума
    Lotus team

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

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

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

    Вложения:

    • 123.JPG
      123.JPG
      Размер файла:
      7,5 КБ
      Просмотров:
      34
  2. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    По-моему, нужно делать свои кнопки.
     
  3. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7

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

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    а не пробовал научить юзера нажимать Enter (пробел) для подтверждения?..
    на самом-то деле это не глюк, это правильная работа элемента, т.е. есть фокус предполагаемого значения, а есть выбранное значение..
     
  5. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Вообще странно использовать скроллинг для изменения значений. :)
     
  6. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7

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

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

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

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Есть combobox.
     
  8. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Знаю. Хочу убедиться на 100%, что с ListBox точно нельзя реализовать сабж.
     
  9. Akupaka

    Akupaka А че я?.. О.о

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

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Это всё понятно. Я собственно хотел получить ответ и получил: реализовать на ListBox нельзя. Буду использовать ComboBox.
    Всем спасибо.
     
  11. Murtas

    Murtas Well-Known Member

    Регистрация:
    11 апр 2006
    Сообщения:
    123
    Симпатии:
    0
    DNT

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

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Murtas, слишком категоричное заявление... я и поинтереснее проблемы встречал...
    думаю, что ты просто чего-то не учитываешь... во всяком случае из того, что ты написал че-то не логично получается... либо слишком сумбурно написано...
    если хочешь инициализировать комбу нужным значением, то пишешь его в default value и все корректно инициализируется...
     
  13. Murtas

    Murtas Well-Known Member

    Регистрация:
    11 апр 2006
    Сообщения:
    123
    Симпатии:
    0
    Возможно я чего-то не учитываю, поэтому и хочу учесть это здесь :( ... а default value чевота не работает тоже ... я и @Subset юзал и [] - не фурычит!
     
  14. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Да всё работает. Просто список значений должен быть внесён до установки дефолтного значения.
     
  15. Murtas

    Murtas Well-Known Member

    Регистрация:
    11 апр 2006
    Сообщения:
    123
    Симпатии:
    0
    Ура заработало!

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

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    вот видишь, а ты говоришь нотес-сакс...
     
  17. Murtas

    Murtas Well-Known Member

    Регистрация:
    11 апр 2006
    Сообщения:
    123
    Симпатии:
    0
    Akupaka, в нормальных языках/скриптах обычно справляются с одним полем в таком случае...
     
  18. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Murtas, чесгря, я не понял что и почему у тебя не получилось :() но я уверен, что это лишь от недостатка опыта ;)
    понятие "нормально" тут не применимо, т.к. если бы до этого сидел на лотусе, а потом перешел на како-нить делфи, то нормально было бы иначе :(
     
  19. Murtas

    Murtas Well-Known Member

    Регистрация:
    11 апр 2006
    Сообщения:
    123
    Симпатии:
    0
    Akupaka, так а чего ты так уверен, если ты не понял :) ...

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

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

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

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

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    "все беды от неудовольствия проистекають, вот ежели дать человеку всё..."
    не нравится реализация интерфейса в Нотес - ну дык есть LS2J и наборчики от AWT до swing (в поддерживаемые версии домины, он входит)...
    лепите свои интерфейсы - какие хотите
     
Загрузка...

Поделиться этой страницей