很简单问题:如何清空stringgrid内容?不用DESTORY或FREE

解决方案 »

  1.   

    for  I:=1  to  stringgrid1.rowcount  do
          stringgrid1.rows[I].clear;
      

  2.   

    清空和销毁是两个概念吧?RowCount=0 ColCount = 0或者
    作个双重循环来设置Cells【x,y】=‘’。
      

  3.   

    for i:=0 to stringgrid1.rowcount-1 do
      for j:=0 to stringgrid1.colcount-1 do 
        stringgrid1.cells[j,i]:='';
      

  4.   

    var
    row,col:integer;
    begin
      row:=0;
      col:=0; 
      while row<=stringgrid.rowcount do
      begin
        if col<=query.fields.count then
        begin 
          stringgrid.cells[col,row]:='';
          inc(col);
        end; 
        inc(row);
      end;
    end;
    试试
      

  5.   

    for j:=1 to 250 do          begin
                    getmem(pbuffer,512);
                    TPF_GetSummary(hselect,pBuffer,j,tmpstr,512)  ;
                    form1.StringGrid1.Rows[j].Clear ;
                    form1.StringGrid1.Rows[j].Append('') ;
                    form1.StringGrid1.Rows[j].Add (INTtostr(j));
                    form1.StringGrid1.Rows[j].Add ('BBB'+inttostr(j));
                    form1.StringGrid1.Rows[j].Add (StrPas(pBuffer));
                    //freemem(pbuffer);
                    //itmx.SubItems.Add();
              end;
    如果这样的话清空后直接赋值,可以少一个循环,但是每个循环的次数不一样,这样会造成多出上次循环记录的现象。如果在循环赋值之前先来个大循环清空,我总觉得很浪费啊