用过TOPGRID的请进(50分)

  • 主题发起人 主题发起人 xiaocai
  • 开始时间 开始时间
X

xiaocai

Unregistered / Unconfirmed
GUEST, unregistred user!
最近找到TSGRID这个控件,感觉挺好用,但是有个很菜的问题问大家,如何知道
表格中的每一个CELL添入内容了呢?
我是这样做的,但是不行
for i:=1 to 10 do
for j:=1 to 10 do
begin
if tsgrid.cell[j,i]='' then
xxxxxxx
else
end
系统提示出错是什么 ...variant 错误?谁知道?
还有,顺便问一下,比如这个表格是10X10的,第十行是合计10=1+...+9,如何在输入
每一个CELL的同时让和出现在第10列上呢?
 
topgrid中每一个CELL的值开始都是variant 类型的,所以如果你用=''去判断的话就会出错,
如果你是为了显示数据的话,在填数据之前,用循环给每一个CELL都赋一个空的字符串,
那么它的值就是作String类型来处理,再像你这样操作就不会有问题的。

比如:可以写一个ClearAll函数,全部赋字符串初值。
 
>>还有,顺便问一下,比如这个表格是10X10的,第十行是合计10=1+...+9,如何在输入
>>每一个CELL的同时让和出现在第10列上呢?

有个笨方法,TopGrid的行添加是手动添加的(好象是INSERT方法吧,好久没用了),记得
以前我是这样用的,在每次添加和改变数据的时候,手动把”和”这一行放到最后来。
 
请参考以下处理方法,看是否可行:
1、判断空值时先将CELL中的内容转换为字符类型(VarToIntStr()),然后与''作比较。
2、在TopGrid的OnCellEdit、OnSelectChanged等事件中添加有关合计处理的代码。
 
谢谢列位!再无耻的问个小问题行吗?
chbxue大虾,没有VarToIntStr这个函数啊?还有,ONCELLEDIT事件怎么处理?
比如说第1列=2+..+9,而且2..9中可能有些CELL还没有填写,这时就不能用STRTOINT()
不然会报错,那我该怎么写?来点源程序怎么样?
 
多人接受答案了。
 

Similar threads

回复
0
查看
840
不得闲
S
回复
0
查看
702
SUNSTONE的Delphi笔记
S
后退
顶部