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

Responder a