原地址:http://blog.csdn.net/xieyunc/article/details/4142875
如何实现应用程序中的”回车”成TAB?
其实方法有很多种,但哪一种才是最简洁、最灵活的呢?下面的方法就是博主最常使用的方法:
一、在你的数据模块中,添加如下代码:
- interface
- 。。。。。。
- type
- TMessageHandler = class //使得回车消息转换成Tab消息
- class procedure AppMessage(var Msg:TMsg;var Handled:Boolean);
- end;
- implementation
- class procedure TMessageHandler.AppMessage(var Msg: TMsg; var Handled: Boolean);
- begin
- if Msg.message=WM_KEYDOWN then
- if (Msg.wParam=VK_RETURN ) and
- (
- (Screen.ActiveForm.ActiveControl is TEdit) or
- (Screen.ActiveForm.ActiveControl is TComboBox) or
- (Screen.ActiveForm.ActiveControl is TCheckBox) or
- (Screen.ActiveForm.ActiveControl is TRadioButton)
- //可以添加需要的控件
- )
- then
- begin
- Msg.wParam:=VK_TAB;
- end
- else if (Msg.wParam=VK_RETURN) and
- (
- (Screen.ActiveForm.ActiveControl is TDBGrid)
- )
- then
- begin
- with Screen.ActiveForm.ActiveControl do
- begin
- if Selectedindex<(FieldCount-1) then
- Selectedindex:=Selectedindex+1{ 移动到下一字段}
- else
- Selectedindex:=0;
- end;
- end;
- end;
二、为了使得整个应用程序都能够实现主要的功能,在主窗体的OnCreate事件中添加如下代码:
- procedure TfmMain.FormCreate(Sender: TObject);
- begin
- Application.OnMessage:=TMessageHandler.AppMessage;
- end;
到此为止,你的应用程序已经实现了这个Enter->Tab的转换.