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

Вниз

Выделение строк в DBGrid   Найти похожие ветки 

 
Белочка   (2008-06-10 07:26) [0]

Доброе утро.

Не нашла информации по этой теме, поэтому хотелось бы спросить реально ли это сделать и если да, то как

У меня база на SQL Server 2000. Я связываю его с дельфи через ADO и вывожу информацию в DBGrid. Можно ли раскрасить строки таблицы по какому-нибудь признаку.

Например я вывожу в DBGrid поля id, name, count(distinct item), причем у последнего столбца свойство visible = false. Нужно всем строкам, у которых count(distinct item) > 10 сделать одного цвета (заливка/шрифт или еще как-нибудь - не важно), а оставшиеся можно оставить такими, какие они есть. Можно так сделать?


 
Sergey13 ©   (2008-06-10 08:34) [1]

> [0] Белочка   (10.06.08 07:26)
> Не нашла информации по этой теме

Поищи на королевстве Делфи статью "Полосатый грид".


 
stas ©   (2008-06-10 08:50) [2]

событие в гриде onDrawColumnCell
procedure TfmSpSost.DBGridEh1DrawColumnCell(Sender: TObject;
 const Rect: TRect; DataCol: Integer; Column: TColumnEh;
 State: TGridDrawState);
Var Clb,Clf:TColor;
  begin
CLb:=tbSpsost.FieldByName("CVET").AsInteger;
clf:=clWhite-clb;
TDBGrideh(Sender).Canvas.Brush.Color:=clb;
TDBGrideh(Sender).Canvas.Font.Color:=clf;

// выделение
IF  gdSelected IN State
Then Begin
TDBGrideh(Sender).Canvas.Brush.Color:= clHighLight;
TDBGrideh(Sender).Canvas.Font.Color := clHighLightText;
End;
// отрисовка
TDBGrideh(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;


 
MsGuns ©   (2008-06-10 09:04) [3]

>stas ©   (10.06.08 08:50) [2]
>CLb:=tbSpsost.FieldByName("CVET").AsInteger;

И реально "полосатый" ?


 
Плохиш ©   (2008-06-10 10:32) [4]


> Белочка   (10.06.08 07:26)  
> Не нашла информации по этой теме

Так и говори, что и не искала.
Твой вопрос в яхуу и первая же ссылка.


 
stas ©   (2008-06-10 12:10) [5]

MsGuns ©   (10.06.08 09:04) [3]
А в чем вопрос?


 
MsGuns ©   (2008-06-10 12:27) [6]

>А в чем вопрос?

Вопрос задан. Поясню. Отмечаются все строки, записи в которых удовлетворяют условию выделения или только текущая ?
Ответа нет.


 
stas ©   (2008-06-10 12:32) [7]

В приведенном мной примере красятся все строки, в цвет, код котого записан в tbSpsost.FieldByName("CVET").AsIntegerТекущая красится в clHighLight.
Непонимаю что смущает?


 
MsGuns ©   (2008-06-10 12:48) [8]

Смущает выделенное в [3]
Я полагал, что обращение к датасету таким образом всегда будет адресоваться к ТЕКУЩЕЙ записи датасета, а не ко всем отображаемым в сетке.
Я делал так:

CLb:=TDBGrid(Sender).DataSource.DataSet.FieldByName("CVET").AsInteger;

Кстати в вішеупомянутой статье используется именно "мой" способ ;)


 
ЮЮ ©   (2008-06-10 12:52) [9]

> Я полагал, что обращение к датасету таким образом всегда
> будет адресоваться к ТЕКУЩЕЙ записи датасета, а не ко всем
> отображаемым в сетке.


TDBGrid(Sender).DataSource.DataSet и tbSpsost это один и тот жн датасет. (при соответсветствующих настройках, естественно).
А текущая запись датасета (в обработчике рисования) соответствует именно рисуемой записи.


 
MsGuns ©   (2008-06-10 13:05) [10]

>ЮЮ ©   (10.06.08 12:52) [9]

Спасибо за пояснение. ;))


 
stas ©   (2008-06-10 13:24) [11]

MsGuns ©   (10.06.08 13:05) [10]

при отрисовке грида датасет прокручивается.
TDBGrid(Sender).DataSource.DataSet -
это более универсально не спорю, у меня такой надобности не возникало.



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

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

Наверх




Память: 0.47 MB
Время: 0.005 c
15-1226943419
Маэстро
2008-11-17 20:36
2009.01.18
Почему не дают больничный когда депрессия?


4-1204580990
BBCHa
2008-03-04 00:49
2009.01.18
Как изменить системное время


15-1227520279
TUser
2008-11-24 12:51
2009.01.18
Портативный усилитель


15-1227012127
NoDt
2008-11-18 15:42
2009.01.18
Вывод пути через матрицу последовательности узлов Алгоритм Флойда


8-1189531969
Dmitry_12_08_73
2007-09-11 21:32
2009.01.18
Перекодировка русских букв в URL





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский