unit
Unit16;
interface
uses
Winapi
.
Windows, Winapi
.
Messages, System
.
SysUtils, System
.
Variants, System
.
Classes, Vcl
.
Graphics,
Vcl
.
Controls, Vcl
.
Forms, Vcl
.
Dialogs, Data
.
DB, Vcl
.
Grids, Vcl
.
DBGrids,
FireDAC
.
Stan
.
Intf, FireDAC
.
Stan
.
Option, FireDAC
.
Stan
.
Param,
FireDAC
.
Stan
.
Error, FireDAC
.
DatS, FireDAC
.
Phys
.
Intf, FireDAC
.
DApt
.
Intf,
FireDAC
.
Comp
.
DataSet, FireDAC
.
Comp
.
Client, Vcl
.
StdCtrls;
type
TDbgrid=
class
(vcl
.
dbgrids
.
TDbgrid)
protected
OnColumnResized:TProc;
procedure
ColWidthsChanged; override;
end
;
type
TForm16 =
class
(TForm)
Dbgrid1:Tdbgrid;
StringGrid1: TStringGrid;
FDMemTable1: TFDMemTable;
DataSource1: TDataSource;
btn_doEqulaColumns: TButton;
procedure
FormCreate(Sender: TObject);
procedure
btn_doEqulaColumnsClick(Sender: TObject);
private
procedure
doEqualColumnWidthes;
public
end
;
var
Form16: TForm16;
implementation
{$R *.dfm}
procedure
TDbgrid
.
ColWidthsChanged;
begin
end
;
procedure
TForm16
.
btn_doEqulaColumnsClick(Sender: TObject);
begin
doEqualColumnWidthes;
end
;
procedure
TForm16
.
doEqualColumnWidthes;
var
i:
integer
;
begin
for
I :=
0
to
self
.
DBGrid1
.
Columns
.
Count-
1
do
self
.
StringGrid1
.
ColWidths[i]:=self
.
DBGrid1
.
Columns[i].Width;
end
;
procedure
TForm16
.
FormCreate(Sender: TObject);
begin
self
.
FDMemTable1
.
Close;
self
.
FDMemTable1
.
FieldDefs
.
Clear;
FDMemTable1
.
FieldDefs
.
Add(
'name'
, ftString,
20
);
FDMemTable1
.
FieldDefs
.
Add(
'age'
, ftinteger) ;
FDMemTable1
.
CreateDataSet;
FDMemTable1
.
Append;
FDMemTable1
.
FieldByName(
'name'
).AsString:=
'Alise'
;
FDMemTable1
.
FieldByName(
'age'
).AsInteger:=
20
;
FDmemtable1
.
post;
FDMemTable1
.
Append;
FDMemTable1
.
FieldByName(
'name'
).AsWideString:=
'Bob'
;
FDMemTable1
.
FieldByName(
'age'
).AsInteger:=
20
;
FDmemtable1
.
post;
self
.
DataSource1
.
DataSet:=self
.
FDMemTable1;
self
.
DBGrid1
.
DataSource:=self
.
DataSource1;
self
.
StringGrid1
.
FixedCols:=
0
;
Self
.
StringGrid1
.
RowCount:=
2
;
self
.
StringGrid1
.
ColCount:=self
.
DBGrid1
.
Columns
.
count;
doEqualColumnWidthes;
end
;
end
.