📄 u_datasetup.pas
字号:
unit U_DataSetup;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, DB, ADODB, StdCtrls, AdvEdit, AdvEdBtn, AdvFileNameEdit,
GridsEh, DBGridEh, Buttons,math;
type
TFrm_DataSetup = class(TForm)
Label1: TLabel;
BitBtn1: TBitBtn;
DB1: TDBGridEh;
EPATH: TAdvFileNameEdit;
ADOTPath: TADOTable;
DsPath: TDataSource;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
procedure BitBtn1Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure DB1CellClick(Column: TColumnEh);
procedure DB1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Frm_DataSetup: TFrm_DataSetup;
implementation
uses U_DM;
{$R *.dfm}
Function DBGridRecordSize(mColumn: TColumnEh): Boolean;
begin
Result := False;
if not Assigned(mColumn.Field) then Exit;
mColumn.Field.Tag := Max(mColumn.Field.Tag,
TDBGridEh(mColumn.Grid).Canvas.TextWidth(mColumn.Field.DisplayText));
Result := True;
end;
procedure OptimizeGrid(AGrid: TCustomDbGridEh); //dbgrideh自适应列宽
var
i: integer;
begin
for i:=0 to AGrid.Columns.Count-1 do
begin
AGrid.Columns[i].OptimizeWidth;
end;
end;
procedure TFrm_DataSetup.BitBtn1Click(Sender: TObject);
begin
if NOT FileExists(epath.FileName) then exit;
//保存数据
with adotpath do
begin
if not active then active:=true;
Append;
FieldByName('path').Value:=epath.FileName;
Post;
end;
OptimizeGrid(db1);
end;
procedure TFrm_DataSetup.N1Click(Sender: TObject);
begin
adotpath.Delete;
end;
procedure TFrm_DataSetup.DB1CellClick(Column: TColumnEh);
begin
epath.Text:=adotpath.FieldValues['path'];
end;
procedure TFrm_DataSetup.DB1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
if DB1.DataSource.DataSet.RecNo mod 2=0 then
begin
DB1.Canvas.Brush.Color:=$00eaeaea;
DB1.Canvas.FillRect(rect);
DB1.Canvas.font.color:=clblack;
end
else
begin
DB1.Canvas.Brush.Color:=clwhite;
DB1.Canvas.FillRect(rect);
DB1.Canvas.font.color:=clblack;
end;
if ((State=[gdSelected]) or (State=[gdSelected,gdFocused])) then
begin
DB1.Canvas.Brush.Color:=clinfobk;
DB1.Canvas.FillRect(rect);
DB1.Canvas.font.color:=clblack;
end;
DB1.DefaultDrawColumnCell(rect,datacol,column,state);
DBGridRecordSize(Column);
if Column.Index = 0 then
if DB1.SumList.RecNo <> -1 then
DB1.Canvas.TextRect(Rect, Rect.Left + 3, Rect.Top + 2,
IntToStr(DB1.SumList.RecNo));
end;
procedure TFrm_DataSetup.FormShow(Sender: TObject);
begin
if not adotpath.Active then adotpath.Active:=true;
OptimizeGrid(db1);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -