您的位置:首页 > 编程语言 > Delphi

delphi GridEh 去掉光标

2019-05-18 15:12 1696 查看

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

无法取得光标焦点

 

 

[code]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用以指定对话框是否以模态打开。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: