请问下面的函数应该怎样调用,小弟刚学不不久,请高手帮忙~~,谢谢
function LimitStringCast(const Value:String;
                         var LimitNum:integer;
                         const StartPos:integer=1):string;
var
   iPos:Integer;
   iLen:Integer;
   iLimitNum:Integer;
   tmpStr:String;
begin
   iPos:=StartPos;
   iLen:=Length(Value);
   if iPos>iLen then
   begin
      Result:= '';
      exit;
   end;
   if LimitNum>iLen-iPos+1 then LimitNum:=iLen-iPos+1;
   iLimitNum:=LimitNum+1;
   if iLimitNum>iLen-iPos+1 then iLimitNum:=LimitNum;
   //取得最大长度子串
   Result:=Copy(Value,iPos,LimitNum);
   if iLimitNum<>LimitNum then
   Begin
      tmpStr:=Copy(Value,iPos,iLimitNum);
      //取得最大长度+1,用意在于判断是否最后取的是汉字的前一半
      //下面是使用转换成Unicode后的字串长度来做判断的
      if Length(WideString(tmpStr))=Length(WideString(Result)) then
      begin
         //可能存在半个汉字
         //最后一个是汉字的高字节,
         //因为不能超最大长度,
         //所以在这里宁可少取一个字符
         if LimitNum>1 then Result:=Copy(Value,iPos,LimitNum-1);
      end;
   end;
end;

解决方案 »

  1.   

    var 
      LimitNum:integer;ShowMessage(LimitStringCast('abc, LimitNum))
      

  2.   

    不是吧,你只要有字符和整型的参数的值就可以调用啊
    showmessage(limitStringCase('asdsdfsdf'),3)
      

  3.   

    function LimitStringCast(const Value:String;
                             var LimitNum:integer;
                             const StartPos:integer=1):string;
    第一个参数是一个传值参数,只要把传进一个字符串就ok,第二个参数是传址参数,必须在本地声明一个integer类型的变量传进去,第三个参数是可选择的参数,你可以传,也可以不传,如果不传,参数值
    在该函数中会默认为1
      

  4.   

    TO:
     Delphityro(不吃腥的猫) 
    不好意思 ,我在算分的时候没看到,所以没给你加分,请谅解,下次一定给我多一点......