procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if Not(Key in [#8,#13,'0'..'9','a'..'f']) then Key :=#0 //输入值的验证 else if (Key = #13) Or((Key<>#8) and (Length(Edit1.Text) = 3)) then PostMessage(Handle,WM_KEYDOWN, VK_TAB, 0);end; 超过四个字符跳出
Perform(WM_NEXTDLGCTL, 1, 0); 设定edit的taborder
procedure TNFM0000.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key<>VK_RETURN then Exit; if ActiveControl=nil then Exit; if (ActiveControl.ClassName='TMemo') or (ActiveControl.ClassName='TwwDBRichEdit') or (ActiveControl.ClassName='TDBMemo') then exit; PostMessage(TWinControl(ActiveControl).Handle,WM_KeyDown,VK_Tab,0); end;
焦点失去,转到下一个!
begin
if Not(Key in [#8,#13,'0'..'9','a'..'f']) then
Key :=#0 //输入值的验证
else
if (Key = #13) Or((Key<>#8) and (Length(Edit1.Text) = 3)) then
PostMessage(Handle,WM_KEYDOWN, VK_TAB, 0);end;
超过四个字符跳出
设定edit的taborder
Shift: TShiftState);
begin
if Key<>VK_RETURN then Exit;
if ActiveControl=nil then Exit;
if (ActiveControl.ClassName='TMemo') or (ActiveControl.ClassName='TwwDBRichEdit')
or (ActiveControl.ClassName='TDBMemo') then exit;
PostMessage(TWinControl(ActiveControl).Handle,WM_KeyDown,VK_Tab,0);
end;