MaskEdit在输入时覆盖最后一个字符

时间:2014-04-10 14:49:31

标签: delphi delphi-xe5 masking

有一个简单的cxMaskEdit,有标准的掩码:'## ### ###; 1; ”。 此外,AutoSelect为False。

一切都很好,但是当我使用cxMaskEdit.SetFocus返回cxMaskEdit时,它会更改cxMaskEdit中的最后一个字符。

例如: 12 141 141在cxMaskEdit输入时变为12 141 140(通过鼠标。通过setFocus)。

对此行为有何帮助? l.e:此行为由

给出
procedure TForm1.cxMaskEdit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (cxMaskEdit1.CursorPos = 10) then
    if ((Key > 48) and (Key < 58)) or ((Key > 95) and (Key < 106)) then
    begin
      cxMaskEdit2.SetFocus;
      // cxMaskEdit2.SelStart := 0;
    end;
end;

1 个答案:

答案 0 :(得分:0)

使用选择开始和长度解决。

  if ((MaskEdit1.SelStart = 9) and (((47 < Key) and (Key < 58)) or (95 < Key)
    and (Key < 106))) then
  begin
    MaskEdit2.SetFocus;
    MaskEdit2.SelStart := 0;
    MaskEdit2.SelLength := 1;
  end;