小弟我要做一个程序,需要判断当DBGrid中的某个字段为空时光标就不能选取其他的记录,也就是锁定光标在当前记录...........但小弟我就是不知如何下手,
      请各位指点

解决方案 »

  1.   

    if dbgrid1.dataset.fieldbyname('name').asstring='' then
      dbgrid1.enable:=False;
      

  2.   

    小弟的意思是锁定在当前记录,而光标在DBGrid中不能选取其他的记录
      

  3.   

    双击你的Table或Query,右键Add all fields添加全部字段,选你要判断是否为空的字段,
    比如叫Field1,在它的OnValidate事件中:
    procedure TForm1.Table1Field1Validate(Sender: TField);
    begin
      if Trim(Sender.Value) = '' then raise Exception.Create('Field1不能为空');
    end;
      

  4.   

    to sysu:
       不好意思,OnValidate事件我怎么没有看到,  能详细一点吗?
     我用的是D7
      

  5.   

    要选取其中的一个字段才能看见的,或者你自己写一个事件,如sysu(死树)所说的
    procedure MyFieldValidate(Sender:TField)
    begin
      if Trim(Sender.Value) = '' then raise Exception.Create('Field1不能为空');
    end; 
    在formcreate事件中
    加上   (字段).onvalidate := Myfieldvalidete;
      

  6.   

    但是我是将Table的LockType设为是ltBatchOptimistic就不起作用了,
     当LockType为ltOptimistic时还可以
      

  7.   

    我试了用ltBatchOptimistic也可以的啊。