如何使按下Enter(回车)键后使焦点自动跳到窗体上的下一个控件上?其实也就是Enter模仿tab键的功能.我在Form的keyXXXX事件中写代码,但是不起作用.
解决方案 »
- 请问我这是不是中了源代码病毒?
- 如何让函数返回一个数据集(数据表)?
- ARPO 控件开发自动语音的问题
- 前辈们, 小弟求一个能够锁住屏幕的代码
- 新建窗体时有3个选项:copy,inherit,use不知道use是什么意思?
- 我将建立库和表以及触发器的SQL语名都存在了一个.SQL文本文件中,我如何在Delphi中一次执行它呀。
- SQLserver里要在登记新数据时自动生成其SysID,该如何在ADOQuery里写啊?
- 答谢原程序于z_x_b:-)
- 怎样合并文件呢?
- 如何用DELPHI程序制作自己的拨号网络服务器(控制MODEM)?
- 太阳输了!!!!收分!!!!
- 简单的SQL问题,我不懂ADO,懂的进来看看就知道了!解决就结,来者有分
procedure SetReturn(Sender: TObject; Key: Word);
begin
case Key of
Vk_Return:
begin
Sendkeys('{TAB}');
end;
Vk_UP:
begin
Sendkeys('~{TAB}');
end;
end;
end;
function SendKeys(S: String): TSendKeyError;
{ This is the one entry point. Based on the string passed in the S }
{ parameter, this function creates a list of keyup/keydown messages, }
{ sets a JournalPlayback hook, and replays the keystroke messages. }
begin
Result := sk_None; // assume success
try if Playing then raise ESKAlreadyPlaying.Create('');
MessageList := TMessageList.Create; // create list of messages
ProcessKey(S); // create messages from string
StartPlayback; // set hook and play back messages
except
{ if an exception occurs, return an error code, and clean up }
on E:ESendKeyError do begin
MessageList.Free;
if E is ESKSetHookError then
Result := sk_FailSetHook
else if E is ESKInvalidToken then
Result := sk_InvalidToken
else if E is ESKAlreadyPlaying then
Result := sk_AlreadyPlaying;
end
else
{ Catch-all exception handler }
Result := sk_UnknownError;
end;
end;
Shift: TShiftState);
begin
if key = vk_return then
perform(WM_NEXTDLGCTL, 0, 0);
end;
var Key: Char);
begin
if (key = #13) then
begin
Perform(WM_NEXTDLGCTL,0,0);
end;
end;
>>
呵呵,人有时是一时糊涂,问题其实很简单的,发了贴后我就想起来了,要设个kepreivew,所以就自己回了个贴
SELECTNEXT(ACTIVECONTROL,TRUE,TRUE)
www.eQmis.com
eqmis高手是什么样实现吧!!!!!!
begin
if Key = #13 then
SelectNext(Sender as TWinControl, True, True);
end;
在每个需要相应enter键的控件的ONKEYPRESS事件中都填写如上代码。
SELECTNEXT(ACTIVECONTROL,TRUE,TRUE)