Ver Mensaje Individual
  #2  
Antiguo 29-05-2010
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Reputación: 22
José Luis Garcí Va camino a la fama
Hola compañeros creo que lo he resuelto, estudiando El código del DbgridCheck y El de Smdbgrid, he llegado a este código, no lo doy por cerrado, por si encontráis algo que este mal o a depurar. Quedo a la Espera de los Comentarios


Código: [Seleccionar]


Código Delphi [-]
unit DBGridPrueba1;

interface

uses
  SysUtils, Classes, Controls, Grids, DBGrids, Graphics;
//****************************************************************************//
 type
  TMiColumn = class(TCoLumn)
  private
    FSomeValue : String;
    FValueLow: Integer;
    FCcolorValueLow: Tcolor;
    FChekValueLow: Boolean;
    procedure SetSomeValue(Value: string);
    procedure SetColorValueLow(Value: Tcolor);
    procedure SetValueLow(Value:Integer);
    procedure SetCheckValueLow(Value:Boolean);
  protected
  public
    constructor Create(Collection:TCollection); override;
    destructor Destroy; override;
  published
    property SomeValue :     String   read FSomeValue       write SetSomeValue;
    property ValueLow  :     Integer  read FValueLow        write SetValueLow       default 0;
    property ColorValueLow:  Tcolor   read FCcolorValueLow  write SetColorValueLow  default clYellow;
    property CheckValueLow:  Boolean  read FChekValueLow    write SetCheckValueLow  default False;
  end;
//****************************************************************************//
  TMiGridColumns  = class(TDBGridColumns)
  private
    function GetColumn(Index: Integer): TMiColumn;
    procedure SetColumn(Index: Integer; Value: TMiColumn);
  protected
  public
    function Add: TMiColumn;
    property Items[Index: Integer]: TMiColumn read GetColumn write SetColumn; default;
  end;
//****************************************************************************//
type
  TDBGridPruebas = class(TDBGrid)
  private
    { Private declarations }
    function GetColumns: TMiGridColumns;
    procedure SetColumns(Value: TMiGridColumns);
  protected
    { Protected declarations }
    function CreateColumns: TDBGridColumns; override;
  public
    { Public declarations }
    constructor Create(AOwner : TComponent); override;
    destructor Destroy;
     property Columns: TMiGridColumns read GetColumns write SetColumns;
  published
    { Published declarations }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('PRUEBAS', [TDBGridPruebas]);
end;

{TMiculumn}
constructor TMiColumn.Create(Collection: TCollection);
begin
   inherited Create(Collection);
   FSomeValue:='';
   FValueLow:=0;
   FCcolorValueLow:=clYellow;
   FChekValueLow:=False;
end;

Destructor TMiColumn.Destroy;
begin
   inherited
end;

procedure TMiColumn.SetSomeValue(Value: string);
begin
   if FSomeValue<>Value then FSomeValue:=Value;
end;

procedure TMiColumn.SetColorValueLow(Value: Tcolor);
begin
   if FCcolorValueLow<>Value then FCcolorValueLow:=Value;
end;

procedure TMiColumn.SetValueLow(Value: Integer);
begin
  if FValueLow<>Value then FValueLow:=Value;
end;

procedure TMiColumn.SetCheckValueLow(Value: Boolean);
begin
   if  FChekValueLow<>Value then   FChekValueLow:=Value;
end;

{TMiGridColumns}
function TMiGridColumns.Add: TMiColumn;
begin
  Result := TMiColumn(inherited Add);
end;

function TMiGridColumns.GetColumn(Index: Integer): TMiColumn;
begin
  Result := TMiColumn(inherited Items[Index]);
end;

procedure TMiGridColumns.SetColumn(Index: Integer; Value: TMiColumn);
begin
  Items[Index].Assign(Value);
end;

 {TDBGridPruebas}
constructor TDBGridPruebas.Create(AOwner : TComponent);
begin
  inherited Create(AOwner);
end;

destructor TDBGridPruebas.Destroy;
begin
  inherited Destroy;
end;

function TDBGridPruebas.GetColumns: TMiGridColumns;
begin
  Result := TMiGridColumns(inherited Columns)
end;

procedure TDBGridPruebas.SetColumns(Value: TMiGridColumns);
begin
  TMiGridColumns(Columns).Assign(Value)
end;

function TDBGridPruebas.CreateColumns: TDBGridColumns;
begin
    Result := TDBGridColumns.Create(Self, TMiColumn);
end;
end.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita