Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.07.2011, 19:11   #1
delphicoding
Заблокирован
 
Регистрация: 04.07.2011
Сообщений: 261
Вопрос TcxGridDB - как запретить выделять часть строк?

Добрый день!
Есть форма-окно, в нём есть таблица TcxGridDB (DevExpress). Для таблицы предусмотрено множество различной обработки выделенных строк (действия с данными по нажатиям на кнопки). Всё работает.
Есть задача обработки строк самой таблицы, прошу совета как это можно реализовать и оптимизировать...
Хотелось бы, чтобы выделяя несколько строк в таблице (с shift,ctrl,мышкой) выделялись только те записи, которые по значению определённого параметра были аналогичны с данными строки которую выделили первой, то есть со строкой, с которой началось выделение. При этом массовом выделении чтобы другие строки, которые имеют иные значения нужной переменной, не выделялись бы совсем. (Сейчас это реализовано ужасно, пришлось вообще отключить.)
delphicoding вне форума Ответить с цитированием
Старый 01.08.2011, 14:04   #2
delphicoding
Заблокирован
 
Регистрация: 04.07.2011
Сообщений: 261
По умолчанию

....up....
delphicoding вне форума Ответить с цитированием
Старый 04.08.2011, 10:26   #3
KAMENYKA
Пользователь
 
Аватар для KAMENYKA
 
Регистрация: 06.12.2007
Сообщений: 87
По умолчанию

При смене фокуса на гриде(onFocusedRecordChange) берешь строку, тут вариантов 2:

1. Если несколько выделено берешь первую или любую понравившуюся, или вообще отменяешь все выделения.

2. Если 1 строка то дальше циклом по выделенным строкам:
Код:
for i:=0 to Въюха.ViewData.RowCount-1 do
  if Въюха.ViewData.Rows[i].Selected then begin
  ...
  end;
Можно наверное сразу бежать по выделенным сам посмотри, либо используй пример выше если строк не так уж много.

Патом где "..." тобиш в теле цикла в условии проверяешь с нужной тебе строкой и при выполнению условия либо снимаешь фокус либо нечего не делаешь. Еще наверное тебе понадобиться BeginUpdate и EndUpdate сам посмотришь нужен или нет, ваяй если что спрашивай чем могу помогу.
KAMENYKA вне форума Ответить с цитированием
Старый 05.08.2011, 20:28   #4
delphicoding
Заблокирован
 
Регистрация: 04.07.2011
Сообщений: 261
По умолчанию

Спасибо. Я думал может это можно сделать как-то свойствами навороченных таблиц DE? Типа "запрет на выделение при несовпадении признака" или "при разных признаках"...
delphicoding вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение строк через fgets() из unicode-файла, Считывает лишь часть строки. malor Общие вопросы C/C++ 1 25.06.2011 23:49
Можно ли в DBGrid выделять строки разными цветами? KiLLiR Компоненты Delphi 2 08.02.2009 01:00
Часть фона одним цветом а другая часть другим (без таблиц). Lanselot HTML и CSS 4 25.04.2008 18:41
Можно ли выделять ячейки размещенные вдали друг от друга в StringGrid? aslanbek Общие вопросы Delphi 5 14.03.2008 23:31