按下按钮相当于 按了 Ctrl+F3建 功能 是需要设置快捷键,比如使用DBGridEh控件,按Ctrl+F3 调出查询框。现在的希望是不按键盘,直接点下【查询】按钮即可调出查询框。 请给参考示例 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 啥是dbgrideh中的查询框那个ctrl+f3在哪设置的,就把那段代码加入button里调用嘛 查询下F3+CATRL在Delphi用上面代表。然后添加到button里面不久可以了 ? TDBGridEh表格的Ctrl + F功能應用日期:2007-12-17 类别:控件使用 作者: 推荐:本站 人气:4469 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用以指定對話框是否以模态打開。*********************网上搜来了,我用第一种方法实现过。 @babydog01,你说的这个方法我也搜到,但调试一直没有成功,点【查找】按钮没有任何反应 babydog01 的第二個方法我有試過...確定可以的! 把button的onclick事件设为ctrl+F3的响应事件? 自定义 功能键 即可查一下 ctrl+F3 值信息 uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) DBGridEh1: TDBGridEh; btnQuery: TButton; procedure btnQueryClick(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.btnQueryClick(Sender: TObject);beginend;end. procedure TForm1.btnQueryClick(Sender: TObject);begin //鼠标点这个“查询”按钮相当于我同时按下 Ctrl+F3键 功能end; PostMessage(handle,WM_KEYDOWN,VK_CONTROL,0); PostMessage(handle,WM_KEYDOWN,VK_F3,0); PostMessage(handle,WM_KEYUP,VK_F3,0); 5、设定btnQuery的Action属性指向Action1 上面看错要求了,看了中间的内容。 //以下四行语句组合形成快捷键 keybd_event(VK_Control,0,0,0); //按下Ctrl键 keybd_event(VK_F3,0,0,0); //按下F3键 keybd_event(VK_Control,0,KEYEVENTF_KEYUP,0); //松开Ctrl键 keybd_event(VK_F3,0,KEYEVENTF_KEYUP,0); //松开F3键 delphi2007组件相关问题 一个关于Delphi和数据库的问题! 如何实现类似Foxmail的收信窗口效果 visitor模式之delphi实现 怎样从接收的数组中取出字符?? 菜鸟问题, 请大虾帮忙: 如何屏蔽DB控件输入错误时的错误系统信息? 高深问题,不惜工本,高分!!! datatoexcel--ycc 呵呵,我会pascal学delphi有多难啊? setup.rul----->setup.exe? idtcpserver主动断开与idtcpclient的连接,客户端怎么又连上去? 多线程里用TBlobField上传图片报内存错误。
那个ctrl+f3在哪设置的,就把那段代码加入button里调用嘛
日期:2007-12-17 类别:控件使用 作者: 推荐:本站 人气:4469
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用以指定對話框是否以模态打開。
*********************
网上搜来了,我用第一种方法实现过。
查一下 ctrl+F3 值信息
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TForm1 = class(TForm)
DBGridEh1: TDBGridEh;
btnQuery: TButton;
procedure btnQueryClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.btnQueryClick(Sender: TObject);
beginend;end.
begin
//鼠标点这个“查询”按钮相当于我同时按下 Ctrl+F3键 功能
end;
PostMessage(handle,WM_KEYDOWN,VK_CONTROL,0);
PostMessage(handle,WM_KEYDOWN,VK_F3,0);
PostMessage(handle,WM_KEYUP,VK_F3,0);
5、设定btnQuery的Action属性指向Action1
//以下四行语句组合形成快捷键
keybd_event(VK_Control,0,0,0); //按下Ctrl键
keybd_event(VK_F3,0,0,0); //按下F3键
keybd_event(VK_Control,0,KEYEVENTF_KEYUP,0); //松开Ctrl键
keybd_event(VK_F3,0,KEYEVENTF_KEYUP,0); //松开F3键