[firebase-br] OnDrawCell do IB_Grid com ícone ou imagem, algum exemplo ?

Gladiston Santana gladiston em vidy.com.br
Qui Ago 23 14:42:49 -03 2012


O seu exemplo é muito semelhante ao meu em usar grids zebrados, contudo, o
evento OnDrawColumnCell não existe no IB_Grid, uma suite popular para
Firebrid/Interbase. Os exemplos para DBGrids comuns na maior parte das
vezes não se aplica, o OnDrawCell é o que mais se aproxima, veja um exemplo
:

procedure TFormMAIN.GradePesquisaDrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
  with (Sender as TIB_Grid) do
  begin
    if (gdSelected in State) or (gdFocused in State) then
    begin
      Canvas.Brush.Color := clBlue;
      Canvas.Font.Color := clWhite;
    end
    else
    begin
     if (PesquisaSQL.Active) and
(PesquisaSQL.BufferFieldByName('status').AsString='A')
     then Canvas.Brush.Color := ZebraAberto.Color
     else
      begin
        if Odd(ARow)
        then Canvas.Brush.Color := Zebra1.Color
        else Canvas.Brush.Color := Zebra2.Color;
      end;
    end;

DefaultDrawCell(acol,arow,rect,state,GetCellDisplayText(acol,arow),taLeftJustify);
  end;
end;

É parecido no que se faz no DBGrid, contudo não é igual e não vejo uma
maneira de incluir um Draw numa coluna com os eventos que observo aqui.

[]´s

Em 23 de agosto de 2012 14:04, Terry Marçal Santos
<terrymarcal em gmail.com>escreveu:

> Gladston,
>
> Tenho um exemplo que eu utilizo, eu uso uma imagem quando o registro está
> ativo e outra quando o registro está inativo, espero que ajude.
>
> Abraços,
> Terry Marçal
>
> Ex.:
>
> procedure TFrmCentroCusto.grd_PrincipalDrawColumnCell(Sender: TObject;
>   const Rect: TRect; DataCol: Integer; Column: TColumn; State:
> TGridDrawState);
> begin
>    If odd(DMO_CENTRO_CUSTO.CDST_CENTRO_CUSTO.RecNo) then
>       begin
>         grd_Principal.Canvas.Font.Color:= clBlack;
>         grd_Principal.Canvas.Brush.Color:= $00FFF4E8;
>       end
>    else
>       begin
>         grd_Principal.Canvas.Font.Color:= clBlack;
>         grd_Principal.Canvas.Brush.Color:= clWhite;
>       end;
>    grd_Principal.Canvas.FillRect(Rect);
>
>  grd_Principal.Canvas.TextOut(Rect.Left+2,Rect.Top,Column.Field.AsString);
>
>     if Column.Field = DMO_CENTRO_CUSTO.CDST_CENTRO_CUSTOCCU_ATIVO then
>     begin
>         grd_Principal.Canvas.FillRect(Rect);
>
>         if DMO_CENTRO_CUSTO.CDST_CENTRO_CUSTOCCU_ATIVO.Text='S' then //
> Cadastro está ativo
>
>
> DMO_PRINCIPAL.im_ListaImagem.Draw(grd_Principal.Canvas,Rect.Left+10,Rect.Top+1,0);
>
>         if DMO_CENTRO_CUSTO.CDST_CENTRO_CUSTOCCU_ATIVO.Text='N' then //
> Cadastro está ativo
>
>
> DMO_PRINCIPAL.im_ListaImagem.Draw(grd_Principal.Canvas,Rect.Left+10,Rect.Top+1,1);
>     end;
>
> end;
>
>
>
>
> Em 23 de agosto de 2012 13:52, Gladiston Santana
> <gladiston em vidy.com.br>escreveu:
>
> > Alguém aí tem exemplo do evento OnDrawCell para ser usado com o  IB_Grid
> > (IBOSuite) que permita colocar ícones ou imagens para indicar uma
> situação
> > ?
> > Eu já uso o OnDrawCell para pintar a linha (ou celula) de uma cor, mas
> acho
> > que seria melhor se eu pudesse acrescentar uma coluna e um ícone
> indicativo
> > de status nela.
> > Se alguem tiver algum exemplo, me ajudaria em muito.
> >
> > Gladiston Santana
> > Departamento de TI
> > Grupo Vidy
> > Tel (11) 4787-3122 ramal 228
> > Rod. Régis Bittencourt 3360 - Km 272,5
> > Taboão da Serra - SP - CEP: 06793-000
> > Visite nosso site: www.vidy.com.br
> > Visite também : www.expolabor.com.br
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista