delphi 当在编辑掩码的末尾键入时,它会将数字传递到左侧,直到到达最后一个数字

vuv7lop3  于 2022-12-12  发布在  其他
关注(0)|答案(1)|浏览(102)

下午好,
我在 Delphi 中做一个使用editmask的项目,我使用的是电话掩码,当点击edit来写电话号码时,它会转到右边的最后一个字段,所以有必要用backspace回到左边编辑的开始。
我想找到一种方法,当用户在右边的最后一个字段中键入数字时,它会被传递到左边。如此下去,直到你完成电话字段。这可能吗?
下面举例说明它的外观:

我想不出办法

kknvjkwl

kknvjkwl1#

该组件称为TMaskEdit
就像任何基于TEdit的操作一样,将焦点放在控件上会默认地将文本光标放在其内容的末尾

  • 通过键盘,.AutoSelect是否应为FALSE
  • 如果在任何文本后面单击,则通过鼠标(默认情况下,文本左对齐)。

您应该已经在使用其他组件时体验过这种情况。如果您希望在聚焦控件时文本光标始终位于某个位置,请在这样的事件处理程序中执行此操作:

procedure TForm1.MaskEdit1Enter(Sender: TObject);
begin
   (Sender as TMaskEdit).SelStart:= 1;  // Second position
end;
  • 而对于鼠标使用具有相同代码的OnClick

它甚至不受.AutoSelect属性设置的限制。
使用退格键是最糟糕的输入方式,因为它总是删除潜在的内容,并且需要按几次才能回到第一个位置。为什么不使用Home键呢?

相关问题