Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/19: Рейтинг темы: голосов - 19, средняя оценка - 4.74
 Аватар для Злобный Зайц
14 / 14 / 1
Регистрация: 21.10.2010
Сообщений: 462

Выделение столба DBGrid

23.01.2013, 16:47. Показов 4020. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хотелось бы выделять даблкликом на заголовке столба.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.01.2013, 16:47
Ответы с готовыми решениями:

DBGrid выделение последней строки
Привет, пытаюсь программно выделить последние строку: DBGrid1.DataSource.DataSet.Last; но получается вот так: как сделать чтоб...

Выделение новых и редактируемых строк в DbGrid
Как выделить добавленную строку в DBGRID одним цветом, а отредактированную - другим. При этом выделение сохраняется до завершения...

Создание выборки из столба значения в EXCEL
Доброго времени суток! Не подскажите как мне сделать в Excel, возможностями delphi либо другими возможностями, следующее: Необходимо при...

14
Заблокирован
23.01.2013, 17:40
Это не предусмотрено, но сделать можно.
В DrawCell
Сначала нужно обьявить флаг прорисовки и флаг выделения. При шелчке на нулевой строке поля, получаем номер столбца. и устанавливаем в истину оба флага.
В самом обработчике DrawCell В цикле проверяем наличие ячейки данного столбца. и если он пойман, окрашиваем его в цвет выделения и рисуем сверху содержимое. Когда все ячейки пройдены. сбрасываем флаги прорисовки выделения.
Кроме того нужно предусмотреть флаг снятия выделения. По шелчку на нулевой ячейке столбца, если включён флаг выделения сбросить его и включить флаги снятия выделения и прорисовки. В обработчике по этому флагу поменять цвет, а всё остальное произойдёт по прежнему алгоритму, но окраска будет соответсвовать снятию выделения.
Кроме. того нужно запоминать какой столбец была выбран ранее. И при последующем шелчке на другом столбике, в старом столбце снять выделение и поставить его на новом и после этого номер выбранного текущего столбца записать в старые, чтобы он окрасился в цвет невыбора при выборе другого столбца.
Что касается выбора, то тут можно использовать левый шелчок в триггерном режиме, или выбирать выделение левым шелчком а сбрасывать правым.
1
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
23.01.2013, 17:59
Цитата Сообщение от Lirrk Посмотреть сообщение
При шелчке на нулевой строке поля, получаем номер столбца.
Lirrk, причем тут вообще нулевая строка поля, если ТС спрашивает про "выделять даблкликом на заголовке столба"?
0
 Аватар для Злобный Зайц
14 / 14 / 1
Регистрация: 21.10.2010
Сообщений: 462
23.01.2013, 18:00  [ТС]
Благодарю за ответ.
А красить только "вручную"? Просто сделать ячейки выделенными, как при выделении мышью, можно?
0
Заблокирован
23.01.2013, 18:03
gorfil,
а заголовок столбца и есть нулевая ячейка поля.
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
23.01.2013, 18:05
Цитата Сообщение от Lirrk Посмотреть сообщение
gorfil,
а заголовок столбца и есть нулевая ячейка поля.
И в DBGrid?
0
Заблокирован
23.01.2013, 18:06
Злобный Зайц,
Нет, выделение полей (столбцов) именно в StringGrid не предусмотрено. и в DB тоже, хотя, говорят это возможно в группе компонентов RX
А вообще этот вопрос был и ответ тот же. Только вручную.
DBGrid выделение колонки
Есть пример реализации, правда я не проверял его.
0
 Аватар для Злобный Зайц
14 / 14 / 1
Регистрация: 21.10.2010
Сообщений: 462
23.01.2013, 18:10  [ТС]
Но ведь, когда я кликаю ячейку, она же таки синеет. Это разве не выделение?

И ещё впрос: как получить номер даблкликнутой строки?
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
23.01.2013, 18:16
Вообще у DBGrid есть событие OnTitleClick в обработчик которого передается индекс колонки.
1
Заблокирован
23.01.2013, 18:23
gorfil,
Ну если я ошибаюсь. то поправьте меня, не укушу. Ну возможно заехал я. Нужно было написать по ячейке(полю) в нулевой строке.

Добавлено через 2 минуты
gorfil, Да, но речь шла, что нужно было щёлкнуть по заголовку. А OnTitleClick даёт номер по шелку по любой ячейки. Поэтому нужно щёлкнуть по нужному полю в нулевой строке. Или проще говоря по ячейке в заголовке.

Добавлено через 4 минуты
Злобный Зайц,
Выделять можно ячейки. Как насчёт строк, не помню. А вот столбцы точно не выделяются.
0
 Аватар для Злобный Зайц
14 / 14 / 1
Регистрация: 21.10.2010
Сообщений: 462
23.01.2013, 18:26  [ТС]
Цитата Сообщение от gorfil Посмотреть сообщение
Вообще у DBGrid есть событие OnTitleClick в обработчик которого передается индекс колонки.
Действительно, как это я так тупанул!!!

Всё. Событие есть, номер столба имею, приступаю к покраске. Правда, не даблкликом, но годится и так.
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
23.01.2013, 18:30
Цитата Сообщение от Lirrk Посмотреть сообщение
OnTitleClick даёт номер по шелку по любой ячейки.
Lirrk, OnTitleClick срабатывает по щелчку по Заголовку таблицы, и в обработчик этого события передается индекс колонки (в том числе), по заголовку которой щелкнули.
0
Пишу на Delphi...иногда
 Аватар для cotseec
1423 / 1278 / 286
Регистрация: 03.12.2012
Сообщений: 3,914
Записей в блоге: 5
23.01.2013, 19:18
cвойство Selection:TGridRect;

Delphi
1
2
3
4
5
6
7
8
9
var
   SelectRect:TGridRect;
begin
   SelectRect.Left:=0;// левая ячейка диапазона
   SelectRect.Right:=1;// правая ячейка диапазона
   SelectRect.Top:=0;// верхняя ячейка диапазона
   SelectRect.Bottom:=1;// нижняя ячейка диапазона
   StringGrid1.Selection:=SelectRect;
end;
выделит указанный диапазон ячеек (по умолчанию синим цветом), выделение сохраняется до следующего выделения (программно или мышой), координаты задаются не в пикселах, а в номерах строк и колонок (начинаются с нуля)...
как-то так
1
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
23.01.2013, 19:22
cotseec, речь о DBGrid.
0
Заблокирован
23.01.2013, 20:19
gorfil,
Но выделение же всё равно надо вручную рисовать, куда ни щёлкни.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.01.2013, 20:19
Помогаю со студенческими работами здесь

Выделение DBGrid
Здравствуйте! Можете подсказать? вот например я выбираю одну строку мышкой, и мне надо те данные которые я выбрала внести в программу. как...

DBGrid цветовое выделение
Имеется DBGrid, нужно выделить красным цветом строки по определенному критерию, допустив выделить строки если в поле есть строка больше...

Выделение строки в DBGrid
Здравствуйте! Помоги пожалуйста разобраться. В DBGrid загружаю таблицу из базы. Нужно выделить в гриде любую строку нажать на кнопку,...

Выделение строки DBGrid
Всем привет. К программе подключена БД Access и Даные выводятся в DBGid. Сделал так, чтоб в ComboBox заливались все значения нужного мне...

Выделение строки DBGrid
Здравствуйте, нужно выделить в DBGrid любую строку и нажать на кнопку, и именно эта выделенная строка должна появиться в отчете. По...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru