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
| unit TestStringGridmain;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, System.Rtti,
FMX.Grid.Style, FMX.Grid, FMX.Controls.Presentation, FMX.ScrollBox,
FMX.Layouts, Data.Bind.EngExt, Fmx.Bind.DBEngExt, Data.Bind.Components;
type
TForm4 = class(TForm)
StringGrid1: TStringGrid;
StringColumn1: TStringColumn;
StringColumn2: TStringColumn;
StringColumn3: TStringColumn;
StringColumn4: TStringColumn;
StringColumn5: TStringColumn;
StringColumn6: TStringColumn;
StringColumn7: TStringColumn;
StringGrid2: TStringGrid;
Layout1: TLayout;
BindingsList1: TBindingsList;
procedure FormCreate(Sender: TObject);
procedure StringGrid2DrawColumnBackground(Sender: TObject;
const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF;
const Row: Integer; const Value: TValue; const State: TGridDrawStates);
procedure StringGrid1SelectCell(Sender: TObject; const ACol, ARow: Integer;
var CanSelect: Boolean);
procedure StringGrid1DrawColumnCell(Sender: TObject; const Canvas: TCanvas;
const Column: TColumn; const Bounds: TRectF; const Row: Integer;
const Value: TValue; const State: TGridDrawStates);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form4: TForm4;
implementation
{$R *.fmx}
procedure TForm4.FormCreate(Sender: TObject);
var
I: Integer;
X: Integer;
begin
StringGrid1.RowCount:=20;
StringGrid2.RowCount:=20;
for x:=0 to StringGrid1.RowCount-1 do
begin
for I := 0 to Stringgrid2.ColumnCount-1 do
Stringgrid2.Cells[I,X]:='FFFF '+I.ToString+'/'+X.ToString;
for I := 0 to Stringgrid1.ColumnCount-1 do
Stringgrid1.Cells[I,X]:='AAAA '+I.ToString+'/'+X.ToString;
end;
Stringgrid2.ShowScrollBars:=False;
end;
procedure TForm4.StringGrid1DrawColumnCell(Sender: TObject;
const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF;
const Row: Integer; const Value: TValue; const State: TGridDrawStates);
begin
// permet de garder le positionnement de grille (synchro)
StringGrid2.TopRow:=StringGrid1.TopRow;
end;
procedure TForm4.StringGrid1SelectCell(Sender: TObject; const ACol,
ARow: Integer; var CanSelect: Boolean);
begin
StringGrid2.Row:=ARow; // synchro
end;
procedure TForm4.StringGrid2DrawColumnBackground(Sender: TObject;
const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF;
const Row: Integer; const Value: TValue; const State: TGridDrawStates);
var RowColor : TBrush;
begin
// dessin colonnes fixes
RowColor := Tbrush.Create(TBrushKind.Solid,TAlphaColors.Gray);
Canvas.FillRect(Bounds, 0, 0, [], 1, RowColor); // agrandir bounds ?
Column.DefaultDrawCell(Canvas,bounds,row,value,state);
end;
end. |
Partager