OnKeyPress if key=#13 then key:=Chr(9);//試試,應該可以解決吧
OnKeyPress if key=#13 then key:=Chr(39);//應該是這樣
朋友: 不好意思,再说一下.13,39我想是某键的ASCII码值 应该不能设置DBGRID中的Taborder吧?我刚才试了,焦点还是不能改变,可能是我没明白你的意思?我试着这样解决: procedure TFrm_ddjkEdit.DBGrid1KeyPress(Sender: TObject; var Key: Char); VAR ls_field:Tfield; begin if key=#13 then begin ls_field:=Tfield.Create(Self); if DBGrid1.SelectedField.FieldName='CZ' THEN begin showmessage('This is CZ!'); if dbgrid1.Fields[dbgrid1.SelectedIndex].AsString='' then showmessage('车种不能为空!') else begin DBGrid1ColumnMoved(dbgrid1,0,1); ls_field.FieldName:='ZIZ'; DBGrid1.SelectedField:=ls_field; ls_field.Destroy; end; end; end;但失败了.....那位大虾能提供跟明白的方法让菜鸟学学吗?
朋友: 不好意思,再说一下.13,39我想是某键的ASCII码值 应该不能设置DBGRID中的Taborder吧?我刚才试了,焦点还是不能改变,可能是我没明白你的意思?我试着这样解决: procedure TFrm_ddjkEdit.DBGrid1KeyPress(Sender: TObject; var Key: Char); VAR ls_field:Tfield; begin if key=#13 then begin ls_field:=Tfield.Create(Self); if DBGrid1.SelectedField.FieldName='CZ' THEN begin showmessage('This is CZ!'); if dbgrid1.Fields[dbgrid1.SelectedIndex].AsString='' then showmessage('车种不能为空!') else begin //方法一 // DBGrid1ColumnMoved(dbgrid1,0,1); //这个是我想用DBGrid1ColumnMoved但也失败了 //方法二 ls_field.FieldName:='ZIZ'; DBGrid1.SelectedField:=ls_field; ls_field.Destroy; end; end; end;但失败了.....那位大虾能提供跟明白的方法让菜鸟学学吗?
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key = 13 then if DBGrid1.SelectedIndex = DBGrid1.Columns.Count-1 then DBGrid1.SelectedIndex := 0 else DBGrid1.SelectedIndex := DBGrid1.SelectedIndex + 1;; end;
if (Key=VK_RETURN) then begin DBGrid1.SelectedIndex:=DBGrid1.SelectedIndex+1; end;
问题得以解决:多谢大虾们....哈哈 -------------- procedure TFrm_ddjkEdit.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin if key=#13 then begin if DBGrid1.SelectedField.FieldName='CZ' THEN begin showmessage('This is'+DBGrid1.SelectedField.FieldName); if dbgrid1.Fields[dbgrid1.SelectedIndex].AsString='' then showmessage('车种不能为空!') else DBGrid1.SelectedIndex:=4; end; end; end; ---------------------------------------------------------------但怎么用dbgrid1.selectedfield:=ls_field;这种方法为什么不行呢? 我一直对Delphi中的create方法使用不太熟练, 像:create(ower) create(self) create(parent) create(application)等参数使用不太熟 那位大虾能介绍下吗?<求书:那本好书介绍关于数据库编程,对ADO,BDE控件的方法,函数使用的比较详细? >
if key=#13 then
key:=Chr(9);//試試,應該可以解決吧
if key=#13 then
key:=Chr(39);//應該是這樣
不好意思,再说一下.13,39我想是某键的ASCII码值
应该不能设置DBGRID中的Taborder吧?我刚才试了,焦点还是不能改变,可能是我没明白你的意思?我试着这样解决:
procedure TFrm_ddjkEdit.DBGrid1KeyPress(Sender: TObject; var Key: Char);
VAR
ls_field:Tfield;
begin
if key=#13 then
begin
ls_field:=Tfield.Create(Self);
if DBGrid1.SelectedField.FieldName='CZ'
THEN
begin
showmessage('This is CZ!');
if dbgrid1.Fields[dbgrid1.SelectedIndex].AsString='' then
showmessage('车种不能为空!')
else
begin
DBGrid1ColumnMoved(dbgrid1,0,1);
ls_field.FieldName:='ZIZ';
DBGrid1.SelectedField:=ls_field;
ls_field.Destroy;
end;
end;
end;但失败了.....那位大虾能提供跟明白的方法让菜鸟学学吗?
不好意思,再说一下.13,39我想是某键的ASCII码值
应该不能设置DBGRID中的Taborder吧?我刚才试了,焦点还是不能改变,可能是我没明白你的意思?我试着这样解决:
procedure TFrm_ddjkEdit.DBGrid1KeyPress(Sender: TObject; var Key: Char);
VAR
ls_field:Tfield;
begin
if key=#13 then
begin
ls_field:=Tfield.Create(Self);
if DBGrid1.SelectedField.FieldName='CZ'
THEN
begin
showmessage('This is CZ!');
if dbgrid1.Fields[dbgrid1.SelectedIndex].AsString='' then
showmessage('车种不能为空!')
else
begin
//方法一
// DBGrid1ColumnMoved(dbgrid1,0,1);
//这个是我想用DBGrid1ColumnMoved但也失败了
//方法二
ls_field.FieldName:='ZIZ';
DBGrid1.SelectedField:=ls_field;
ls_field.Destroy;
end;
end;
end;但失败了.....那位大虾能提供跟明白的方法让菜鸟学学吗?
Shift: TShiftState);
begin
if key = 13 then
if DBGrid1.SelectedIndex = DBGrid1.Columns.Count-1 then
DBGrid1.SelectedIndex := 0
else
DBGrid1.SelectedIndex := DBGrid1.SelectedIndex + 1;;
end;
begin
DBGrid1.SelectedIndex:=DBGrid1.SelectedIndex+1;
end;
--------------
procedure TFrm_ddjkEdit.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
if DBGrid1.SelectedField.FieldName='CZ'
THEN
begin
showmessage('This is'+DBGrid1.SelectedField.FieldName);
if dbgrid1.Fields[dbgrid1.SelectedIndex].AsString='' then
showmessage('车种不能为空!')
else
DBGrid1.SelectedIndex:=4;
end; end;
end;
---------------------------------------------------------------但怎么用dbgrid1.selectedfield:=ls_field;这种方法为什么不行呢?
我一直对Delphi中的create方法使用不太熟练,
像:create(ower)
create(self)
create(parent)
create(application)等参数使用不太熟
那位大虾能介绍下吗?<求书:那本好书介绍关于数据库编程,对ADO,BDE控件的方法,函数使用的比较详细? >