在Delphi中填充TStringGrid

在Delphi中填充TStringGrid,delphi,delphi-xe2,tstringgrid,Delphi,Delphi Xe2,Tstringgrid,我在delphi表单上有一个TStringGrid,说是StringGrid1,还有一个文本框,说是textbox1。当我在textbox1中输入任何内容时,它将出现在StringGrid1的下一行 我希望StringGrid1中的新企业应该位于顶部而不是底部。我应该换哪一个房间 AFAIK没有任何属性可以调整以在StringGrid的某个位置插入行 但是,您始终可以在代码中进行转换,以便在网格中为新行留出空间 假设您有标题的第一行和第一列,您可以将其编码为: procedure TForm1.

我在delphi表单上有一个TStringGrid,说是StringGrid1,还有一个文本框,说是textbox1。当我在textbox1中输入任何内容时,它将出现在StringGrid1的下一行


我希望StringGrid1中的新企业应该位于顶部而不是底部。我应该换哪一个房间

AFAIK没有任何属性可以调整以在StringGrid的某个位置插入行

但是,您始终可以在代码中进行转换,以便在网格中为新行留出空间

假设您有标题的第一行和第一列,您可以将其编码为:

procedure TForm1.Button1Click(Sender: TObject);
var
  I: Integer;
begin
  StringGrid1.RowCount := StringGrid1.RowCount + 1;
  for I := StringGrid1.RowCount - 1 downto 1 do
    StringGrid1.Rows[I] := StringGrid1.Rows[I - 1];
  StringGrid1.Cols[1][1] := Edit1.Text;
  //the commented line comes from my quick test.
  //Edit1.Text := IntToStr(StringGrid1.RowCount);
end;

您使用的是什么版本的Delphi?谢谢您提供的解决方案。它确实有效。我第一次使用字符串网格。所以,我想可能有一些属性以相反的顺序填充它。@Naresh-您可以使用内存数据集和TDBGrid。然后就可以在TDataSet术语中插入行。如果网格具有定义良好且严格的格式,那可能是最有用的方法。@Aroch问题是关于TStringGrid的,在这种情况下不需要TDBGrid和数据集。基于问题的层次,我认为他甚至不可能是新的,所以让他有一个mroe工具供他使用。这是否适合他的情况,我们不能肯定。但你最好知道其他的方法来避免“看起来都是钉子”的情况。@Arioch'我的要求很简单。每当在textbox中输入任何内容时,我都必须用textbox的值填充网格。所以我认为StringGrid会完成我的工作。先使用dataset,然后使用datasource,再使用dbgrid,这将使其变得复杂。但是,感谢您提供了另一种解决方案。