Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
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
Poder: 25
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
  #2  
Antiguo 23-06-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
Poder: 25
José Luis Garcí Va camino a la fama
Hola compañeros, el código anterior da errores, por lo que me he puesto hacerlo todo denuevo desde 0 y ahora tengo lo siguiente

Código Delphi [-]
unit Prueba32;
 
interface
 
uses Classes,SysUtils, Db, DBGrids, Grids;
 
type
 
  tdbp32= class;
 
  TMiColumn= Class(TColumn)
  private
     FPrueba: String;
     Fgrip: Tdbp32;
     procedure SetPrueba(value: String);
  public
     constructor create(collection: TCollection);override;
     destructor Destroy; override;
     procedure Assign(source: TPersistent); override;
     property Grid : tDbp32 read FGrip ;
  published
     property Prueba: string read FPrueba write SetPrueba;
  End;
 
  TMiGridColumn = Class(TDBGridColumns)
     function GetItem(AIndex: integer): TMiColumn;
     procedure SetItem(AIndex: integer; const Value: TMiColumn);
  public
     function Add: TMiColumn;
//     function IndexOf(ItemName:string):integer;
//     function ValueOf(ItemName:string):String;
     function ValueOfIndex(aIndex:integer):string;
     procedure Assign(Source: TPersistent); override;
     property Items[AIndex: integer] : TMiColumn read GetItem write SetItem;
  End;
 
  TDBP32 = class(TDBGrid)
   Private
    function GetColumns: TMiGridColumn;
    procedure SetColumns(Value: TMiGridColumn);
  protected
    { Protected declarations }
    function CreateColumns: TDBGridColumns; override;
  public
     constructor Create(AOwner: TComponent); override;
     destructor Destroy; override;
     property Columns: TMiGridColumn read GetColumns write SetColumns;
     function ValueOfIndex(aIndex:integer):string;
  published
  end;
 
procedure Register;
 
implementation
 
procedure Register;
begin
   RegisterComponents('PRUEBAS', [tdbp32]);
end;
 
{TDBP32}
Function TDBP32.GetColumns: TMiGridColumn;
begin
  Result := TMiGridColumn(inherited Columns)
end;
 
procedure TDBP32.SetColumns(Value: TMiGridColumn);
begin
  TMiGridColumn(Columns).Assign(Value)
end;
 
function TDBP32.CreateColumns: TDBGridColumns;
begin
    Result := TDBGridColumns.Create(Self, TMiColumn);
end;
 
constructor TDBP32.Create(AOwner: TComponent);
var Fcol:TDBGridColumns;
begin
  inherited;
   Fcol:=TDBGridColumns.Create(Self, TMiColumn);
end;
 
destructor TDBP32.Destroy;
begin
  inherited Destroy;
end;
 
function TDBP32.ValueOfIndex(aIndex:integer):string;
begin
   result := Columns.ValueOfIndex(aIndex);
end;
 
{TMiGridColumn}
function TMiGridColumn.GetItem(AIndex: Integer): TMiColumn;
begin
   Result:= TMiColumn(inherited Items[aIndex]);
end;
 
procedure TMiGridColumn.SetItem(AIndex: integer; const Value: TMiColumn);
begin
  inherited SetItem(AIndex, Value);
end;
 
function TMiGridColumn.Add: TMiColumn;
begin
  Result:= TMiColumn(inherited Add);
end;
 
Function TMiGridColumn.ValueOfIndex(aIndex:integer):string;
begin
  if (aIndex >=0) and (aIndex < Count)  then Result:= items[aIndex].Prueba
                                        else Result:='';
end;
 
procedure TMiGridColumn.Assign(Source: TPersistent);
var V_valor:TMiGridColumn;
    V_loop: integer;
begin
    if (Source is TMiGridColumn) then
    begin
      V_valor:=TMiGridColumn(Source);
      Clear;
      for V_loop := 0 to v_Valor.Count - 1 do
        add.Assign(v_Valor.Items[V_loop]);
    end Else Inherited;
end;
 
{TMicolumn}
constructor TMiColumn.Create(collection: TCollection);
begin
    inherited Create(collection);
    FPrueba:='';
end;
 
Destructor TMiColumn.Destroy;
begin
    inherited;
end;
 
procedure TMiColumn.SetPrueba(value: string);
begin
  if FPrueba<>value then FPrueba:=value;
 
end;
 
procedure TMiColumn.Assign(source: TPersistent);
var V_valor:TMiColumn;
begin
   if (source is TMiColumn) then  V_valor:=TMiColumn(source)
                            else  inherited;
end;
 
end.

lo que ocurre es que ahora no da fallos pero no puedo hacer la llamada convencionalmente

Código Delphi [-]
tdbp321.Columns[Column.ID].Prueba:='123';

tengo que hacerlo de la siguiente manera

Código Delphi [-]
tdbp321.Columns.Items[Column.ID].Prueba:='123';

Me podéis decir que estoy haciendo mal y si no es mucho pedir mostrarme el código con la corrección.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
nueva propiedad tipo combo a componente pborges36 OOP 1 21-04-2009 21:21:38
¿Cómo le llamarían a nueva propiedad de TDataSource? Al González OOP 6 06-08-2007 21:33:06
Agregar la propiedad PasswordChar a un TColumn.... chileno Varios 4 12-05-2007 00:15:41
Ayuda con TColumn pelaorb68 OOP 5 18-04-2007 19:55:29
Implementar una nueva opción para la propiedad "FormStyle" JM75 OOP 3 15-02-2007 15:53:44


La franja horaria es GMT +2. Ahora son las 12:28:45.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi