![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Прорисовка в DBGrid [D6, Win2k]
ggg © (2004-12-08 13:34:00)Написал обработчик для OnDrawDataCell. Вроде работает нормально, ячейки перерисовываются нужным образом, но если убрать несколько колонок из DBGrid-a, в эту процедуру вообще перестает входить (я пошагово выполнял). Почему?
procedure TMainForm.DBGrid2DrawDataCell(Sender: TObject;
const Rect: TRect; Field: TField; State: TGridDrawState);
begin
if AccTable.FieldByName('Prim').AsBoolean then
DBGrid2.Canvas.Font.Style := DBGrid2.Canvas.Font.Style + [fsBold];
DBGrid2.DefaultDrawDataCell(Rect, Field, State);
if (Field.FieldName='Prim') and (AccTable.RecordCount>0) then
if Field.Value=true then begin
DBGrid2.Canvas.Brush.Color:= clWhite;
DBGrid2.Canvas.FillRect(Rect);
DBGrid2.Canvas.TextOut(Rect.Left+2,Rect.Top+2,'Да')
end else begin
DBGrid2.Canvas.Brush.Color:= clWhite;
DBGrid2.Canvas.FillRect(Rect);
DBGrid2.Canvas.TextOut(Rect.Left+2,Rect.Top+2,'Нет')
end;
end;
ggg (2004-12-09 10:17:00) [1]Все, я разобрался. Надо было просто справку почитать :).
OnDrawDataCell обрабатывается в том случае, если DBGrid.Columns.State = csDefault. Если убрать несколько колонок,
DBGrid.Columns.State = csCustomized
KSergey (2004-12-09 08:46:00) [2]На счет "перестает совсем заходить" - есть большие сомнения. Скорее - просто убираются те колонки, на который у вас навешана проверка?
А вообще - читните тут. Что-то сказать по конкретному случаю на основании приведенной информации я не берусь.
http://www.delphikingdom.com/helloworld/dbgridcolor.htm
http://www.delphikingdom.com/helloworld/mergegrid.htm
http://www.delphikingdom.com/helloworld/nogrid.htm
http://www.delphikingdom.com/helloworld/grid.htm
http://www.delphikingdom.com/helloworld/dbgridplus.htm
ggg (2004-12-08 17:17:00) [3]никто не знает, что ли?