DELPHI 多个edit计算

来源:百度知道 编辑:UC知道 时间:2024/06/16 00:35:20
现有6个edit分别为1-6
首先赋值给edit1.text一个值 比如100
要求 无论edit2-6怎样改变 edit1动态显示 (100 - edit1-6的值) 而且要求 edit1不能小于0
我没说清楚 还有要求
edit2-6 的和不能大于 edit1的值
而且 edit2-6不能小于0

还有个问题就是当edit的值为空就会报错 但是加入检测后 比如检测为空 就赋值'0' 这样 删成空时老是显示0 再输入就变成 012这样了

procedure EditKeyPress(Sender: TObject; var Key: Char);
procedure EditChange(Sender: TObject);
procedure EditKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);

//初始化Edit
procedure TForm1.FormCreate(Sender: TObject);
var
i :integer;
begin
for i := 0 to ComponentCount - 1 do
if Components[i] is TEdit then
begin
(Components[i] as TEdit).Text := '0';
(Components[i] as TEdit).OnKeyPress := EditKeyPress;
(Components[i] as TEdit).OnChange := EditChange;
(Components[i] as TEdit).OnKeyUp := EditKeyUp;
end;
end;

//检测按下的键是不是0到9和退格键
procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9',#8]) then
Key := #0;
end;

//这里是计算部分
procedure TForm1.EditChange(Sender: TObject);
var
i,n :integer;
begin
n := 0;
if (Sender as TEdit).Name <>