我的客户要求我做一个“效果”,每次释放键盘上的任何键时,都要在字段上将此字符更改为星号。

在Delphi中如何做到?

我在HTML + Javascript中使用this。可以在here中找到.js代码。

最佳答案

下面模拟了js代码的行为,同时还处理了退格键。

type
  TForm2 = class(TForm)
    Edit1: TEdit;
    procedure Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
  private
    FEditText: string;

procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = ^H then
    SetLength(FEditText, Length(FEditText) - 1)
  else
    FEditText := FEditText + Key;
end;

procedure TForm2.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  Edit1.Text := StringOfChar('*', Length(Edit1.Text));
  Edit1.SelStart := Length(Edit1.Text);
end;


FEditText等效于js代码中的df[0].Value,是键入的实际值。

请注意,由于js代码中没有任何选项,因此无法重置文本。

关于delphi - 如何在TEdit onkeyup事件上将字符更改为星号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40963083/

10-10 16:56