dbgrid 本身支持光标上下左右移动。
至于你的回车只需要:procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if key =#13 then
tuxedoquery1.Next;
end;/*************************************/
/*1、MY TOOL:*************************/
/*2、Delphi,Oracle,Sybase,C++/C*******/
/*3、PROJECT:*************************/
/*3、Boss*****************************/
/*4、为了五星的目标希望你早点结贴*****/
/*************************************/
下为我公司中餐定购点,大家随意随意.....
巴西小吃部:13033009888
阿根廷川味:13003059999
韩国料理城:3663371
英格兰拉面:3635476
西班牙火锅:3661693
中国大排挡:13956948888
至于你的回车只需要:procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if key =#13 then
tuxedoquery1.Next;
end;/*************************************/
/*1、MY TOOL:*************************/
/*2、Delphi,Oracle,Sybase,C++/C*******/
/*3、PROJECT:*************************/
/*3、Boss*****************************/
/*4、为了五星的目标希望你早点结贴*****/
/*************************************/
下为我公司中餐定购点,大家随意随意.....
巴西小吃部:13033009888
阿根廷川味:13003059999
韩国料理城:3663371
英格兰拉面:3635476
西班牙火锅:3661693
中国大排挡:13956948888
比如你在onbeforeinsert的代码中加上 abort语句可以试试效果,而after是之后了,比如你在afterdelete之后要更改某个计数器或刷新某个query就在这儿做。
关于dbgrid的移动,一般光标上下移动就自动移动的。如果要用回车移动那么在
onkeypress中写
//响应回车键
if Key =#13 then
if not (Sender as TDBGrid).DataSource.DataSet.Eof then
(Sender as TDBGrid).DataSource.DataSet.Next;
如果要响应上下键原理一样,只是改Key就行了
2。第二个问题同上,实在不行,你可在dbgrid中的onkeyup中对方向键,回车键进行控制。
3。来这里是学东西,没什么笨不笨的。
2。第二个问题同上,实在不行,你可在dbgrid中的onkeyup中对方向键,回车键进行控制。
3。来这里是学东西,没什么笨不笨的。
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if key =#13 then
begin
if not tuxedoquery1.Eof then
tuxedoquery1.Next
else
tuxedoquery1.First;
end;end;
/*************************************/
/*1、MY TOOL:*************************/
/*2、Delphi,Oracle,Sybase,C++/C*******/
/*3、PROJECT:*************************/
/*3、Boss*****************************/
/*4、为了五星的目标希望你早点结贴*****/
/*************************************/
下为我公司中餐定购点,大家随意随意.....
巴西小吃部:13033009888
阿根廷川味:13003059999
韩国料理城:3663371
英格兰拉面:3635476
西班牙火锅:3661693
中国大排挡:13956948888
然后将我上面的代码改成下面形式
if Key =#13 then
if (Sender as TDBGrid).SelectedIndex < (Sender as TDBGrid).Columns.Count then
(Sender as TDBGrid).SelectedIndex:= (Sender as TDBGrid).SelectedIndex+1
else
if not (Sender as TDBGrid).DataSource.DataSet.Eof then
(Sender as TDBGrid).DataSource.DataSet.Next;
我这样做了回车可代替tab,但不换行[这一句(Sender as TDBGrid).DataSource.DataSet.Next;好像没发挥作用],另外,移动向下光标件到最后一条记录,会自动添加一条空白记录,如何不让他这样做?
if (Sender as TDBGrid).SelectedIndex < (Sender as TDBGrid).Columns.Count then
(Sender as TDBGrid).SelectedIndex:= (Sender as TDBGrid).SelectedIndex+1
else
begin
if not (Sender as TDBGrid).DataSource.DataSet.Eof then
(Sender as TDBGrid).DataSource.DataSet.Next;
(Sender as TDBGrid).SelectedIndex =1;
end;你使用也要动动脑筋想想道理嘛,至于自动添加一条空白记录很简单,只是在我上面的语句中加一条语句就行了。自己试试。