一般限制某些字符输入,可以在 OnKeyDown , OnKeyUp 里做判断,如下:
// Android 平台不用下列方法 procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); begin if not (KeyChar in [‘0‘..‘9‘]) then KeyChar := #0; end;
但以上方法实际测试后,在 Win , iOS 平台可能正常,但在 Android 平台确不行,因此必需改用下列方法来做:
var NowEdit: Boolean; procedure TForm1.Edit1ChangeTracking(Sender: TObject); begin if NowEdit then Exit; if not (Edit1.Text.Chars[Edit1.Text.Length - 1] in [‘0‘..‘9‘]) then begin NowEdit := True; Edit1.Text := Edit1.Text.Substring(0, Edit1.Text.Length - 1); NowEdit := False; end; end;
时间: 2024-10-08 19:31:35