Delphi DBCtrls.pas中的TDBNavigator就是一个很好的例子,你自己看吧。

解决方案 »

  1.   

    insert record 按纽:TQuery.Append;
    Delete REcord "":TQuery.Delete;
    Edit Record "":TQuery.edit;
    Post Record "":TQuery.Post;
    Cancel edit"":TQuery.cancel;
    Refresh data:TQuery.Refresh;
      

  2.   

    用一个DBNavigator,设置为不可见,Button调用DBNavigator的方法是最简单的了。我以前就做过这样的小儿科的事情。呵呵
      

  3.   

    或都自已写,table.append
    table.delete
      

  4.   

    这些方法我都会,问题是怎么控制各个按钮的有效性,如当程序启动时,只有Insert record、Delete REcord、Edit Record、Refresh data按钮有效,而其它按钮(Post Record、Cancel Edit)无效;当按了Insert record后,Edit Record按钮无效;等等怎么控制呢?
      

  5.   

    就把对应的按钮的enabled:=false;
      

  6.   

    你可以用TActionList控件,就是Delphi5控件面板上Standard页上最右边的那个东东,然后可以双击该控件,然后New Standard Action,选择相应的数据库操作的Action,然后把DataSource与相应Action的DataSource关联,然后将你的按钮的Action与新建的Action关联,不用写代码就能搞定。
      

  7.   

    insert record 按纽:TQuery.Append;
    Delete REcord "":TQuery.Delete;changeflag(True);
    Edit Record "":TQuery.edit;changeflag(False);
    Post Record "":TQuery.Post;changeflag(True);
    Cancel edit"":TQuery.cancel;changeflag(False);
    Refresh data:TQuery.Refresh;
    procedure changeflag(flag:boolean);
     begin
       BtnEdit.enable:=flag;
       BtnAppend.enable:=flag;
       BtnPost.enable:=not flag;
       BtnCancel.enable:=not flag;
       BtnRefresh.enable:=not flag;
     end;Query1AfterOpen(DataSet: TDataSet);
      begin
           BtnEdit.enable:=not Query1.Fields[n].isnull
           Btndelete.enable:=not Query1.Fields[n].isnull
      end;
    n 为你的数据表中的一个一定不为空的字段,如果是table 直接写成
      BtnEdit.enable:=not Table1.isempty