• stringgrid删除选中行

    • 定义一个从TStringGrid类继承的新类如下:
      type
      TMyGrid = class(TStringgrid);

      之后,删除时:你可以这样写:
      TMyGrid(Grid).DeleteRow(Grid.Row); //Grid为你的StringGrid控件

      说明:DeleteRow方法是TCustomGrid类申明的protected方法,可以删除表格中的一行;
      而TStringGrid没有将这一方法公开出来(意味着其他类将无法访问),所以你只需要定义一个从TStringGrid类继承的新类就可以了。

    • StringGrid排序/隔行变色

    • //排序函数//////////////////////////////////////////////
      procedure Quicksort(Grid:TStringGrid; var List:array of integer;

      min, max,sortcol,datatype: Integer);

      {List is a list of rownumbers in the grid being sorted}
      var
      med_value : integer;
      hi, lo, i : Integer;

      function compare(val1,val2:string):integer;
      var

      int1,int2:integer;
      float1,float2:extended;
      errcode:integer;

      begin

      case datatype of
        0: result:=ANSIComparetext(val1,val2);
        1: begin
             int1:=strtointdef(val1,0);
             int2:=strtointdef(val2,0);
             if int1>int2 then result:=1
             else if int1<int2 then result:=-1
             else result:=0;
           end;
      
        2: begin
             val(val1,float1,errcode);
             if errcode<>0 then float1:=0;
             val(val2,float2,errcode);
             if errcode<>0 then float2:=0;
             if float1>float2 then result:=1
             else if float1<float2 then result:=-1
             else result:=0;
           end;
         else result:=0;
      end;

      end;

      阅读剩余部分...

Powered by Typecho)))   ICP:蜀ICP备05009250号