1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
| unit QRAGrid;
interface
uses
SysUtils, Classes, types, controls, Grids, Graphics;
type
TBaseRenderer = class;
TBaseController = class;
TRelevantPosition = (rpRow, rpColumn, rpCell);
TRAGrid = class (TStringGrid)
private
CellControllers: Array of Array of TList;
CellRenderers: Array of Array of TList;
FControllers: TList;
FRenderers: TList;
PreviousColCount: Integer;
PreviousRowCount: Integer;
Bmp:TBitmap;
protected
public
constructor create(AOwner:TComponent); override;
TBaseRenderer = class (TComponent)
private
protected
public
published
end;
TBaseController = class (TComponent)
private
protected
procedure Change; virtual; abstract;
public
published
end;
procedure Register;
function sortByOrder(item1, item2:pointer):Integer;
implementation
{$R *.dcr}
uses UColorRenderer, UBitmapRenderer, USequenceGridController, URenderer, math,
RAGrid, URendererVCL, UColorRendererVCL, UBitmapRendererVCL, USequenceGridControllerVCL,
UEditorControllerVCL, UEditorsVCL, UMiscRenderersVCL, UGridInitializerVCL,
ULinearInitializerVCL, UGridRegionVCL;
procedure Register;
begin
RegisterComponents('test', [TRAGrid]);
RegisterComponents('Test', [TBackGroundColorRenderer]);
RegisterComponents('Test', [THeaderRenderer]);
RegisterComponents('Test', [TTextColorRenderer]);
RegisterComponents('Test', [TBitmapRenderer]);
RegisterComponents('Test', [TSequenceGridController]);
RegisterComponents('Test', [TSpinController]);
RegisterComponents('Test', [TBitmapBarRenderer]);
RegisterComponents('Test', [TBlankRenderer]);
RegisterComponents('test', [TRAGridVCL]);
RegisterComponents('Test', [TBackGroundColorRendererVCL]);
RegisterComponents('Test', [THeaderRendererVCL]);
RegisterComponents('Test', [TTextColorRendererVCL]);
RegisterComponents('Test', [TBitmapRendererVCL]);
RegisterComponents('Test', [TSequenceGridControllerVCL]);
RegisterComponents('Test', [TSpinControllerVCL]);
RegisterComponents('Test', [TBitmapBarRendererVCL]);
RegisterComponents('Test', [TBlankRendererVCL]);
RegisterComponents('Test', [TEditorShowerControllerVCL]);
RegisterComponents('Test', [TTextEditorVCL]);
RegisterComponents('Test', [TChooseValueEditorVCL]);
RegisterComponents('Test', [TFocusRectDrawer]);
RegisterComponents('Test', [TCountLinearInitializerVCL]);
RegisterComponents('Test', [TConstantGridInitializerVCL]);
RegisterComponents('Test', [TEventGridInitializerVCL]);
RegisterComponents('Test', [TStringsLinearInitializerVCL]);
RegisterComponents('Test', [TGridRegionVCL]);
end;
{
*********************************** TRAGrid ************************************
}
constructor TRAGrid.create(AOwner:TComponent);
begin
inherited Create(AOwner);
FRenderers := TList.Create;
FControllers := TList.Create;
bmp:=TBitmap.create;
end. |
Partager