3

さて、私は数字だけを取る編集をしています (文字も記号も数字だけもありません)。問題は、たとえば (0239847) のように、ユーザーに最初の数字として 0 を入力してほしくないことです。

変数「x」を作成することを考えていました->編集の長さをカウントし、0の場合は最初の数字を削除するバイト:

var l:length; number:string100;
begin
l:length(edit1.text);

ここで、最初の桁が 0 (0239847) の場合は削除しますが、他の数字がない場合 (0 のみ) はそのままにしておきます。

Omg、私は最終的にこれを行う最も簡単な方法を見つけました:

procedure TForm1.Edit1Change(Sender: TObject);
var digit1:string;
begin
digit1:=edit1.Text;
if (digit1='00') or (digit1='01') or (digit1='02') or (digit1='03') or (digit1='04') or
(digit1='05') or (digit1='06') or (digit1='07') or (digit1='08') or (digit1='09') then
edit1.Text:=clear;    //or edit1.text:=0;  it's the same

end;

end.

はまだ番号をコピーして貼り付けることができますが、気にしません

答えは簡単で明白だったので、それはかなりばかげた質問でした.

4

2 に答える 2

1

TmaskEdit を使用できます。これにより、ユーザーは数値を入力する必要があります。0 の場合は最初の桁を削除するための eventchange を追加した後。

Example.dfm

.
.
object MaskEdit1: TMaskEdit
  Left = 352
   Top = 8
   Width = 120
   Height = 21
   EditMask = '0999999;0;_'
   MaxLength = 7
   TabOrder = 3
   OnChange = MaskEdit1Change
end
.
.

例.pas

.
.
Procedure TForm1.MaskEdit1Change(Sender: TObject);
Begin
  If Length(TMaskEdit(Sender).Text) > 1 Then
    TMaskEdit(Sender).Text := IntToStr(StrToInt(TMaskEdit(Sender).Text));
End;
.
.
于 2013-04-25T10:39:41.540 に答える