John, you can just display an image of a checkbox in the DrawColumnCell event - see below code (written by someone else)
cheers, Steve Displaying a checkbox within a DBGrid for use with Boolean fields Displaying a checkbox in a DB Grid doesn't necesarily mean you have to have a TCheckBox control on the form. By owner drawing the grid control the same effect can be achieved. The following component overrides the default behaviour of TDBGrid this allows us to draw a checkbox within the cell. Because some databases don't support the Boolean datatype an extra property has been added. The BoolFields property lists all column's which are boolean. unit DBGridEx; {DBGrid which displays a checkbox instead of the default editor for all boolean fields. Created by Simon Carter ([EMAIL PROTECTED]) } interface uses Windows, Classes, Grids, DBGrids; type TDBGridEx = class(TDBGrid) private FBoolFields: TStringList; procedure SetBoolFields(const Value: TStringList); protected procedure DrawColumnCell(const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); override; procedure CellClick(Column: TColumn); override; procedure ColEnter; override; procedure ColExit; override; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published property BoolFields: TStringList read FBoolFields write SetBoolFields; end; procedure Register; implementation uses DB; procedure Register; begin RegisterComponents('Samples', [TDBGridEx]); end; constructor TDBGridEx.Create(AOwner: TComponent); begin inherited Create(AOwner); FBoolFields := TStringList.Create; end; destructor TDBGridEx.Destroy; begin FBoolFields.Free; inherited Destroy; end; procedure TDBGridEx.DrawColumnCell(const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin inherited DrawColumnCell(Rect, DataCol, Column, State); if (Column.Field.DataType = ftBoolean) or (FBoolFields.IndexOf(Column.Field.FieldName) > -1) then begin with Canvas do begin FillRect(Rect); if Column.Field.AsBoolean then DrawFrameControl(Handle, Rect, DFC_BUTTON, DFCS_BUTTONCHECK or DFCS_CHECKED) else DrawFrameControl(Handle, Rect, DFC_BUTTON, DFCS_BUTTONCHECK); end; end; end; procedure TDBGridEx.CellClick(Column: TColumn); begin if (Column.Field.DataType = ftBoolean) or (FBoolFields.IndexOf(Column.Field.FieldName) > -1) then begin if not (DataSource.DataSet.State in [dsEdit]) then DataSource.DataSet.Edit; Column.Field.AsBoolean := not Column.Field.AsBoolean; end; inherited CellClick(Column); end; procedure TDBGridEx.ColEnter; begin if (SelectedField.DataType = ftBoolean) or (FBoolFields.IndexOf(SelectedField.FieldName) > -1) then begin InplaceEditor.Hide; Options := Options - [dgEditing, dgAlwaysShowEditor]; end; inherited ColEnter; end; procedure TDBGridEx.ColExit; begin inherited ColExit; Options := Options + [dgEditing, dgAlwaysShowEditor]; end; procedure TDBGridEx.SetBoolFields(const Value: TStringList); begin FBoolFields.Assign(Value); end; end. > -----Original Message----- > From: John [mailto:[EMAIL PROTECTED] > Sent: Tuesday, 5 August 2003 8:33 a.m. > To: Multiple recipients of list delphi > Subject: [DUG]: TDBGrid - tick > > > Hi all, > > How can I get showing a TICK in a TDBGrid's logical field. I > know how to > change text from "true" to "Yes", by setting the > DisplayValues property on > the associated table component. But how can I change this to the TICK > character (character 251)? > Or should I load an image? If so, how do I do that? > > TIA > > John. > > -------------------------------------------------------------- > ------------- > New Zealand Delphi Users group - Delphi List - > [EMAIL PROTECTED] > Website: http://www.delphi.org.nz > To UnSub, send email to: [EMAIL PROTECTED] > with body of "unsubscribe delphi" > Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/ > > --- > Incoming mail is certified Virus Free. > Checked by AVG anti-virus system (http://www.grisoft.com). > Version: 6.0.507 / Virus Database: 304 - Release Date: 4/08/2003 > > --------------------------------------------------------------------------- New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED] Website: http://www.delphi.org.nz To UnSub, send email to: [EMAIL PROTECTED] with body of "unsubscribe delphi" Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/