当Edit失去焦点后。。。(50分)

L

locka

Unregistered / Unconfirmed
GUEST, unregistred user!
我在Edit的OnKeyDown事件中
procedure TDimEdit.DimEditOnKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key= 13 then
sendmessage(getfocus, WM_KILLFOCUS, 0, 0);
end;
使edit失去焦点,但我这时按下一个健后(如A),edit中还是会获得输入,怎样实现edit失去焦点后
再按下键盘后不获得输入。
(我不希望通过其它控件.setfocus使edit失去焦点)
 
KeyPress

Key := #0

行不行。失去焦点后这句话有效
 
设窗体的Keypreview:=True;
定一个全局变量标志:var bkey : boolean;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Not bkey then begin
key := 0;exit;
end;
end;

 
除了截获输入的健外,有没有方法使edit真正失去焦点?

 
前提:必须多于1个vcl控件
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Perform(WM_NEXTDLGCTL,0,0);
end;
 
if Key=#13 then begin
PostMessage(Edit1.Handle,WM_KEYDOWN,9,0);
PostMessage(Edit1.Handle,WM_KEYUP,9,0)
end
 
多人接受答案了。
 
to locka;

age011说得对。form上至少有两个组件才行。
然后使其离开,可用selectnext()函数。
 
顶部