4 / 4 / 0
Регистрация: 12.05.2012
Сообщений: 42
|
|
1 | |
DbGridEh (или dbgrid) выделение правой кнопкой мыши13.06.2012, 12:44. Показов 6077. Ответов 30
Метки нет (Все метки)
Добрый день. Подскажите пожалуйста как выйти из подобной ситуации.
Есть DBGridEh, в нем включен мультиселект. При нажатии левой кнопки мыши - все ок. Выбранная строчка становится активной и добавляется в SelectedRows, но при нажатии правой кнопки по строчке - она подсвечивается, но не выбирается. Тоесть в SelectedRows не добавляется. Проблема в следующем. Есть popup меню. Оно открывается по правой кнопке. И есть функция удалить, которая должна удалять выбранное (ые) строки. Как вы уже, наверное, догадались - она удаляет те строки которые выбраны с помощью левой кнопки мыши. Тоесть если я щелкну по строчке 1 левой, а потом по строчке 3 правой - откроется popup меню около 3й строчки. Я нажму кнопку Удалить, но удалиться не 3я, а 1я. Как это исправить? Я думал через EntityAccessGrid->SelectedRows->CurrentRowSelected=true; , но не понял куда ее запихнуть. В событии CellClick не работает. Подскажите пожалуйста, может вообще не в ту сторону пошел.... Добавлено через 2 минуты Да, такая же ситуация, при смене выделенной строки с помощью стрелок на клавиатуре, или прокрутке колесиком мыши или ползунком. Строки подсвечиваются, но не выбираются, следовательно в списке выделенных строк - NULL. Надо чтоб подсвеченная строка - всегда была выбранной, ну или выбранная - всегда подсвеченная, а остальные не подсвечивались...
0
|
13.06.2012, 12:44 | |
Ответы с готовыми решениями:
30
Нажатие на пункт PopupMenu MenuItem по событию MenuItemClick правой или левой кнопкой мыши Перемещение объекта правой кнопкой мыши Блокировка копирования и вставки правой кнопкой мыши Запрет клика правой кнопкой мыши в программе |
13.06.2012, 12:46 | 2 |
0
|
4 / 4 / 0
Регистрация: 12.05.2012
Сообщений: 42
|
|
13.06.2012, 12:48 [ТС] | 3 |
спасибо. поправил. во втором случае - правой кнопки
0
|
13.06.2012, 12:55 | 4 |
Ну так зажми Ctrl и левой кнопкой мыши выбирай нужные строки, а потом на одной из выделенных строк вызывай свой попуп левой кнопкой мыши и удалиться. У меня лично так сделано. Это всё как в екселе.
0
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
|
13.06.2012, 12:58 | 5 |
Od1Um, а что если при обращении к DBGrid'у при нажатии правой кнопки эмулировать нажатие левой? Хотя это, наверное, бред.
Кстати, а выделяется ли строчка при зажатом ctrl + правая кнопка мыши? Добавлено через 1 минуту Sasha, я так понял тут вопрос стоит в том, чтобы сделать выделение и по правой кнопке. Т.е.: Хотя вот в экселе выделение будет слетать, кстати, при правом щелчке. Ок, а в DBGrid'е если просто одну строчку счелкнуть правой кнопкой мыши - выделение будет?
0
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
|
13.06.2012, 13:03 | 7 |
Sasha,
Согласен, это ни к чему.
Разве что только для единственной строчки (как в екселе). Добавлено через 29 секунд О_о Необычное решение...
0
|
4 / 4 / 0
Регистрация: 12.05.2012
Сообщений: 42
|
||||||
13.06.2012, 13:12 [ТС] | 8 | |||||
Вот такую ситуацию я и хочу предотвратить. А так же, как писалось выше, чтобы предотвратить момент, когда левой кликнул по 1й строчке выбрав ее, а потом решил удалить 4ю строчку. Кликнул по ней правой кнопкой - она подсветилось, вылезло попап. Нажал удалить. 4я осталась, а 1я удалилась. Добавлено через 3 минуты Пока сделал так
0
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
|
13.06.2012, 13:14 | 9 |
Od1Um,
То есть Вас не смущает, что в офисном приложении (MS Excel), такой реализации нет? Добавлено через 1 минуту С этим соглашусь.
0
|
4 / 4 / 0
Регистрация: 12.05.2012
Сообщений: 42
|
|
13.06.2012, 13:18 [ТС] | 11 |
0
|
13.06.2012, 13:19 | 12 |
вствьте в нажатие правой кнопки - код левой )))
1
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
|
13.06.2012, 13:20 | 13 |
Ну вот я примерно аналогичное предлагал:
Нифига себе... Почему бы и не эталон? Вот уж у этих ребят на мой взгляд с интерфейсной логикой все нормально. Хотя... Может я просто привык
0
|
13.06.2012, 13:23 | 14 |
В общем запустил я свой проект у меня так
ЗАЖИМАЮ CTRL И ЛЕВОЙ КНОПКОЙ МЫШИ ВЫБИРАЮ НУЖНЫЕ СТРОКИ ЗАТЕМ НА ОДНОЙ ИЗ ВЫДЕЛЕННЫХ СТРОК ПРАВОЙ КНОПКОЙ МЫШИ ВЫЗЫВАЮ КОНТЕКСТНОЕ МЕНЮ В КОТОРОМ ЕСТЬ УДАЛИТЬ И УДАЛЯЮТСЯ ВЫДЕЛЕННЫЕ СТРОКИ
0
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
|
13.06.2012, 13:27 | 15 |
Sasha, да это все понятно... Od1Um-то хочет не
А на любой другой не выделенной, и чтобы эта строка (в дополнение к предыдущим выделенным через левую кнопку + ctrl) выделялась. Od1Um, я Вас правильно понял? Добавлено через 2 минуты LK, Так а так мона? Тогда же попап всплывать не будет, т.к. он повешен же именно на правую кнопульку Od1Um Кстати, а 1С для Вас тоже не эталон?
0
|
4 / 4 / 0
Регистрация: 12.05.2012
Сообщений: 42
|
||||||
13.06.2012, 13:30 [ТС] | 16 | |||||
Еще раз. Написал такой код.
Ну тоесть выбрал 1ю строчку левой кнопкой. Потом пожмакал вниз стрелками. Подсветилась 5я строчка, а выбрана все еще 1я.
0
|
13.06.2012, 13:31 | 17 |
я имел ввиду, в OnMouseDown для TDBGrid , если кнопка - правая кнопка - делать свои дела.
0
|
4 / 4 / 0
Регистрация: 12.05.2012
Сообщений: 42
|
||||||||||||||||
13.06.2012, 13:37 [ТС] | 18 | |||||||||||||||
Если правая + Кнтрл, то выделения не снимаютяс, а та, по которой кликнули - добавляется к выделенным. Как вам? Добавлено через 1 минуту Так. Тут другая проблема с этим кодом. Выбрали 5 строк. Щелкнули правой кнопкой по одной из выбранных 5ти, она осталась выделенной, остальные сняли свои выделения( Добавлено через 1 минуту Решил добавляением условия...
1
|
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
|
|
13.06.2012, 13:40 | 19 |
Od1Um, я к чему веду разговоры про эталоны-то. Вы разрабатываете продукт для кого? Наверное не для себя лично, а для пользователей, так? Соответственно неплохо бы было ориентироваться на среднестатистического юзера (имеющего дело с офисными приложениями, в частности), который просто не будет ожидать такого приема И будет ли он приятно удивлен таким решением - бааальшой вопрос.
Ладно, надо закончить демагогию эту Меня просто уж очень затронула нелогичность этого решения Добавлено через 1 минуту Кросавчег!
0
|
4 / 4 / 0
Регистрация: 12.05.2012
Сообщений: 42
|
|
13.06.2012, 13:40 [ТС] | 20 |
В том же Exel так и работает. Выделите пару строк, а потом правой кнопкой щелкните по любой другой строчке, которая не выбрана вами ранее. Все выделения снимаются, выделяется строчка, по которой вы щелкнули и высплывает popup. Разве нет? так почему мое желание сделать подобное - не логично?)
0
|
13.06.2012, 13:40 | |
13.06.2012, 13:40 | |
Помогаю со студенческими работами здесь
20
ListView. Выбор элемента при клике правой кнопкой мыши DataGridView выделение правой кнопкой мыши Выделение нодов в treeView правой кнопкой мыши Выделение элемента ListBox правой кнопкой мыши Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Блоги программистов | |||||
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества
Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
|
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов.
. . .
|
С чего начать программировать микроконтроллеры
raxper 06.01.2025
Введение в мир микроконтроллеров
Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
|
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
|
Обновление сайта www.historian.by
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
|
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
|
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list):
s=^y]
p=x and y
for i in range(1,len(x)):
s. append((x^y)^p)
p=(x and y)or(p and (x or y))
return s
x=list()
y=list()
|
Это мы не проходили, это нам не задавали...(асихронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
|
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
|