在TStringGrid中,有Row,Col属性,在AdvStringGrid中有没有相应属性,如果使用

解决方案 »

  1.   

    有。
    名称一样 。
     editgrid.Row := 10;
      editgrid.Col := 10;
      

  2.   

    谢谢关注。
     但好象不会不么简单。以下代码是无法编译的:
     unit Uasg3;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, Grids, AdvGrid, Mask, BaseGrid;type
      TForm1 = class(TForm)
        AdvStringGrid1: TAdvStringGrid;
        Label1: TLabel;
        Label2: TLabel;
        Button1: TButton;
        procedure AdvStringGrid1GetEditMask(Sender: TObject; ACol,
          ARow: Integer; var Value: String);
        procedure AdvStringGrid1AutoInsertRow(Sender: TObject; ARow: Integer);
        procedure Button1Click(Sender: TObject);
        procedure AdvStringGrid1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.AdvStringGrid1GetEditMask(Sender: TObject; ACol,
      ARow: Integer; var Value: String);
    begin
      case ACol of
      0:Value := '!000;1;_';
      1:Value := '';
      2:Value := '!000;1;_';
      3:Value := '!99/99/00;1;_';
      4:Value := '!90:00;1;_';
      end ;
    end;procedure TForm1.AdvStringGrid1AutoInsertRow(Sender: TObject;
      ARow: Integer);
    var
      i: Integer;
    begin
      with AdvStringGrid1 do
      begin
        if (Cells[0,ARow - 1] <> '') and (ARow > 1) then
          i := Ints[0,ARow - 1]
        else
          i := 0;    Cells[0,ARow] := Inttostr(i + 1);
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);begin
      AdvStringGrid1.Row :=AdvStringGrid1.Row+1;
      AdvStringGrid1.RowCount :=AdvStringGrid1.RowCount+1;
    end;procedure TForm1.AdvStringGrid1Click(Sender: TObject);
    begin
     AdvStringGrid1AutoInsertRow(AdvStringGrid1,AdvStringGrid1.Row);
     Row := Row+1;end;end.
     出错信息:
    UASG3.PAS(82) Error: Undeclared identifier: 'Row'
     我看了TAdvStringGrid的源码,好象没有Row,Col这两个属性,这让我无法进行取当前行的代码。
    其添加行的操作好象是通过触发OnAutoInsertRow等事件来完成。有没有什么办法手工编代码在当前行处一次性添加/删除多行?
    烦请指教。
      

  3.   

    改成下面的形式。 
    procedure   TForm1.AdvStringGrid1Click(Sender:   TObject);
    begin
      AdvStringGrid1AutoInsertRow(AdvStringGrid1,AdvStringGrid1.Row);
      AdvStringGrid1.Row   :=   AdvStringGrid1.Row+1;end;