Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.01;
Скачать: CL | DM;

Вниз

Как с помощью функции OnDrawColumnCell выделить цветом всю строку   Найти похожие ветки 

 
volod   (2005-12-02 16:37) [0]

Вставил (отрисовал) checkbox в dbgrid, теперь мне нужно выделять всю строку другим цветом если стоит галка, заливка не подошла, так как заливаеться сам текст..., через column.color неидет так как визуально видно обновление цветов при проверки состояния checkbox"аююю


 
Reindeer Moss Eater ©   (2005-12-02 16:44) [1]

Когда отрисовываешь чекбокс его состояние выставляешь по какому-то
признаку?
Вот по этому же признаку и цвет остальных ячеек отрисовывай.


 
volod   (2005-12-02 17:20) [2]

по признаку rect типа tRect, но оно на текущею ячейку, а кол-во ячеек может меняться и мне необходимо чтоб все делалось, автоматом, тоесть если 3 ячейки в  строке, значит цвет меняют 3 ячеки, а если пять то 5, да и заливка как в checkbox неподходит, так как текста невидно......


 
Reindeer Moss Eater ©   (2005-12-02 17:33) [3]

А состояние чекбокса "Чекнут/Не чекнут" ты что, тоже по Rect выставляешь?


 
volod   (2005-12-02 17:44) [4]

Нет соостоянием можешь код глянуть:

if (column.FieldName="check") then
begin
 RectBox := Rect;
 RectBox.top:=Rect.Top + (Rect.Bottom - Rect.Top - 12) div 2;
 RectBox.bottom:=Rect.Top + (Rect.Bottom - Rect.Top + 12) div 2;
i:=0;checkit:=false;
while i < listbox1.Count do
 begin
  if ListBox1.Items.Strings[i] = DBGridEh1.DataSource.DataSet.Fields[0].Asstring then
   begin
       checkit:=true;
   end;
  i:=i+1;
end;
if checkit then
   Style:= DFCS_CHECKED
else
   Style := DFCS_BUTTONCHECK;
 dbgrideh1.Canvas.Brush.Color := clyellow;

 dbgrideh1.Canvas.FillRect(Rect);
 DrawFrameControl(dbgrideh1.Canvas.Handle, RectBox, DFC_BUTTON, Style);
end;

Кстати здесь где то основу брал...

Так вот

if checkit then
   Style:= DFCS_CHECKED
else
   Style := DFCS_BUTTONCHECK;

Иммено этой частью кода я ставлю, а дальше все само.....


 
Reindeer Moss Eater ©   (2005-12-02 17:52) [5]

Вот тебе и говорят.
То условие, на основании которого ты выставляешь style у чекбокса, - его используй и для определения каким цветом рисовать ячейку.


 
volod   (2005-12-02 17:58) [6]

Ну подскажи плиз... У меня в описании переменной style типа integer, а код я брал с какой то темы здесь, немного его поменял под себя,

Если можно то как чего подробней плз.......


 
Reindeer Moss Eater ©   (2005-12-02 18:01) [7]

Че ты хочешь?


 
volod   (2005-12-02 18:07) [8]

есть конкретная проблемма...
if checkit then
  Style:= DFCS_CHECKED
else
  Style := DFCS_BUTTONCHECK;

этим кодам я ставил или неставил галку...

> Вот тебе и говорят.
> То условие, на основании которого ты выставляешь style у
> чекбокса, - его используй и для определения каким цветом
> рисовать ячейку.

как с помощью этого Style вообще работать цветом????
Если есть через него стили цвета, то какие?????


 
Reindeer Moss Eater ©   (2005-12-02 18:10) [9]

В баню не хочешь сходить, или купить на базаре гуся?


 
volod   (2005-12-02 18:28) [10]

Вообщем ясно, думал дельный совет будет или ссылка, а не:

> Когда отрисовываешь чекбокс его состояние выставляешь по
> какому-то
> признаку?
> Вот по этому же признаку и цвет остальных ячеек отрисовывай.
>

Это я и сам знаю что где то тут, поменять одно из свойств ....


 
Reindeer Moss Eater ©   (2005-12-02 18:30) [11]

Я тебе дал и совет и ссылку.
Точнее ссылку и совет.



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

Текущий архив: 2006.01.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.048 c
6-1127146757
Express
2005-09-19 20:19
2006.01.01
Socket


2-1134408232
fast2
2005-12-12 20:23
2006.01.01
Как сделать, чтоб в комбобоксе нельзя было вводить с клавиатуры..


1-1133789961
Экспериментатор
2005-12-05 16:39
2006.01.01
Как в MDI приложении сделать чтобы MDI-child окно максимизировало


14-1134040207
SergProger
2005-12-08 14:10
2006.01.01
Как в Pascal


2-1134633581
Tomkat
2005-12-15 10:59
2006.01.01
замена символа на лету