简单TEdit控件问题,在线等,50分立结!

hehaiwu 2004-05-05 09:28:40
用一的TEdit做字符输入控件,每次回车完成输入,计算机会Beep一声,好象出错一样,
如果输入很多数据时,Beep不停!很烦了!
TEdit KeyDown,KeyUp不写任何代码也有这种情况,
请大虾指教,成功50分马上给!
...全文
42 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
pwzhu666 2004-05-06
  • 打赏
  • 举报
回复
可以的,是一个 api函数
,我帮你找找阿
angle097113 2004-05-06
  • 打赏
  • 举报
回复
if key = #13 then
begin
//key := #0;
Perform(WM_NEXTDLGCTL, 0, 0);
end;
我试了,把key=#0去掉与不去都不会叫,原来我也见过叫的
web700 2004-05-06
  • 打赏
  • 举报
回复
都说了我说什么..

结帐
guanjueweimiao 2004-05-06
  • 打赏
  • 举报
回复
楼上说的对!
key=#0 无任何操作。
xyxb 2004-05-06
  • 打赏
  • 举报
回复
key=0对应NUL(即空)
hehaiwu 2004-05-06
  • 打赏
  • 举报
回复
appache57(虾米) 的方法简单有效; key=13 是 RETURN,key=0是按的什么键呀
回答!马上给分了!!
BlueSoftEye 2004-05-05
  • 打赏
  • 举报
回复
procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
key := #0;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
TmpCtrl: TWinControl;
ETmp: TKeyPressEvent;
begin

if key = 13 then
begin
TmpCtrl := ActiveControl;
if TmpCtrl is TCustomMemo then exit;

if TmpCtrl is TEdit then
begin
if assigned(TEdit(TmpCtrl).onKeyPress) then
ETmp:= TEdit(TmpCtrl).OnKeyPress;
TEdit(TmpCtrl).OnKeyPress := EditKeyPress;
end;

repeat
TmpCtrl:= FindNextControl(TmpCtrl,true,true,false);
until (TmpCtrl is TCustomEdit) or
(TmpCtrl is TCustomComboBox) or
(TmpCtrl is TCustomListBox) or
(TmpCtrl is TCustomCheckBox) or
(TmpCtrl is TRadioButton);

if TmpCtrl is TEdit then
begin
if assigned(ETmp) then
TEdit(TmpCtrl).OnKeyPress := ETmp;
end;

TmpCtrl.SetFocus ;
end;

end;
zouzheng 2004-05-05
  • 打赏
  • 举报
回复
up
BlueSoftEye 2004-05-05
  • 打赏
  • 举报
回复
需要借助消息机制解决,具体忘了,帮你找找
荣爵 2004-05-05
  • 打赏
  • 举报
回复
???
onebody 2004-05-05
  • 打赏
  • 举报
回复
up
apache57 2004-05-05
  • 打赏
  • 举报
回复
up
apache57 2004-05-05
  • 打赏
  • 举报
回复
onkeypress事件中写:
if key = #13 then
begin
按ENTER(输入完成后应当做的事情;
key := #0;
end;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧