Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Прорисовка в 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]

никто не знает, что ли?


Наверх

Титульная страница Поиск, карта сайта Написать письмо