Add custom TJDBGridColumns and TJDBColumn. Thanks jesusrmx

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2025 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
jujibo
2011-09-27 20:24:53 +00:00
parent b620ebf276
commit adccfe558f

View File

@ -5,11 +5,35 @@ unit JDBGridControl;
interface interface
uses uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, DB, DBGrids, Classes, SysUtils, LResources, Forms, Controls, Graphics, DB, Grids, DBGrids,
Dialogs, jdbgridutils; Dialogs, jdbgridutils;
type type
{ TJDBColumn }
TJDBColumn = class(TColumn)
private
fDecimals: integer;
function getDecimals: integer;
procedure setDecimals(AValue: integer);
published
property Decimals: integer read getDecimals write setDecimals;
end;
{ TJDBGridColumns }
TJDBGridColumns = class(TDBGridColumns)
private
function GetColumn(Index: integer): TJDBColumn;
procedure SetColumn(Index: integer; AValue: TJDBColumn);
public
function add: TJDBColumn;
property Items[Index: integer]: TJDBColumn read GetColumn write SetColumn; default;
published
end;
{ TJDBGridControl } { TJDBGridControl }
TJDBGridControl = class(TDBGrid) TJDBGridControl = class(TDBGrid)
@ -20,11 +44,15 @@ type
integerDbGridControl: TJDbGridIntegerCtrl; integerDbGridControl: TJDbGridIntegerCtrl;
doubleDbGridControl: TJDbGridDoubleCtrl; doubleDbGridControl: TJDbGridDoubleCtrl;
dateTimeDbGridControl: TJDbGridDateTimeCtrl; dateTimeDbGridControl: TJDbGridDateTimeCtrl;
function GetColumns: TJDBGridColumns;
procedure SetColumns(AValue: TJDBGridColumns);
protected protected
{ Protected declarations } { Protected declarations }
//procedure SelectEditor; override; //procedure SelectEditor; override;
function CreateColumns: TGridColumns; override;
function GetDefaultEditor(Column: integer): TWinControl; override; function GetDefaultEditor(Column: integer): TWinControl; override;
procedure UpdateData; override; procedure UpdateData; override;
property Columns: TJDBGridColumns read GetColumns write SetColumns;
public public
{ Public declarations } { Public declarations }
constructor Create(TheOwner: TComponent); override; constructor Create(TheOwner: TComponent); override;
@ -44,6 +72,34 @@ begin
RegisterComponents('Data Controls', [TJDBGridControl]); RegisterComponents('Data Controls', [TJDBGridControl]);
end; end;
function TJDBColumn.getDecimals: integer;
begin
Result := fDecimals;
end;
procedure TJDBColumn.setDecimals(AValue: integer);
begin
if (AValue >= 0) and (AValue <= 10) then
fDecimals := AValue;
end;
{ TJDBGridColumns }
function TJDBGridColumns.GetColumn(Index: integer): TJDBColumn;
begin
Result := TJDBColumn(inherited Items[Index]);
end;
procedure TJDBGridColumns.SetColumn(Index: integer; AValue: TJDBColumn);
begin
Items[Index].Assign(AValue);
end;
function TJDBGridColumns.add: TJDBColumn;
begin
Result := TJDBColumn(inherited add);
end;
{ TJDBGridControl } { TJDBGridControl }
//procedure TJDBGridControl.SelectEditor; //procedure TJDBGridControl.SelectEditor;
@ -60,6 +116,21 @@ end;
// end; // end;
//end; //end;
function TJDBGridControl.GetColumns: TJDBGridColumns;
begin
Result := TJDBGridColumns(inherited Columns);
end;
procedure TJDBGridControl.SetColumns(AValue: TJDBGridColumns);
begin
inherited Columns := TDBGridColumns(AValue);
end;
function TJDBGridControl.CreateColumns: TGridColumns;
begin
Result := TJDBGridColumns.Create(Self, TJDBColumn);
end;
function TJDBGridControl.GetDefaultEditor(Column: integer): TWinControl; function TJDBGridControl.GetDefaultEditor(Column: integer): TWinControl;
var var
//aColumn: TColumn; //aColumn: TColumn;