powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Вопрос по DropDown DW
16 сообщений из 16, страница 1 из 1
Вопрос по DropDown DW
    #34585408
grv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курсор находится в поле, которое является dddw, нажатие стрелок вверх/вниз приводит к перебору значений. Можно ли изменить поведение, чтобы по нажатию стрелок происходило перемещение на следующую строку (т. е. переход на следующее поле)?
...
Рейтинг: 0 / 0
Вопрос по DropDown DW
    #34585588
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по моему можно пользоваться клавишами PageUp и PageDown
...
Рейтинг: 0 / 0
Вопрос по DropDown DW
    #34585664
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется ввиду табуляция?
--------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Вопрос по DropDown DW
    #34586987
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grvКурсор находится в поле, которое является dddw, нажатие стрелок вверх/вниз приводит к перебору значений. Можно ли изменить поведение, чтобы по нажатию стрелок происходило перемещение на следующую строку (т. е. переход на следующее поле)?
Изменить поведение нельзя. Можно написать код в ItemChanged event, проверяющий нажатие этих клавиш, отбрасывающий выбраное значение и постающий ScrollToRow...
...
Рейтинг: 0 / 0
Вопрос по DropDown DW
    #34590490
grv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего не понимаю :) (нет ну не то чтобы совсем, но по данному вопросу)

Itemchanged - это не то.

Попытаюсь обрисовать проблему точнее...

Есть DataWindow (dw), часть полей которого являются DropDown DW.
Причем они первые, там где первое поле edit все работает нормально - исправно
бегает вверх/вниз по стрелкам.
Первоначально установлен режим querymode = true, в полях, которые DDDW выбираем
значения для выборки и делаем выборку. Теперь, по идее, поля DDDW только
показывают значения и поменять их уже нельзя(тогда зачем Itemchange). Нажимаем стрелку
вниз - курсор благополучно перемещается на следующую строку. Нажимаем еще раз - никакого
видимого эффекта, курсор остается на второй строке и никуда не уходит. Дальше можно
давить что угодно - курсор остается на месте.

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

Как бы сделать чтобы после выборки курсором можно было бы управлять стрелками вверх/вниз???

Заранее спасибо!
...
Рейтинг: 0 / 0
Вопрос по DropDown DW
    #34590912
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PB 10.2
в pbm_command можно написать такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
if keydown(KeyUpArrow!) then
    //goto prev row
    return  1 
else if keydown(KeyDownArrow!) then
    //goto next row
    return  1 
end if
return  0 

но есть подводные камни...
если в дропдауне выбрана первая строка и нажимаем стрелку вверх - то событие не триггерится.
соответственно со стрелкой вверх.
--
Так что советую искать другой выход
например первая колонка (может фиктивная) всегда не дропдаун...
...
Рейтинг: 0 / 0
Вопрос по DropDown DW
    #34592877
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первая, не первая - это всё шелуха. Если курсор попал в editable dddw column, то обработка KeyUpArrow! и KeyDownArrow! происходит и в результате бежит Itemchanged, тот самый, который " это не то ".
...
Рейтинг: 0 / 0
Вопрос по DropDown DW
    #34593330
rcryo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять не оценили лаконичность мастера!
...
Рейтинг: 0 / 0
Вопрос по DropDown DW
    #34593419
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rcryoОпять не оценили лаконичность мастера!
да мастер вообще не потрудился въехать о чем речь.
скроллить автору топика насколько я понял надо основное dw а не dddw.
а по стрелке вверх если dddw уже спозиционирован на первой строке никакое itemchanged никуда не побежит.
но у Филиппа видимо сложилось впечатление что речь идет об "отфильтрованном" dddw в котором надо пропускать спрятанные нулевой высоты строки - извратное решение для зависимых дропдаунов которое они использовали где-то у себя.
автору топика не надо скроллировать dddw, а вместо этого хочется чтобы по стрелкам основное dw вело себя так как будто нет никакого dddw вообще.
как-то так...
...
Рейтинг: 0 / 0
Вопрос по DropDown DW
    #34593670
Leviathan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЗоринАндрей
dddw в котором надо пропускать спрятанные нулевой высоты строки - извратное решение для зависимых дропдаунов которое они использовали где-то у себя.


Прошу прощения за оффтопик. Мы тоже применяем такое решение. Другого как-то и не придумали - как еще можно решить проблему?
...
Рейтинг: 0 / 0
Вопрос по DropDown DW
    #34593693
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант, действительно использовать itemchanged в качестве индикатора изменений и автоматически перевести на следующее поле, но что делать если оставляется значение по умолчанию
Проще в данном случае именно в полях с dddw использовать в качестве подтверждения tab или enter
--------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Вопрос по DropDown DW
    #34593699
grv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗоринАндрей уловил самую суть, так сказать...

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

В принципе частичное решение я нашел:
добавил в событие Itemfocuschanged установку фокуса на основное dw
this.SetFocus() - криво, но работает

Имеется два побочных эффекта:
- если ткнуть мышью в поле dddw, то дальше стрелки будут работать также хреново,
как описано выше, т.е. никак (я пытался ставить SetFocus на разные мышинные
события вроде pbm_downlbuttonclk, pbm_lbuttonup все равно не работает)
- если основное dw имеет горизонтальную полосу прокрутки, то стрелки вверх/вниз
приводят к перемотке в крайнее левое положение(но это наверное можно
поправить - запоминать положение и делать скролл самому)

Решение частичное и кривое, надеюсь кто-нибудь на форуме знает как реализовать такую
функциональность правильно.


Заранее спасибо!
...
Рейтинг: 0 / 0
Вопрос по DropDown DW
    #34595794
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗоринАндрей rcryoОпять не оценили лаконичность мастера!
да мастер вообще не потрудился въехать о чем речь.
скроллить автору топика насколько я понял надо основное dw а не dddw.
а по стрелке вверх если dddw уже спозиционирован на первой строке никакое itemchanged никуда не побежит.
но у Филиппа видимо сложилось впечатление что речь идет об "отфильтрованном" dddw в котором надо пропускать спрятанные нулевой высоты строки - извратное решение для зависимых дропдаунов которое они использовали где-то у себя.
автору топика не надо скроллировать dddw, а вместо этого хочется чтобы по стрелкам основное dw вело себя так как будто нет никакого dddw вообще.
как-то так...
Ага, не потрудился: Можно написать код в ItemChanged event (основного dw а не dddw, что ещё могло вам подуматься?), проверяющий нажатие этих клавиш, отбрасывающий выбраное значение и постающий ScrollToRow( основного dw а не dddw, что ещё могло вам подуматься?)...
Если курсор попал в editable dddw column, то обработка KeyUpArrow! и KeyDownArrow! происходит и в результате бежит Itemchanged (основного dw а не dddw, что ещё могло вам подуматься?), тот самый, который "это не то".
...
Рейтинг: 0 / 0
Вопрос по DropDown DW
    #34595812
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grv...надеюсь кто-нибудь на форуме знает как реализовать такую
функциональность правильно.
Заранее спасибо!
Думаю можете эти надежды оставить...
...
Рейтинг: 0 / 0
Вопрос по DropDown DW
    #34595888
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФилиппЕсли курсор попал в editable dddw column, то обработка KeyUpArrow! и KeyDownArrow! происходит и в результате бежит Itemchanged (основного dw а не dddw, что ещё могло вам подуматься?), тот самый, который "это не то".
для первой и последней строк в dddw при нажатии стрелки соответственно вверх или вниз itemchanged НЕ бежит, ибо никакого item выше первой и ниже последней на которого можно было бы change просто НЕТ .
...
Рейтинг: 0 / 0
Вопрос по DropDown DW
    #34595900
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗоринАндрей ФилиппЕсли курсор попал в editable dddw column, то обработка KeyUpArrow! и KeyDownArrow! происходит и в результате бежит Itemchanged (основного dw а не dddw, что ещё могло вам подуматься?), тот самый, который "это не то".
для первой и последней строк в dddw при нажатии стрелки соответственно вверх или вниз itemchanged НЕ бежит, ибо никакого item выше первой и ниже последней на которого можно было бы change просто НЕТ .
Это я и без вас знаю, посему и:
Думаю можете эти надежды оставить...
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Вопрос по DropDown DW
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]