📄 unit1.pas
字号:
{*******************************************************}
{ }
{ dbgrideh增强版演示 }
{ }
{ 版权所有 (C) 2008 陈新光 }
{ }
{*******************************************************}
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, GridsEh, DBGridEh, DB, ADODB,Menus, EhLibADO,
sncCurrency, sncDBCurrency;
type
TForm1 = class(TForm)
DBGridEh1: TDBGridEh;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
ADOQuery2: TADOQuery;
sncDBCurrencyEdit: TsncDBCurrencyEdit;
procedure FormShow(Sender: TObject);
procedure DBGridEh1BuildIndicatorTitleMenu(Grid: TCustomDBGridEh;
var PopupMenu: TPopupMenu);
procedure DBGridEh1ColEnter(Sender: TObject);
procedure DBGridEh1ColExit(Sender: TObject);
procedure sncDBCurrencyEditEnter(Sender: TObject);
procedure sncDBCurrencyEditExit(Sender: TObject);
procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
procedure DBGridEh1EditButtonClick(Sender: TObject);
private
FPopupMenu:TPopupMenu;
FieldList:TStringList;
procedure MenuClick(Sender:TObject);
{ Private declarations }
public
{ Public declarations }
published
procedure MyAdd;
end;
var
Form1: TForm1;
const
FFieldList='进价,售价';
implementation
uses uGlobal,uInterCOL, Unit2;
{$R *.dfm}
procedure TForm1.FormShow(Sender: TObject);
var
i:Integer;
begin
FPopupMenu:=GetPopupMenuA(Self,MenuClick);
SetDbGridEHPropertyA(DBGridEh1);
SetDbGridEhFootA(DBGridEh1,'库存数量');
for i:=0 to DBGridEh1.Columns.Count-1 do
if (DBGridEh1.Columns[i].FieldName='供应商') then
begin
DBGridEh1.Columns[i].AlwaysShowEditButton:=True; //在某列显示选择按钮
DBGridEh1.Columns[i].ButtonStyle:=cbsEllipsis;
end;
end;
procedure TForm1.MenuClick(Sender: TObject);
begin
MenuItemClickA(TMenuItem(Sender),DBGridEh1);
end;
procedure TForm1.MyAdd;
begin
Form2.Show;
end;
procedure TForm1.DBGridEh1BuildIndicatorTitleMenu(Grid: TCustomDBGridEh;
var PopupMenu: TPopupMenu);
begin
PopupMenu:=FPopupMenu;
end;
procedure TForm1.DBGridEh1ColEnter(Sender: TObject);
begin
DBGridEhColEnterA(sncDBCurrencyEdit,TDBGridEh(Sender),FFieldList);
end;
procedure TForm1.DBGridEh1ColExit(Sender: TObject);
begin
DBGridEhColExitA(sncDBCurrencyEdit,TDBGridEh(Sender),FFieldList);
end;
procedure TForm1.sncDBCurrencyEditEnter(Sender: TObject);
begin
SetNormalColorA(sncDBCurrencyEdit,DBGridEh1);
end;
procedure TForm1.sncDBCurrencyEditExit(Sender: TObject);
begin
SetHighLightColorA(sncDBCurrencyEdit);
end;
procedure TForm1.DBGridEh1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
DBGridEhDrawColumnCellA(sncDBCurrencyEdit,TDBGridEh(sender),Rect,Column,
State,FFieldList);
end;
procedure TForm1.DBGridEh1EditButtonClick(Sender: TObject);
var
p:Pointer;
begin
if TDBGridEh(Sender).SelectedField.FieldName='供应商' then
begin
with ADOQuery2 do
begin
Close;
SQL.Clear;
SQL.Text:='select 名称,拼音,联系人,地址,电话 from 供应商 '+
' where 使用=true and (名称 like :mc or 拼音 like :py)';
Parameters[0].Value:='%'+tdbgrideh(Sender).InplaceEditor.EditText+'%';
Parameters[1].Value:='%'+tdbgrideh(Sender).InplaceEditor.EditText+'%';
Open;
end;
FieldList:=TStringList.Create;
try
FieldList.Add('名称');
p:=MethodAddress('MyAdd');
SelectMyA(TDBGridEh(Sender).InplaceEditor,ADOQuery2,FieldList,p,p);
if Assigned(uGlobal.g_FieldList) then
begin
ADOQuery1.Edit;
ADOQuery1.FieldByName('供应商').Value:=uGlobal.g_FieldList.Strings[0];
ADOQuery1.Post;
FreeAndNil(uGlobal.g_FieldList);
end;
finally
FreeAndNil(fieldlist);
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -