有三个EDIT,分别是 利润,价格,利润率(成本已知) 要求输入利润,把价格和利润率算出来。输入价格把利润和利润率算出来,输入利润率把价格和利润算出来。(这算法很简单)。但是却遇到了以下麻烦:1、因为要求自动算出,所以把计算过程分别在每个EDIT的CHANGE事件中写的。所以,当把一个计算完成后,另一个EIDT值发生变化,另一个EDIT的CHANGE事件被执行,反过来影响本身值,造成DELPHI执行错误。这应该怎么解决?2、由于系统允许负利润,而DELPHI本身不带四舍五入,那么算处的结果应该怎么处理负利润呢?
EDIT退出时再设置另外两个EDIT的CHANGE事件2、四舍五入可以采用round函数
2。Trunc(x+0.5)
用 Round 会达到四舍五入的效果
不用消息啊,你的程序修改 Text 时,做个标记就行啦
怎么样做标记呢?能举个例子吗?Trunc(x+0.5)使用它时是否需要判断X是否正负啊?而且怎么样确定这个函数的小数保留位数?
2.这个函数响应onChange事件.但只响应一次.直到清空文本框中的数字为止,才可再执行.
>> EDIT退出时再设置另外两个EDIT的CHANGE事件
yfjyz(dd) 的意見不錯啊
TForm1=class(TForm)
...
privated
ABool:Boolean;
end;procedure TForm1.Edit1Change(....);
begin
if ABool then Exit;
ABool:=True;
Edit2.Text:=....;
ABool:=False;
end;
procedure TForm1.Edit2Change(....);
begin
if ABool then Exit;
ABool:=True;
Edit1.Text:=....;
ABool:=False;
end;四舍五入有现成的函数 RoundTo
edit1.onchange=nil 对吗?怎么在一个事件中执行另一个事件?edit1.onchange 行吗?
在每一個Edit的onKeyPress裡把她更改;
在每一個Edit的onChange裡判斷就可以了。四舍五入?
Format('%0.2f', [FloatValue]');