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

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

CheckBox в DBGride [D7]


SergeyM ©   (2004-05-14 13:56:00) 

Это вообще возможно? Если да, то как?


SergeyM   (2004-05-14 15:32:00) [1]

Спасибо Vlad


Vlad   (2004-05-14 15:04:00) [2]

Вот пример использования:
(писал не проверяя, м.б. мелкие ошибки)

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
 const Rect: TRect; DataCol: Integer; Column: TColumn;
 State: TGridDrawState);
begin
 with TDBGrid(Sender) do
 begin
   if Column.FieldName='SELECTION' then
   begin
      if DataSource.DataSet.FieldByName('SELECTION').AsInteger = 1
           DrawGridCheckBox(TDBGrid(Sender).Canvas, Rect, True);
     else
           DrawGridCheckBox(TDBGrid(Sender).Canvas, Rect, False);
   else begin
     DefaultDrawColumnCell(Rect, DataCol, Column, State);
   end;
 end;
end;


DenK_vrtz   (2004-05-14 14:55:00) [3]

>SergeyM ©   (14.05.04 14:45) [3]

а вот это уже издевательство!


SergeyM   (2004-05-14 14:45:00) [4]

Чето я не понял как мне привязать эту процедуру к конкретной колонке


Vlad   (2004-05-14 13:59:00) [5]

procedure DrawGridCheckBox(Canvas: TCanvas; Rect: TRect; Checked: boolean);
var
 DrawFlags: Integer;
 tmpRect: TRect;
begin
 tmpRect := Rect;
 InflateRect(tmpRect, -2, -2);
 Canvas.FillRect(Rect);
 DrawFlags := DFCS_BUTTONCHECK or DFCS_ADJUSTRECT;  
if Checked then
   DrawFlags := DrawFlags or DFCS_CHECKED;
 DrawFrameControl(Canvas.Handle, tmpRect, DFC_BUTTON, DrawFlags);
end;


Вызывать в событии OnDrawColumnCell с параметром True если надо чтоб чекнутый был, или False если не чекнутый


clickmaker   (2004-05-14 13:58:00) [6]

EhLib
в стандартном OnDrawColumnCell + DrawFrameControl


Наверх

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