JVDBGrid ti sama postavlja "CheckBox" za polja TBooleanField, a ako hoces da postavis Check za polje nekog drugog tipa mozes da koristis ovako nesto:
Primer je za polje tipa TIntegerField a vazi i za obican DBGrid.
Na formu postavi jedan DBCheckBox
Code:
...
const CheckFieldName='MOJE_CHECK_POLJE';
....
procedure TFTabela.FormCreate(Sender: TObject);
begin
with DBCheckBox1 do
begin
Visible:= False;
Color:= Grid.Color;
ValueChecked:= 1;
ValueUnChecked := 0;
Caption:= '';
DataField:= CheckFieldName;
end;
end;
procedure TFTabela.GridDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
const IsChecked : array[Boolean] of Integer =
(DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED);
var
DrawState: Integer;
DrawRect: TRect;
begin
if (Column.Field.FieldName = CheckFieldName) then
begin
DrawRect:=Rect;
InflateRect(DrawRect,-1,-1);
DrawState := ISChecked[Column.Field.AsInteger=1];
Grid.Canvas.FillRect(Rect);
DrawFrameControl(Grid.Canvas.Handle, DrawRect, DFC_BUTTON, DrawState);
end;
end;
Nadam se da ti ovo moze pomoci.
Marcha
-----------------------------------
Pretpostavka je majka zajeba.