Fórum FB DBgrid Boolean #224093
02/04/2004
0
Alguem sabe como faço para colocar campo boolean no DBgrid, mas não quero escrito ´Sim´ ou ´Não´ quero amarcação como do [b:3c73738362]TCheckBox[/b:3c73738362], uso firebird 1.5, e meu campo é do tipo [b:3c73738362]varchar[/b:3c73738362], tamanho [b:3c73738362]5[/b:3c73738362], onde guardo [b:3c73738362]True ou False[/b:3c73738362].
Antes eu utilizava o componente [b:3c73738362]DbGridBool[/b:3c73738362], mas ele não funciona com IB ou FB.
Antes eu utilizava o componente [b:3c73738362]DbGridBool[/b:3c73738362], mas ele não funciona com IB ou FB.
Sistemald
Curtir tópico
+ 0
Responder
Posts
02/04/2004
Edmarfonseca
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if (Column.Field = <Nome do Campo>) and
(DataSet.FieldByName(<Nome do Campo>).AsString = ´True´) then begin
DBGrid1.Canvas.FillRect(Rect);
ImageList.Draw(DBGrid1.Canvas, Rect.Left+1, Rect.Top, 0);
end;
end;
Você deve ter um componente TImageList. Adicione uma figura parecida com Check do TCheckBox no TImageList.
Na linha ´ImageList.Draw(DBGrid1.Canvas, Rect.Left+1, Rect.Top, 0);´
o ´0´ (zero) é o número da figura no TImageList. ´0´ (zero) é o primeiro, ´1´ é o segundo e assim .....
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if (Column.Field = <Nome do Campo>) and
(DataSet.FieldByName(<Nome do Campo>).AsString = ´True´) then begin
DBGrid1.Canvas.FillRect(Rect);
ImageList.Draw(DBGrid1.Canvas, Rect.Left+1, Rect.Top, 0);
end;
end;
Você deve ter um componente TImageList. Adicione uma figura parecida com Check do TCheckBox no TImageList.
Na linha ´ImageList.Draw(DBGrid1.Canvas, Rect.Left+1, Rect.Top, 0);´
o ´0´ (zero) é o número da figura no TImageList. ´0´ (zero) é o primeiro, ´1´ é o segundo e assim .....
Responder
Gostei + 0
02/04/2004
Sistemald
Valeu, funcionou perfeitamente.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)