近段时间学习使用AdvStringGrid,想在指定单元里用百分率显示!
可以用AdvStringGrid1GetFormat实现吗?请高手指教。。
还有,请问谁有关于
AdvStringGrid的帮忙文档,可以传我一份吗?谢谢。。
QQ:80415365
Email:[email protected]

解决方案 »

  1.   

    帮助文档你的安装包里应该有吧
    demo在tms的官网上有
    www.tmssoftware.com
      

  2.   

    我觉得GetFormat事件肯定不能实现。不过有另一种方法能实现,就是DrawCell事件,在这个事件中,你想怎么显示就怎么显示。例子如下:
    procedure TForm1.asg1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    var
      strCellText: string;
      dblValue: double;function IsNum(str: string): boolean;
    var
      i: integer;
    begin
      for i := 1 to length(str) do
        if not (str[i] in ['0'..'9', '.', '+', '-']) then
        begin
          result := false;
          exit;
        end;
      result := true;
    end;begin
      strCellText := asg1.Cells[ACol, ARow]; //获得Cell的内容
      if strCellText = '' then exit;
      if IsNum(strCellText) then //判断是否是数字
      begin
        dblValue := strtofloat(strCellText);
        dblValue := dblValue * 100; //由于是百分率,所以要乘上100
        strCellText := format('%.2f', [dblValue]) + '%'; //格式化
        asg1.Canvas.FillRect(Rect); //清空原显示
        asg1.Canvas.TextOut(Rect.Left, Rect.Top, strCellText); //把文字画出来
      end;
    end;
    事实上,有了这个事件,你可以显示任何你想显示的东西,甚至是图片,简直可以说是天马行空。