Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.03.21;
Скачать: [xml.tar.bz2];

Вниз

DBGrid   Найти похожие ветки 

 
REL_   (2002-02-20 14:35) [0]

Народ, как сделать, чтобы по нажатии клавиши текущая строка в Grid"е закрашивалась (указанным цветом).
Я использую как простой Grid, так и RxGrid.


 
Igor_   (2002-02-20 15:02) [1]

проблема с рисованием или с вычислением нажатия клавиши?


 
REL_   (2002-02-20 15:07) [2]

Проблема именно с рисованием. В RxDBGrid это ксати делается просто (в событии OnGetCellParams), но строка закрашивается только после ухода с неё. Пробовал вызывать Invalidate - закрашивается весь Grid.


 
deleon   (2002-02-20 15:09) [3]

Рисуй в обычном на событие OnDrawDataCell меняй Brush.Color у Canvas грида, при грамотном описании события все получается замечательно!


 
Igor_   (2002-02-20 15:21) [4]

В DBGrid есть св-во Options.dgRowSelect, если его поставить true, то будет выделяться вся строка, но как тут цвет поменять я не знаю.
А можно вообще поставить DBGrid.DefaulDrawing:=false и переопределить DrawColumnCell что-то типа:
with DBGrid.Canvas do
begin
if (gdSelected in State) or (gdFocused in State) then
begin
Brush.Color:=clNavy; // твой цвет
FillRect(Rect);
Font.Color:=clWhite;
TextOut(Rect.right-TextWidth(Column.Field.Text)-3,
Rect.Top+2,Column.Field.Text);
end
else
DBGrid_Abon.DefaultDrawColumnCell(Rect, DataCol,Column,State);


Я делал так с DBGrid, как с RxDBGrid не знаю, не работал с ним.


 
REL_   (2002-02-20 15:26) [5]

А когда срабатывет данное событие? Я подозреваю, что оно сработает при перемещении курсора, т.е. я уйду с ячейки и только тогда она (ячейка) закрасится.
Если я захочу закрасить строку принудительно (например по нажатии кнопки), то мне в обработчике нажатия кнопки придётся вызывать эту процедуру - OnDrawDataCell. Тогда какие параметры ей передавать, что закрасилась именно текущая строка (не ячеёка и не весь Grid)?


 
Igor_   (2002-02-20 15:31) [6]

if (gdSelected in State) or (gdFocused in State) then
по идее как раз и показывает что ячейка выбрана
может или только gdSelected или gdFocused,
но у меня работало и с обоими


 
REL_   (2002-02-20 15:42) [7]

В твоём примере, если я ухожу с ячейки, выделение снимается или остаётся???.
Понимаешь, мне необходима такая ситуация:
Когда я перемещаюсь по Gridу, он ведёт себя как обычно. Пусть я остановился на записи №5, нажал некий Button и вся текущая строка в Grid"е выделилась. При дальнейшем продвижении курсора Grid опять ведёт себя как обычно, но выделение уже выделенной ячейки не нимается.
Таким образом, по нажатии Button"а я могу выделить несколько строк.

Как энто осуществить???


 
REL_   (2002-02-20 15:55) [8]

to Igor : вот только попытался попробовать твой прмер, вызывается исключение в строке TextWidth(Column.Field.Text)


 
Igor_   (2002-02-21 10:05) [9]

А что зо исключение? У меня вроде все нормально было.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.03.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
3-66800
Demon ltd
2002-02-24 22:18
2002.03.21
Удаление из нескольких баз по указанному запросу


14-67015
Nikolay
2002-02-05 15:43
2002.03.21
Регистрация....


1-66918
None
2002-03-05 11:29
2002.03.21
Рисование поверх всех компонент.


3-66752
Виталий_2002
2002-02-21 11:56
2002.03.21
Вопрос по работе с БД


3-66770
Demon ltd
2002-02-21 23:26
2002.03.21
Присваивание из базы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский