关于限制DBGridEH的行数问题(100分)

  • 主题发起人 主题发起人 jake668
  • 开始时间 开始时间
J

jake668

Unregistered / Unconfirmed
GUEST, unregistred user!
要在DBGridEH只能通过命令按钮导入数据增加行,然后可以修改其中某列的数据,限制用下拉箭头或者回车不能增加行数.请求实现这样例子的方法,谢谢来看的和给出方法的!
 
KeyPress里屏蔽吧,另外属性看有没有,应该是没有。
 
都没有回答,只一人答错的也要给分吗?
 
用DataSource1的DataChange事件
procedure TForm1.DataSource1DataChange(Sender: TObject;
Field: TField);
begin
if (TDataSource(Sender).DataSet.Eof) and not 非按钮 then
TDataSource(Sender).DataSet.Cancel;
end;
 
用DataSource1的DataChange事件
procedure TForm1.DataSource1DataChange(Sender: TObject;
Field: TField);
begin
if (TDataSource(Sender).DataSet.Eof) and not 按钮 then
TDataSource(Sender).DataSet.Cancel;
end;
 
用dbgrideh.datesource.dataset的beforedelete。等等事件進行處理.
 
刚好偶也处理过过同样的问题。我是这样做的。
1、用数据集的TAG属性0,1标记是否可以增加数据,默认TAG值为0是不可以增加的。
2、在数据集的ONNEWRECORD中写如下代码
if adoquery1.tag=0 then
abort;
//此处abort会中止增加新行
3、在“增加按钮”的事件中写如下代码
adoquery1.tag:=1;
adoquery1.append;
adoquery.tag:=0;//重置为0
 
DBGridEH 本身有个属性 AllowedOperations, 可以限制是否可以通过 Insert, 回车或者下移箭头增加行的功能。 即把 alopInsertEh 与 AlopAppendEh 设为 False
要限制最大行数,只能用类似前面讲的方法了。
 
levi回答是正确的,本人自己也早摸索出来了,不过还是谢谢大家的帮助!
 
后退
顶部