不知道这样是否就是楼主要的效果(如果不是,就请楼主参考代码试试看)
procedure TKBBD1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Business.System.StringUtils.Length(TEdit(Sender).text) >= 3 then
begin
if key <> #8 then
key := #0;
end;
end;
procedure TKBBD1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if Business.System.StringUtils.Length(TEdit(Sender).text) >= 3 then
begin
if TEdit(Sender).SelStart <=3 then
if key = Borland.Delphi.Windows.vk_Left then
key := Borland.Delphi.Windows.vk_right;
end;
end;