如何从外部访问例程的局部变量。像这个例如
procedure TForm1.CalculateTax(var Amount: Double);
var
Tax : Double;
begin
Tax := Amount*2.5/100;
end;
如何从外部访问例程的局部变量。像这个例如
procedure TForm1.CalculateTax(var Amount: Double);
var
Tax : Double;
begin
Tax := Amount*2.5/100;
end;
您不能从声明它的过程之外访问局部变量。
最好的解决方案是将您的更改procedure
为 a function
,并让它返回值。
更改您的TForm1
声明
type
TForm1 = class(TForm)
...
procedure CalculateTax(var Amount: Double);
至
type
TForm1 = class(TForm)
...
function CalculateTax(const Amount: Double): Double;
将实现从
procedure TForm1.CalculateTax(var Amount: Double);
var
Tax : Double;
begin
Tax := Amount*2.5/100;
end;
至
function TForm1.CalculateTax(const Amount: Double): Double;
begin
Result := Amount*2.5/100;
end;
像这样称呼它:
Tax := CalculateTax(YourAmount);
我的 0.02 美元:
1)我会把它变成一个“功能”而不是一个“程序”(因为它的目的是“返回一个值” - 税额)
2)我不会在例程中硬编码“金额”或“税率”
3)我不会“超载”(赋予多种含义)变量“数量”
// Better
function TForm1.CalculateTax(purchaseAmount, taxRate: Currency) : Currency;
begin
Result := purchaseAmount * (taxRate / 100.0);
end;