初学Delphi,改别人代码,请大家帮忙看看
过程
procedure MatchCustomerCode(vCustomer: string);
var
j: Integer;
lsValue: TStringList;
Name,Value: String;
begin
lsValue := TStringList.Create;
if FCustomerCode <> '' then begin
lsValue.Text := StringReplace(FCustomerCode, ';', #13, [rfReplaceAll]);
for j:= 0 to lsValue.Count -1 do begin
GetNameAndValue(lsValue[j],Name,Value);
if vCustomer = Name then begin
vCustomer := Value;
end;
end;
end;
end;
然后在下面的一个循环里调用到 if lsValue.Values['Customer'] <> '' then begin
aCustomer := lsValue.Values['Customer'];
MatchCustomerCode(aCustomer);
end;
运行却没有效果,不知为何。用F8查看,aCustomer变量没有转换到。
过程
procedure MatchCustomerCode(vCustomer: string);
var
j: Integer;
lsValue: TStringList;
Name,Value: String;
begin
lsValue := TStringList.Create;
if FCustomerCode <> '' then begin
lsValue.Text := StringReplace(FCustomerCode, ';', #13, [rfReplaceAll]);
for j:= 0 to lsValue.Count -1 do begin
GetNameAndValue(lsValue[j],Name,Value);
if vCustomer = Name then begin
vCustomer := Value;
end;
end;
end;
end;
然后在下面的一个循环里调用到 if lsValue.Values['Customer'] <> '' then begin
aCustomer := lsValue.Values['Customer'];
MatchCustomerCode(aCustomer);
end;
运行却没有效果,不知为何。用F8查看,aCustomer变量没有转换到。
PS:这不叫循环
function MatchCustomerCode():string;
var
j: Integer;
lsValue: TStringList;
Name,Value: String;
begin
lsValue := TStringList.Create;
if FCustomerCode <> '' then begin
lsValue.Text := StringReplace(FCustomerCode, ';', #13, [rfReplaceAll]);
for j:= 0 to lsValue.Count -1 do begin
GetNameAndValue(lsValue[j],Name,Value);
if vCustomer = Name then begin
result:= Value;
end;
end;
end;
end;
... if lsValue.Values['Customer'] <> '' then begin
aCustomer := lsValue.Values['Customer'];
aCustomer := MatchCustomerCode();
end;
而且我印象中,过程不能直接赋值给变量吧?
----------------------->
procedure MatchCustomerCode(var vCustomer: string);
aCustomer := lsValue.Values['Customer'];执行后,aCustomer就有值了,
可见这个条件没问题吧
或者如4楼使用传址做参数