Boa noite a todos... Sei que o assunto Checkbox + DBGrid já está bem batido, afinal, consegui achar rotinas em quilo na internet, mas meu problema é outro.
Com esta rotina [1], consigo criar o Checkbox em um DBGrid quando o campo for booleano, mas trabalhando com o Oracle - que não tem tipo booleano - ele não cria o Checkbox, e mesmo que criasse não mudaria o estado. Minhas flags "booleanas" no BD são sempre "S" ou "N", ou seja, char(1). Minha dúvida é: é possível fazer esta rotina funcionar com valores char ao invés de booleanos? []'s [1] - procedure TFBPSI002PSI0001.dbgProdutosDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); const rCtrlState : Array[Boolean] of Integer = (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED); var rCheckBoxRectangle : TRect; begin inherited; if Column.Field.DataType = ftBoolean then begin dbgProdutos.Canvas.FillRect(Rect); rCheckBoxRectangle.Left := Rect.Left + 2; rCheckBoxRectangle.Right := Rect.Right - 2; rCheckBoxRectangle.Top := Rect.Top + 2; rCheckBoxRectangle.Bottom := Rect.Bottom - 2; DrawFrameControl(dbgProdutos.Canvas.Handle, rCheckBoxRectangle, DFC_BUTTON, rCtrlState[Column.Field.AsBoolean]); end; end; --------------------------------------------------- Att.: Willian Jhonnes L. dos Santos Analista/Desenvolvedor Object/Free Pascal [EMAIL PROTECTED] --------------------------------------------------- Seja livre. Use Linux. Grupo de Usuários GNU/Linux de São José dos Pinhais Linux user number 449753 --------------------------------------------------- Powered by Slackware Linux 12.0 Kernel 2.6.21.5-custom --------------------------------------------------- Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses