但是你干嘛不在edit中限制用户只能输入数字呢,如下:
procedure TmForm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if ord(Key)=8 then begin //判断back space
exit;
end;
if ((ord(Key)>=48) and (ord(Key)<=57) or (ord(Key)=8) or (ord(Key)=36) or (ord(Key)=35) or (ord(Key)=38) or (ord(Key)=40) or (ord(Key)=37) or (ord(Key)=39)) then
exit
else Key:=chr(0); //如果不是以上范围的则不输出
end;
unit unit1;
uses unit2;
var OuShu:Array[1..5]of integer;
var Edit1Array:Array[1..5]of TEdit;
var Edit2Array:Array[1..5]of TEdit;
procedure Button1Click
var i:integer;
var j:integer;
var k:integer;
var Temp:integer;
begin
Edit1Array[1]:=Edit1;Edit1Array[2]:=Edit2;Edit1Array[3]:=Edit3;
Edit1Array[4]:=Edit4;Edit1Array[5]:=Edit5;
Edit2Array[1]:=Form2.Edit1;Edit2Array[2]:=Form2.Edit2;
Edit2Array[3]:=Form2.Edit3;Edit2Array[4]:=Form2.Edit4;
Edit2Array[5]:=Form2.Edit5;
j:=1;
k:=1;
For i:=1 to 5 do
begin
try
Temp:=StrToInt(Edit1Array[i]);
if (Temp mod 2<>0) then
begin
Edit2Array[j].Text:=Edit1Array[i];
j:=j+1;
else
begin
OuShu[k]:=Temp;
k:=k+1;
end;
except
ShowMessage('Error');
exit;
end;
end;
for i:=1 to k-1 do
begin
EditArray[j].Text:=IntToStr(OuShu[i]);
j:=j+1;
end;
end;