stringgrid有两列id,name,第一行标题为固定行
想要实现向stringgrid后面加入记录,并把焦点定位在最后加入的这一行
如果行数超过20行,则删除第一行,把后面的19行往上推,把记录加入到第20行
请问怎么实现?
谢谢

解决方案 »

  1.   

    没太理解,是这个意思码?var
      Form1: TForm1;implementation{$R *.dfm}
    var
      myrow: integer = 1;procedure TForm1.Button1Click(Sender: TObject);
    var
      i: integer;
    begin
      if myrow <= 5 then
      begin
        stringgrid1.Cells[0, myrow] := inttostr(myrow);
        stringgrid1.Cells[1, myrow] := inttostr(myrow);
      end
      else
      begin
        for i := 1 to 5 - 1 do
        begin
          stringgrid1.Cells[0, i] := stringgrid1.Cells[0, i + 1];
          stringgrid1.Cells[1, i] := stringgrid1.Cells[0, i + 1];
        end;
        stringgrid1.Cells[0, 5] := inttostr(myrow);
        stringgrid1.Cells[1, 5] := inttostr(myrow);
      end;
      Inc(myrow);
    end;
      

  2.   

    应该不是很难吧,既然用StringGrid控件,那么代码两很大了,这个控件比较笨,需要自己写代码来控制细节!!!!
      

  3.   

    我不知道,你是如何添加的,如果你使用另外一个对话框添加的话,就好办多了。你仅仅需要建立一个树组把前面的数据存储起来,然后添入新数据,接着再倒着把余下数据添入stringgrid;
    倒着添加,正着存储!
      

  4.   

    我看只能动态更新了,应该还是比较快的,因为这个不像dbgrid可以直接对数据进行操作,只是显示一下而已,如果要定位,你可以设定他的row属性和col属性。