stringgrid 控件 rowcount 的问题!

access20121 2012-02-03 12:27:19
procedure TForm1.Button1Click(Sender: TObject);
begin
stringgrid3.RowCount:=stringgrid3.RowCount+1;
stringgrid3.Cells[0,stringgrid3.RowCount]:=adoquery1.fieldbynam('SPMC').AsString;
stringgrid3.Cells[1,stringgrid3.RowCount]:=adoquery1.fieldbyname('DW').AsString;
stringgrid3.Cells[2,stringgrid3.RowCount]:=edit21.Text;
stringgrid3.Cells[3,stringgrid3.RowCount]:=edit22.Text;
stringgrid3.Cells[4,stringgrid3.RowCount]:=inttostr(j);
end;
end.

我想实现 点击按钮 增加行 然后赋值, 但是 rowcount 不能为0,这让我不知道怎么办了!谁知道怎么解决麻烦给我说下!
...全文
164 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
erhan 2012-02-03
  • 打赏
  • 举报
回复
procedure TForm1.Button2Click(Sender: TObject);
begin
stringgrid1.RowCount:=stringgrid1.RowCount+1;
stringgrid1.Cells[0,stringgrid1.RowCount-1]:='aaa';
stringgrid1.Cells[1,stringgrid1.RowCount-1]:='bbb';
stringgrid1.Cells[2,stringgrid1.RowCount-1]:='ccc';
stringgrid1.Cells[3,stringgrid1.RowCount-1]:='ddd';
stringgrid1.Cells[4,stringgrid1.RowCount-1]:='eee';
end;

行号是从0开始的,所以最大行的行号是rowcount-1
hongss 2012-02-03
  • 打赏
  • 举报
回复
看来楼主是不要标题?直接用二楼的办法就可以了
mayyang610 2012-02-03
  • 打赏
  • 举报
回复
stringgrid的第一行一般是用来显示列标题的,这个控件有一个属性fixedrows,这个属性设置成1,就表示stringgrid的第一行是固定的,可以在这一行上显示列标题。增加/删除按钮操作行的时候就可以从第2行开始(下标是1)。同理列也是一样。
huanghua 2012-02-03
  • 打赏
  • 举报
回复
可以设个私有变量sgBtnCount 来判断是否是第一次增加行。
if sgBtnCount = 0 then
sg.Cells[0,sg.RowCount -1] := inttostr(sg.RowCount)
else
begin
sg.RowCount := sg.RowCount + 1;
sg.Cells[0,sg.RowCount-1] := inttostr(sg.RowCount);
end;
inc(sgBtnCount);
sundayzhao 2012-02-03
  • 打赏
  • 举报
回复
rowcount是不能为0,但其实你可以把第一行作为标题显示,这样不就实现了你的要求,用户看起来也方便。

5,390

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧