DBGridEh新增行时不能控制光标所在指定的列!!!(36)

  • 主题发起人 主题发起人 chenp1688
  • 开始时间 开始时间
C

chenp1688

Unregistered / Unconfirmed
GUEST, unregistred user!
我用DBGridEh做了个表单录入行号 物料代码 物料名称 单位 数量 单价 金额 我在"物料代码"列做了以下控制procedure TFMOutsstorage.DBGridEh1KeyPress(Sender: TObject; var Key: Char);varsqltr:string;begin x:=DBGridEh1.Row; y:=DBGridEh1.Col; if y=1 then begin if key=#13 then begin //打开另一个窗体 end; end;end;问题,当新增一行时,光标不管在'物料代码','物料名称'任意一列只要按回车键都弹出另一个窗体我也这样试过varsqltr:string;begin x:=DBGridEh1.Row; y:=DBGridEh1.Col; if key=#13 then begin if y=1 then begin //打开另一个窗体 end; end;end;都不行我使用的是ADODataSet,全都是临时数集请帮帮我!!!!!各位高手,不好意思,我这么低的分还要提问,(因为没有分了,望谅!)
 
代码没有问题啊~~procedure Tfm1.DBGridEh1KeyPress(Sender: TObject; var Key: Char);var x,y:integer;begin x:=DBGridEh1.Row; y:=DBGridEh1.Col; if y=1 then begin if key=#13 then begin showmessage('打开另一个窗体'); end; end;end;可以直接写为procedure Tfm1.DBGridEh1KeyPress(Sender: TObject; var Key: Char);begin if DBGridEh1.Col=1 then begin if key=#13 then begin showmessage('打开另一个窗体'); end; end;end;
 
谢谢版主的回复你回复的方法我已经试过了,也不知是什么原因!我在新增行的时候先给临时表里的一个标识字段赋了一个空值以下是我新增行的操作;ADODSetBiaoT.Append;ADODSetBiaoT.FieldByName('Fnote').AsString:='';ADODSetBiaoT.UPDATEBATCH;我也试过这样的新增ADODSetBiaoT.Append;问题还是一样没有解决!请版主帮帮看看是什么原因呢
 
新增一个不为空值的试一下~~
 
试过了,还是不行
 
这就奇怪了,我在这边测试都是OK的~~你用showmessage(inttostr(stringgrid1.col));看看列号的变化~~是不是其他地方的代码更改了列号?
 
版主,要是方便可以留下你的QQ号吗?
 
呵呵~~我在公司上网,不让用QQ~~
 
不好意思,我又重写了一遍,begin if DBGridEh1.Col=1 then begin if key=#13 then begin showmessage('打开另一个窗体'); end; end;end;这种方式.光标是不会乱动了,可 物料代码 列只要输入一个字符,另一个窗口就打开了,又就是说输入一个字符打开一次.然后退出时系统报这样的错误Project CRGLXT.exe raised exception class EAccessViolation with message 'Access violation at address 0041EEE4 in module ' CRGLXT.exe '. Read of address 00000008'.Process stopped Use Step or Run to continue真不知道是什么原因了KEY=#13 回车键 可为什么输入任意一个字符就触发了这个事件,是控件的属性问题还是我代码问题?
 
版主,我把原来的procedure TFMOutsstorage.DBGridEh1KeyPress(Sender: TObject; var Key: Char);事件删除重建后,不会出现,输入一个字符打开一次窗口的错误.但是只要在其他列按回车键还是会出现Project CRGLXT.exe raised exception class EAccessViolation with message 'Access violation at address 0041EEE4 in module ' CRGLXT.exe '. Read of address 00000008'.Process stopped Use Step or Run to continue这个错误真没有办法了,只有向你再请教了谢谢!
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
514
import
I
后退
顶部