比如我的表字段A      B
   10     False
   11     True
   25     False
DBedit随指针通过Query DataSource1 取字段A的值,并可以修改字段值(此功能已做好)
但我想加一个条件,当B字段为True时,不能修改,相反字段B等于False时可以通过DBedit修改字段A的值

解决方案 »

  1.   

    DBedit随指针通过Query   DataSource1   取字段A的值,并可以修改字段值(此功能已做好) 
    但我想加一个条件,当B字段为True时,不能修改,相反字段B等于False时可以通过DBedit修改字段A的值
    ----------------------
    直接在post那里加一个判断就OK了
      

  2.   

    可以用query.fieldbyname('B').asboolean来判断吗?
      

  3.   

    在keypress中写如下代码:
    begin
    dbedit.readonly:=query.fieldbyname('B').asboolean;
    end;
      

  4.   

    在keypress中写如下代码:
    begin
    dbedit.readonly:=query.fieldbyname('B').asboolean;
    end;
      

  5.   

    在那个控件的KeyPress加代码,
    我在DBedit  DBGrid1  Post按钮的KeyPress都试过了,好像query.fieldbyname('B').asboolean值不会随选中字段不同而变化
      

  6.   


    procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key=#13 then//回车状态执行程序
        Begin
          if  query.FieldByName('b').AsBoolean =True then
               Showmessage('只读状态不能保存')
          Else
            Begin
              query.Edit ;
              query.Post ;
            End;
        End;
    end;
      

  7.   

    procedure TForm1.table1AfterScroll(DataSet: TDataSet);
    begin
      if  query.FieldByName('b').AsBoolean   =True   then
        dbedit1.ReadOnly:=True; //设置dbedit1只读
      Else
        dbedit1.ReadOnly:=False; //取消dbedit1只读
    end;
      

  8.   

    procedure TForm1.table1AfterScroll(DataSet: TDataSet); 
    begin
      if query.FieldByName('b').AsBoolean =True then
        dbedit1.ReadOnly:=True //设置dbedit1只读
      Else
        dbedit1.ReadOnly:=False; //取消dbedit1只读 
    end;