Fórum Classe de ferramentas - POO #480903

30/05/2014

0

Estou tentando montar uma classe, com algums funções pra eu ir usando em meus projetos.
tentei fazer essa função de selecionar o grid e mandar zebrar, mas não está funcionando.
Não deixa eu compilar... Acusa erro na identicação... desconfio que falta alguma unit na uses.
Já rodei o google e não achei a qual ela pertence ou o que eu estou errando...
Se alguém poder me dar uma luz... Agradeço desde já

******************************************* CLASSE DE AUXILIO *****************************************

unit umytoys;

interface
uses
Variants, Classes, Graphics, Controls, ExtCtrls, Windows, Messages, SysUtils, IniFiles, DB, IBCustomDataSet, Dialogs, IBQuery, IBDatabase,
DBClient, Provider, StdCtrls, Jpeg, ComCtrls, GRids, IBScript, DBCtrls, DBGRids, forms;

type toys = class
grid : TDBGrid;
procedure Zebrar(const grid_selecionado : TDBGrid);
property SelecionaGrid : TDBGrid read grid write grid;
end;

implementation
procedure Toys.Zebrar(const grid_selecionado: TDBGrid);
begin
if not odd(grid_selecionado.DataSource.DataSet.RecNo) then begin
if not (gdSelected in State) then
begin
grid_selecionado.Canvas.Brush.Color := clMoneyGreen;
grid_selecionado.Canvas.FillRect(Rect);
grid_selecionado.DefaultDrawDataCell(rect,Column.Field,state);
end;
end;
end;

end.
Adib Valentim

Adib Valentim

Responder

Posts

02/06/2014

Cauê Nishijima

Olá Adib, tenta o seguinte:


unit umytoys;

interface

uses
  Variants, Classes, Graphics, Controls, ExtCtrls, Windows, Messages, SysUtils,
  IniFiles, DB, IBCustomDataSet, Dialogs, IBQuery, IBDatabase,
  DBClient, Provider, StdCtrls, Jpeg, ComCtrls, GRids, IBScript, DBCtrls,
  DBGRids, forms;

type
  toys = class
    grid: TDBGrid;
    procedure Zebrar(const grid_selecionado: TDBGrid);
    property SelecionaGrid: TDBGrid read grid write grid;

    procedure GridDrawColumnCell(Sender: TObject; const Rect: TRect;
        DataCol: Integer; Column: TColumn; State: TGridDrawState);
  end;

implementation


procedure toys.GridDrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if not odd(grid.DataSource.DataSet.RecNo) then
  begin
    if not(gdSelected in State) then
    begin
      grid.Canvas.Brush.Color := clMoneyGreen;
      grid.Canvas.FillRect(Rect);
      grid.DefaultDrawDataCell(Rect, Column.Field, State);
    end;
  end;
end;


procedure toys.Zebrar(const grid_selecionado: TDBGrid);
begin
  grid := grid_selecionado;
  grid_selecionado.OnDrawColumnCell := GridDrawColumnCell;
end;

end.

Responder

Gostei + 0

02/06/2014

Adib Valentim

Na hora de compliar já apresenta erro de AccessViolation.
Responder

Gostei + 0

02/06/2014

Cauê Nishijima

Mas como você esta fazendo a chamada?
Responder

Gostei + 0

02/06/2014

Adib Valentim

Instancio e seto o nome do grid como parametro
e aí na hora de compilar dá o access violation
Responder

Gostei + 0

02/06/2014

Cauê Nishijima

Tem como postar o código ?!!hhh
Responder

Gostei + 0

02/06/2014

Cauê Nishijima

Tem como postar o código ?!!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar