键盘上向下键的问题(50分)

  • 主题发起人 haisongzhang
  • 开始时间
H

haisongzhang

Unregistered / Unconfirmed
GUEST, unregistred user!
数据访问组件为:AdoQuery
数据感应控件为:Dbgrid
在,Dbgrid的最后一条记录上,使用键盘上的向下键可以新增一条记录,怎样在最后一条时
屏蔽这个键,就是说,不让向下键新增记录。当然在其他位置,能够正常使用?
在DbGrid的KeyDown事件中,我这样写:
If Key=VK_Down Then
If Adoquery1.Eof Then Key:=0 ;
但是不行!
请帮忙!谢谢!
 
procedure TForm1.Table1BeforePost(DataSet: TDataSet);
begin
if table1.eof then abort;
end;

祝:身体健康,分数和答案同样重要:)
 
这时 Adoquery1.Eof 是不成功立的。

在 query 的 OnBEforeInsert 中执行 Abort;
procedure TForm1.ADOQuery1BeforeInsert(DataSet: TDataSet);
begin
abort;
end;


如果要让按能添加如下进行:
var canAdd:Boolean=false;
procedure TForm1.Button1Click(Sender: TObject);
begin
canAdd:=true;
/// add
canAdd:=false;
end;

procedure TForm1.ADOQuery1BeforeInsert(DataSet: TDataSet);
begin
if not(canAdd) then abort;
end;
 
我在程序中需要Append,并且也有Insert,这样写不行吧!
 
canAdd:=true; 在 insert 和 append前加上此句
/// 这里进行 insert 和 append
canAdd:=false; 在 insert 和 append后加上此句

OK ,自己好好想想
 
var
ins_:boolean=false; //公共变量
procedure Ttble1BeforeInsert(DataSet: TDataSet);
begin
if ins_=false then
abort;
if ins_=true then
ins_:=false;
end;

想允许增加时 ins_:=true 否则 ins_:=false;

 
高手不来回答,让我来吧,50分全是我的,一分不能少!
:)
开玩笑的,其实很简单的
DBGrid的Options属性中的dgEditing置为False就行了!
 
不行,我需要在Dbgrid中编辑数据,就是要屏蔽向下键!
 
试试这个:很简单的代码.
procedure Tform1.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if key = 40 then
if DBGrid1.DataSource.DataSet.RecNo = DBGrid1.DataSource.DataSet.RecordCount then
abort;
end;
 
多人接受答案了。
 
顶部