第一个问题:
在form1中建个edit1和一个button1.
开始时
button1.enabled:=false;    //按钮成灰白状态
edit1.text:=''             //edit为空
怎样使在编辑edit后能够判断edit中是否有数据,若有数据则使button1激活,即button1.enabled:=true;
------------------------------------------------------------------
第二个问题:
在sql server数据库rsda中有一个表rs,结构如下:
id       zw
1         无
2        会计师
3        经济师
.....
怎样设定rs表的zw为'无'这条记录是只读的,不能删除。谢谢大家

解决方案 »

  1.   

    Question1:
    procedure TForm1.Edit1Change(Sender: TObject);
    begin
      if length(edit1.text) > 0 then
        button1.enabled := true
      else
        button1.enabled := false;
    end;
      

  2.   

    If Trim(Edit1.Text)='' then  //如果为空
    begin
      ...
    end
    Else  //否则
    begin
      ...
    end;
    可以在Edit的OnKeyPress事件中判断
      Button1.Enbled:=Not (Trim(Edit1.Text)='');
      

  3.   

    谢谢楼上二位,第一个问题解决了。Wnyu(能) ( )的做法正确,
     star_of_light(星星之光) ( ) 的做法我没试,可能复杂了点。写程序是越简单越好的。就用楼楼上的吧。
    那第二个问题呢,望高手解答,十分感谢
      

  4.   

    Wnyu(能) 的代码可以这样简化一下:
    button1.Enabled := length(edit1.text) > 0;用 trigger 来实现,做一个 delete 的 trigger,如果是 delete 你的那个“无”行,就 rollback。
      

  5.   


     star_of_light(星星之光) ( ) 的做法也正确
      

  6.   

    第二个问题可以在数据集的AfterScroll事件中写:
    procedure TForm1.Table1AfterScroll(DataSet:TDataSet);
    var
      i:Integer;
    begin
      for i:=0 to DataSet.Fields.Count-1 do
        DataSet.Fields[i].ReadOnly:=DataSet.FieldByName('zw').AsString='无';
    end;
      

  7.   

    以上代码可以有BUG,你自己琢磨着改改吧。
      

  8.   

    请问大家,这个问题能否在SQL SERVER中能否实现呢