delphi GridEh 去掉光标

本文围绕TDBGridEh组件展开,提到去掉grdAllot.Options中的dgEditing会无法取得光标焦点。介绍了该组件OptionsEh选项中的dghDialogFind属性,用户按Ctrl + F可调出查找对话框。还给出用代码实现Ctrl + F调用的两种方法,包括模拟按键事件和引用标准方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  //去掉手输  -号 表示去掉   +号表示增加
    grdAllot.Options:=grdAllot.Options-[dgEditing];

无法取得光标焦点

 

 

procedure Tmain.grdAllotDrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
begin
     if InExt(Column.FieldName,[OrderName,StockName]) then    //判断 当前选择的字段名,对应的另外两个,设置颜色
     begin
      grdAllot.Canvas.Brush.Color :=clyellow;
      grdAllot.DefaultDrawColumnCell(Rect,DataCol,Column,State);
     end;
end;

//在Grideh中 输入后,键盘 弹起,触发,这个可以里面可以函数方法 ,比如,统计 所有的尺码的合计

procedure Tmain.grdAllotKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  ShowMessage('触发到这了')
//grdAllot.DataSource.DataSet.FindField('GoodsID').FocusControl;
end;

TDBGridEh组件的OptionsEh选项中有一项:dghDialogFind,默认值为True


    TDBGridEh组件的OptionsEh选项中有一项:dghDialogFind,默认值为True。此属性使表格在运行状态下,用户只需按下Ctrl + F热键,即可调出一个现成的查找对话框来,而无须程序员写其他任何查找相关的代码了。
  EhLib提供的这个功能实在巧妙,它可省了程序员的不少功夫,而且用来在表格中对数据定位,其功能也相当完善。
  有些时候,开发者还可能需要用代码来实现Ctrl + F热键的调用。大致可有二种可行的方法:
  1、笨方法--模拟Ctrl + F按键事件,使用Windows API函数Keybd_Event()如下所示:
  Keybd_Event(VK_CONTROL,Byte(0),0,0);
  Keybd_Event(Byte(70),Byte(0),0,0);
  Keybd_Event(Byte(70),Byte(0),KeyEventF_KEYUP,0);
  Keybd_Event(VK_CONTROL,Byte(0),KeyEventF_KEYUP,0);
  2、引用EhLib包的DBGridEhFindDlgs单元提供的标准方法ExecuteDBGridEhFindDialog():
  调用示例:ExecuteDBGridEhFindDialog(TDBGridEh组件名,'','',nil,True); 
  该方法声明如下:
  procedure ExecuteDBGridEhFindDialog(Grid: TCustomDbGridEh; Text, FieldName: String; ColumnFields: TColumnFieldsArrEh; Modal: Boolean); 
  参数Grid用以指定一个特定的TDBGridEh组件;Text用以指定一个特定查找文本(可为空串'');FieldName用以指定一个特定的查找字段名(可为空串'');ColumnFields用以指定一个查找字段列表的动态数组(可置为nil,表示默认为全部Columns);Modal用以指定对话框是否以模态打开。

1.4 *ColEditor增加了对GRIDEH是否可以排序进行控制,但前题是单元要引用EhLibAdO *增加WaitForm,在费时的操作过程中使用,效果不错! *增加最优化网格宽度功能,让网格栏位的宽度根据其自身的数据最优化 智能筛选BUG *待选字段值为空时,会重复增加进去 *浮点型字段值比较有问题 *Boolean字段型比较有问题,只认是与否 1.3 加入万能查询,以前是从胜天进销存中提取出来的,但我的速度快很多倍,因为我用了DisableControls,嘿嘿! *后来发现,智能过滤应该是对任何数据库都同样功能强大,因为它不是用FILTER属性,而是用ONFILTERRECODE事件来进行过滤的 *对智通过滤做了一些改进,改掉一些BUG 1.2 增加了智能过滤功能,对任意一DATASET都可以!此功能参考QLFilter,在此表示感谢! 以后会陆续增加一些MIS开发的常用功能组件或函数,请大家多多关注 对了,几个按钮的ICON我暂时没有,没放上去丑了点,请大家自已加上去了! 1.1 ColEditor 更易于使用了,BUG基本排除! 1.0 本程序演示了如何使用编辑器在运行期设置表格的一些常用参数 需要使用到Ehlib控件,最好使用3.6版本,旧版本也适用! 使用前请双击本目录下的DB.UDL连接数据库,连接完成后即可选择数据表进行演示! 在表格上按右键,即可出现功能菜单,点击进入! 程序应该适用于各版本的DELPHI,但由于条件有限未做测试! 希望大家多多交流,能得到大家的各种有用的源代码! 本程序的全部代码您都可以任意使用,但源代码的最前面几行的注释不可以改变,否则您将无权使用! 如有修改成更好用的版本,烦请给我一份,以便学习提高!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值