⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 u_datasetup.pas

📁 本程序主要实现了动态获取多个共享ACCESS数据库数据的功能
💻 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 + -