如图,当我点击表格第10列时,想取得第二列对应的拼音,可以取得拼音,但每次都递增,语法在哪出错了,望指教呀
procedure TF_jhthd.StringGrid1Click(Sender: TObject);
var 
  hz:string;
i:integer;
begin
  inherited;
   pyjm:='';
        for xh:=1 to StringGrid1.RowCount do
      For i:=1 to length(Trim(StringGrid1.Cells[2,xh])) div 2 do     begin
    hz:=copy(Trim(StringGrid1.Cells[2,xh]),i*2-1,5);
    pyjm:=pyjm+F_zct.getpy(hz);

      StringGrid1.Cells[10,xh]:=pyjm;
      end;
     end;红色为取第二列拼音代码,能取到

解决方案 »

  1.   

    procedure TF_jhthd.StringGrid1Click(Sender: TObject);
    var 
      hz:string;
    i:integer;
    begin
      inherited;        for xh:=1 to StringGrid1.RowCount do
          For i:=1 to length(Trim(StringGrid1.Cells[2,xh])) div 2 do     begin
        hz:=copy(Trim(StringGrid1.Cells[2,xh]),i*2-1,5);
        pyjm:=F_zct.getpy(hz);
          StringGrid1.Cells[10,xh]:=pyjm;
          end;
         end;
      

  2.   

    你这一段代码是要为某一行的第10列赋值还是为所有行的第10列赋值啊?
    如果是为某一行的第10列赋值,则
    “StringGrid1.Cells[10,xh]:=pyjm;”错误,把它放在到数第二个“end;”后。
      

  3.   

    不对,上面我说的不对,不好意思,请参考以下代码:procedure TF_jhthd.StringGrid1Click(Sender: TObject); 
    var  
      hz:string; 
    i:integer; 
    begin 
      inherited;   
      for xh:=1 to StringGrid1.RowCount do
      begin
        pyjm:= ' '; 
        For i:=1 to length(Trim(StringGrid1.Cells[2,xh])) div 2 do 
        begin 
          hz:=copy(Trim(StringGrid1.Cells[2,xh]),i*2-1,5); 
          pyjm:=pyjm+F_zct.getpy(hz);  
        end; 
        StringGrid1.Cells[10,xh]:=pyjm;
      end;
    end; 
      

  4.   

    虽然结贴了,问个问题哦,
    copy(Trim(StringGrid1.Cells[2,xh]),i*2-1,5)?---------------》
    为什么是取5,不是2?