初学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变量没有转换到。

解决方案 »

  1.   

    检查一下lsValue.Values['Customer'] <> '' 是否为True,如果=''则不执行
    PS:这不叫循环
      

  2.   


    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;
      

  3.   

    2楼的不行,aCustomer := MatchCustomerCode();提示不够参数。
    而且我印象中,过程不能直接赋值给变量吧?
      

  4.   

    procedure MatchCustomerCode(vCustomer: string);
    ----------------------->
    procedure MatchCustomerCode(var vCustomer: string);
      

  5.   

    我用F8检查,if后面的这个条件lsValue值看不到呢,不过后面一句
    aCustomer := lsValue.Values['Customer'];执行后,aCustomer就有值了,
    可见这个条件没问题吧
      

  6.   

    没见我把过程改成function了吗
    或者如4楼使用传址做参数