你可能在FormCreate里设置控件的焦点了吧,在OnShow里设置
另外就是不能设置焦点到Enabled为false的控件上

解决方案 »

  1.   

    也不能把焦点设到 Visible为False的控件上。
      

  2.   

    多谢楼上两位关注,但
    1.我没有直接使用setfocus{可能是运行的时候,系统需要吧};
    2.产生此异常的代码行是table3.filtered:=true;
    3.Delphi 5 Developer's Guide上对EInvalidOperation异常的解释为:
     当试图对一个没有"父"组件进行操作而这人操作又需要有窗口句柄时将触发这个异常.如下而的 代码:
     Var b:TBitBtn;
     begin
      b:TBitBtn.Create(Self);
      b.SetFocus;{这行将导致异常}
     end;
    请继续关注!:):):)
     
      

  3.   

    那你就赋一个parent;
    b.Parent := Form1;就ok了
      

  4.   

    唉!LOOK
    原来是这样的!
    我的表字段里设了一个必填项.{Required Field}
    当我使用table1.filter过滤时,会出现空记录的情况,也就是Table1.RecordCount=0,但实际上在DbGrid1显示时,好像会自动Append一条空记录,从而导致记录录入错误,同时也引出一个问题,有没有办法让dbGrid1不要有那条空记录?{不知道这样分析对不对?}
    不过说实在的,我刚从php转到delphi,我的代码实在是烂,特在此公布出来让有趣的朋友多提些意见!谢谢啦.
    (这是一个售房管理程序)
    MainFrm  Code as below:
    ------------------------------------
    unit main;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      Menus, ImgList, ComCtrls, ToolWin, ExtCtrls, Grids, Buttons, DBGrids, Db,
      DBTables, StdCtrls, Mask, ShellAPI, DBCtrls;type
      Tmainfrm = class(TForm)
        ImageList1: TImageList;
        CoolBar1: TCoolBar;
        ToolBar1: TToolBar;
        ToolButton1: TToolButton;
        MainMenu1: TMainMenu;
        S1: TMenuItem;
        E1: TMenuItem;
        A1: TMenuItem;
        D1: TMenuItem;
        V1: TMenuItem;
        C1: TMenuItem;
        P1: TMenuItem;
        H1: TMenuItem;
        ToolButton2: TToolButton;
        ToolButton3: TToolButton;
        ToolButton4: TToolButton;
        ToolButton5: TToolButton;
        ToolButton6: TToolButton;
        ToolButton7: TToolButton;
        ToolButton8: TToolButton;
        ToolButton9: TToolButton;
        ToolButton10: TToolButton;
        X1: TMenuItem;
        TreeView1: TTreeView;
        StatusBar1: TStatusBar;
        PopupMenu1: TPopupMenu;
        A2: TMenuItem;
        D2: TMenuItem;
        C3: TMenuItem;
        N1: TMenuItem;
        DataSource1: TDataSource;
        Table1: TTable;
        Table2: TTable;
        DataSource2: TDataSource;
        N2: TMenuItem;
        N3: TMenuItem;
        Splitter2: TSplitter;
        Bevel1: TBevel;
        R1: TMenuItem;
        Shape2: TShape;
        V2: TMenuItem;
        N4: TMenuItem;
        S2: TMenuItem;
        N5: TMenuItem;
        N6: TMenuItem;
        N7: TMenuItem;
        L1: TMenuItem;
        C4: TMenuItem;
        DataSource3: TDataSource;
        Table3: TTable;
        QReportPop: TPopupMenu;
        R2: TMenuItem;
        B1: TMenuItem;
        N8: TMenuItem;
        Panel2: TPanel;
        SpeedButton1: TSpeedButton;
        Image1: TImage;
        Shape1: TShape;
        N9: TMenuItem;
        A3: TMenuItem;
        D3: TMenuItem;
        C5: TMenuItem;
        A4: TMenuItem;
        D4: TMenuItem;
        C6: TMenuItem;
        PageControl1: TPageControl;
        TabSheet1: TTabSheet;
        TabSheet2: TTabSheet;
        DBGrid1: TDBGrid;
        cardPop: TPopupMenu;
        V3: TMenuItem;
        V4: TMenuItem;
        E2: TMenuItem;
        N10: TMenuItem;
        N11: TMenuItem;
        N12: TMenuItem;
        N13: TMenuItem;
        L2: TMenuItem;
        C2: TMenuItem;
        Label16: TLabel;
        Splitter1: TSplitter;
        H2: TMenuItem;
        N14: TMenuItem;
        N15: TMenuItem;
        F1: TMenuItem;
        T1: TMenuItem;
        E3: TMenuItem;
        N16: TMenuItem;
        N21: TMenuItem;
        N31: TMenuItem;
        N17: TMenuItem;
        N18: TMenuItem;
        A5: TMenuItem;
        N19: TMenuItem;
        P2: TMenuItem;
        I1: TMenuItem;
        T2: TMenuItem;
        N20: TMenuItem;
        S3: TMenuItem;
        K1: TMenuItem;
        N22: TMenuItem;
        SIMTELA1: TMenuItem;
        N23: TMenuItem;
        D5: TMenuItem;
        E4: TMenuItem;
        ToolButton11: TToolButton;
        ToolButton12: TToolButton;
        Panel1: TPanel;
        Label1: TLabel;
        Bevel2: TBevel;
        Label27: TLabel;
        GroupBox1: TGroupBox;
        Label6: TLabel;
        Label7: TLabel;
        Label2: TLabel;
        Bevel3: TBevel;
        Label18: TLabel;
        Bevel5: TBevel;
        Label19: TLabel;
        Label20: TLabel;
        Label21: TLabel;
        Bevel6: TBevel;
        Label22: TLabel;
        Label23: TLabel;
        Label10: TLabel;
        Bevel4: TBevel;
        Label11: TLabel;
        Label24: TLabel;
        AreaRoom: TDBEdit;
        AreaTerrace: TDBEdit;
        AreaOther: TDBEdit;
        TotalArea: TDBEdit;
        total_fund: TDBEdit;
        GroupBox4: TGroupBox;
        Label12: TLabel;
        Label13: TLabel;
        Label14: TLabel;
        Label15: TLabel;
        DBEdit3: TDBEdit;
        DBEdit4: TDBEdit;
        DBEdit5: TDBEdit;
        DBEdit6: TDBEdit;
        GroupBox2: TGroupBox;
        Label3: TLabel;
        Label4: TLabel;
        Label5: TLabel;
        Label8: TLabel;
        Label9: TLabel;
        ClientName: TDBEdit;
        identity_id: TDBEdit;
        Tel: TDBEdit;
        MobilePhone: TDBEdit;
        address: TDBEdit;
        GroupBox5: TGroupBox;
        Label26: TLabel;
        Label25: TLabel;
        Label17: TLabel;
        Label28: TLabel;
        Label30: TLabel;
        DBEdit7: TDBEdit;
        DBEdit8: TDBEdit;
        DBEdit9: TDBEdit;
        DBEdit10: TDBEdit;
        DBEdit11: TDBEdit;
        N24: TMenuItem;
        S4: TMenuItem;
        Label29: TLabel;
        Label31: TLabel;
        Label32: TLabel;
        Label33: TLabel;
        DateTimePicker1: TDateTimePicker;
        DateTimePicker2: TDateTimePicker;
        DateTimePicker3: TDateTimePicker;
        DateTimePicker4: TDateTimePicker;
        UnitPriceRoom: TDBComboBox;
        UnitPriceTerrace: TDBComboBox;
        UnitPriceOther: TDBComboBox;
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        Label34: TLabel;
        DBEdit1: TDBEdit;
        Shape3: TShape;
        procedure X1Click(Sender: TObject);
        procedure A2Click(Sender: TObject);
        procedure D2Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure C3Click(Sender: TObject);
        procedure PopupMenu1Popup(Sender: TObject);
        procedure C4Click(Sender: TObject);
        procedure N6Click(Sender: TObject);
        procedure L1Click(Sender: TObject);
        procedure B1Click(Sender: TObject);
        procedure R2Click(Sender: TObject);
        procedure ToolButton5Click(Sender: TObject);
        procedure ToolButton6Click(Sender: TObject);
        procedure ToolButton7Click(Sender: TObject);
        procedure ToolButton8Click(Sender: TObject);
        procedure ToolButton2Click(Sender: TObject);
        procedure N4Click(Sender: TObject);
        procedure N9Click(Sender: TObject);
        procedure S2Click(Sender: TObject);
        procedure ToolButton1Click(Sender: TObject);
        procedure A3Click(Sender: TObject);
        function fList(selText,selTextfather:string):string;
        procedure PageControl1Change(Sender: TObject);
        procedure V3Click(Sender: TObject);
        procedure V4Click(Sender: TObject);
        procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
        procedure SIMTELA1Click(Sender: TObject);
        procedure DBGrid1DblClick(Sender: TObject);
        procedure QReportPopPopup(Sender: TObject);
        procedure ToolButton11Click(Sender: TObject);
        procedure SpeedButton1Click(Sender: TObject);
        procedure ScrollBar1Change(Sender: TObject);
        procedure S4Click(Sender: TObject);
        procedure DBGrid1CellClick(Column: TColumn);
        procedure Table3AfterScroll(DataSet: TDataSet);
        procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
        procedure Table3PostError(DataSet: TDataSet; E: EDatabaseError;
          var Action: TDataAction);
      private
        { Private declarations }
      public
        { Public declarations }  end;var
      mainfrm: Tmainfrm;implementationuses edit, house_info, card_report, qreport, splash, setCenter;
    {$R *.DFM}procedure Tmainfrm.X1Click(Sender: TObject);
    begin
    close;
    end;procedure Tmainfrm.A2Click(Sender: TObject);
    var myname,type_id,t1,t2,father:string;
        catnode:tTreenode;
      begin
       case TreeView1.Selected.ImageIndex of
        0:begin
          t1:='添加新地块';
          t2:='请输入新添的地块名称:';
          end;
        1:begin
          t1:='添加新楼幢';
          t2:='请输入新添的楼幢名称:';
          end;
        2:begin
          t1:='添加新楼层';
          t2:='请输入新添的楼层名称:';
          end;
        3:begin
          t1:='添加新房间';
          t2:='请输入新添的房间名称:';
          end;
        4:begin
          saleEditFrm.show;
          exit;
          end;
         end;
      myname:=inputBox(t1,t2,'');
      if myname<>'' then
      begin
       table1.filter:='';
       table1.filtered:=true;
       if table1.Locate('name',myname,[]) and ((TreeView1.Selected.ImageIndex=0) or (TreeView1.Selected.ImageIndex=1)) then
       begin
        ShowMessage('对不起,已经存在'''+myname+''',请另取名称!');
        exit;
       end;
       if treeView1.selected.ImageIndex<>0 then
       begin
        if treeView1.selected.ImageIndex=3 then
         begin
         table1.first;
         table1.locate('name',treeview1.Selected.Parent.Text,[]);
         father:=table1.fieldByName('id').Text;
         table1.first;
         table1.locate('name;father',varArrayof([treeView1.Selected.Text,father]),[]);
         end
        else
        table1.locate('name',treeView1.Selected.Text,[]);
        father:=table1.fieldByName('id').Text;
        type_id:=table1.fieldByName('type_id').Text;
       end
       else begin
       father:='0';
       type_id:='0';
       end;
      if table1.canModify then
      begin
      table1.Append;
      table1.fieldbyName('name').value:=myname;
      table1.fieldByName('father').value:=father;
      table1.fieldByName('type_id').value:=strtoint(type_id);
      table1.post;
      end;
      catNode:=TreeView1.Items.AddChild(TreeView1.Selected,myname);
      catNode.ImageIndex:=TreeView1.Selected.ImageIndex+1;
      catNode.selectedIndex:=5;
      end;
    end;procedure Tmainfrm.D2Click(Sender: TObject);
    begin
      if MessageDlg('确定要删除 '+treeView1.selected.text+' 吗?',mtInformation,[mbOK,mbCancel],0)=mrOk then
      begin
      table1.filter:='';
      table1.filtered:=true;
        if table1.locate('name',treeView1.selected.text,[]) then
        begin
        table1.delete;
        treeView1.Items.Delete(treeView1.Selected);
        end
        else showMessage('数据有误,不能正常删除!');
       end;
    end;procedure Tmainfrm.FormCreate(Sender: TObject);
    var
      catnode,child,child1:ttreenode;
      id,father:string;
    begin
      treeview1.items.clear;
      catnode:=treeview1.Items.AddFirst(nil,'所有楼幢名单');
      catnode.ImageIndex:=0;
      catnode.Selectedindex:=0;
      table1.filter:='';
      table1.filtered:=true;
      table1.filter:='father=''0''';
      table1.filtered:=true;
      if table1.Active=false then table1.active:=true;
      table1.First;
      while not table1.Eof do
      begin
       id:=table1.fields[0].asString;
        child:=treeview1.Items.AddChild(treeview1.items.GetFirstNode,table1.Fields[1].Text);
        child.ImageIndex:=1;
        child.Selectedindex:=5;
        father:=table1.Fields[0].text;
        table2.filter:='';
        table2.filtered:=true;
        table2.filter:='father='+id;
        table2.Filtered:=true;
        if table2.Active=false then table2.active:=true;
        table2.first;
        while not table2.eof do
        begin
        child1:=treeview1.Items.addchild(child,table2.fields[1].text);
        child1.ImageIndex:=2;
        child1.Selectedindex:=5;
        table2.Next;
        end;
      table1.Next;
      end;
    //TreeView1.AutoExpand:=true;
      //table2.free;
    end;
    function Tmainfrm.fList(selText,selTextfather:string):string;
    var  father:string;child:tTreeNode;imgidx:smallint;
    begin
      statusBar1.Panels.Items[0].Text:=selText;
      table1.filter:='';
      table1.filtered:=true;
    if treeView1.Selected.ImageIndex=3 then
     begin
     Table1.locate('name',selTextFather,[]);
     father:=Table1.FieldByName('id').Text;
     Table1.locate('name;father',varArrayof([selText,father]),[]);
     end
    else if treeView1.Selected.ImageIndex=4 then
     begin
     result:='3';
     exit;
     end
    else Table1.locate('name',selText,[]);
      result:=table1.fieldbyname('type_id').AsString;
     if not (TreeView1.Selected.HasChildren) then
     begin
      father:=Table1.FieldByName('id').Text;
      table1.Filter:='father='+father;
      table1.Filtered:=true;
      if (table1.RecordCount<>0) then
      begin
       table1.first;
       if TreeView1.Selected.ImageIndex=3 then
       imgidx:=4
       else
       imgidx:=3;
       while not table1.eof do
       begin
        child:=treeview1.Items.AddChild(TreeView1.Selected,table1.Fields[1].Text);
        child.ImageIndex:=imgidx;
        child.Selectedindex:=5;
        table1.next;
       end;
      end;
     end;
    end;procedure Tmainfrm.C3Click(Sender: TObject);
    var changeto:string;
    begin
      table1.filter:='';
      table1.filtered:=true;
       if table1.locate('name',treeView1.selected.text,[]) then
       begin
       changeto:=inputbox('修改名称','修改 '+treeview1.selected.text+' 为:','');
       if changeto<>'' then
       begin
       if table1.canmodify then
       begin
      table1.Edit;
      table1.fieldByname('name').value:=changeto;
      table1.post;
      FormCreate(Sender);
      treeView1.FullExpand;
       end;
      end;
      end
     else
      ShowMessage('数据操作有误,请重试');
    end;procedure Tmainfrm.PopupMenu1Popup(Sender: TObject);
    begin
       D2.Enabled:=true;
       C3.Enabled:=true;
           d2.Caption:='删除'''+TreeView1.Selected.Text+'''(&D)';
           c3.Caption:='修改'''+TreeView1.Selected.Text+'''(&C)';
      case TreeView1.selected.ImageIndex of
        4: begin
           if Table3.RecordCount=0 then
           A2.caption:='添加业务记录'
           else
           A2.caption:='编辑业务记录';
           end;
        3: begin
           A2.Caption:='添加新室号';
           end;
       0: begin
           A2.Caption:='添加新地块';
           D2.Enabled:=false;
           C3.Enabled:=false;
           end;
       1:begin
           A2.Caption:='添加新楼幢';
          end;
       2:begin
           A2.Caption:='添加新楼层';
          end;
       end;
    end;procedure Tmainfrm.C4Click(Sender: TObject);
    begin
    if not c4.Checked then
     begin
     c4.Checked:=true;
     l1.Checked:=false;
     PageControl1.ActivePageIndex:=1;
     end;
    end;procedure Tmainfrm.N6Click(Sender: TObject);
    begin
    application.Minimize;
    end;procedure Tmainfrm.L1Click(Sender: TObject);
    begin
    if not L1.Checked then
     begin
     l1.Checked:=true;
     C4.Checked:=false;
     PageControl1.ActivePageIndex:=0;
     end;
    end;procedure Tmainfrm.B1Click(Sender: TObject);
    begin
    treeview1.visible:=false;
    end;procedure Tmainfrm.R2Click(Sender: TObject);
    begin
    treeview1.visible:=true;
    end;procedure Tmainfrm.ToolButton5Click(Sender: TObject);
    begin
    table3.first;
    end;procedure Tmainfrm.ToolButton6Click(Sender: TObject);
    begin
    table3.Prior;
    end;procedure Tmainfrm.ToolButton7Click(Sender: TObject);
    begin
    table3.next;
    end;procedure Tmainfrm.ToolButton8Click(Sender: TObject);
    begin
    table3.Last;
    end;procedure Tmainfrm.ToolButton2Click(Sender: TObject);
    begin
    if MessageDLG('确定要删除房号为("'+label27.caption+'")的这条记录吗?',mtInformation,[mbOK,mbCancel],0)=mrOk then
    table3.delete;
    end;procedure Tmainfrm.N4Click(Sender: TObject);
    begin
    if N4.Checked then
    begin
    ToolBar1.visible:=false;
    N4.Checked:=false;
    end
    else
    begin
    ToolBar1.visible:=true;
    N4.Checked:=true;
    end;
    end;procedure Tmainfrm.N9Click(Sender: TObject);
    begin
    if N9.Checked then
    begin
    panel2.visible:=false;
    N9.Checked:=false;
    end
    else
    begin
    panel2.visible:=true;
    N9.Checked:=true;
    end;
    end;procedure Tmainfrm.S2Click(Sender: TObject);
    begin
    if s2.Checked then
    begin
    Statusbar1.visible:=false;
    s2.Checked:=false;
    end
    else
    begin
    Statusbar1.visible:=true;
    s2.Checked:=true;
    end;
    end;
    procedure Tmainfrm.ToolButton1Click(Sender: TObject);
    begin
    if table3.FieldByName('room').asstring='' then
    begin
    if table3.canmodify then
     begin
     table3.edit;
     table3.fieldByName('room').value:=TreeView1.selected.Text;
     table3.fieldByName('floor').value:=TreeView1.selected.Parent.Text;
     table3.fieldByName('house').value:=TreeView1.selected.Parent.Parent.Text;
     table3.fieldByName('block').value:=TreeView1.selected.Parent.Parent.Parent.Text;
     end;
    end; 
    saleEditFrm.show;
    end;procedure Tmainfrm.A3Click(Sender: TObject);
    begin
    houseInfoEditFrm.Show;
    end;procedure Tmainfrm.PageControl1Change(Sender: TObject);
    begin
    if PageControl1.ActivePageIndex=0 then
     begin
     L1.Checked:=true;
     C4.Checked:=false;
     end
    else
     begin
     L1.Checked:=false;
     C4.Checked:=true;
     end;
    end;procedure Tmainfrm.V3Click(Sender: TObject);
    begin
    table3.filter:='';
    table3.filtered:=true;
    Table3.filter:='room='+DBGrid1.Fields[0].Text;
    Table3.filtered:=true;
    CardReportFrm.QuickRep1.Preview;
    end;procedure Tmainfrm.V4Click(Sender: TObject);
    begin
    QReportFrm.QuickRep1.Preview;
    end;function GetTreeViewFullPath():string;
       var CurNode:TtreeNode;father:string;
       begin
        CurNode:=mainfrm.Treeview1.selected;
        while CurNode.Parent<>nil do
        begin
         father:=CurNode.Text+'→'+father;
         CurNode:=CurNode.Parent;
        end;
      Result:=father;
    end;procedure Tmainfrm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
    if Table3.Modified then
     begin
     if MessageDlg('数据曾更改过,是否存盘?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
      Table3.Post
     end;
    end;procedure Tmainfrm.TreeView1Change(Sender: TObject; Node: TTreeNode);
    var type_id,seltext,selTextFather,father:string;CurNode:TtreeNode;
    begin
    seltext:=treeview1.selected.text;
    CurNode:=TreeView1.Selected;
    toolButton1.Enabled:=false;
     if CurNode.ImageIndex=3 then selTextFather:=CurNode.parent.Text
     else if CurNode.ImageIndex=4 then
     begin
     father:=CurNode.Text;
     toolButton1.Enabled:=true;
     end;
    father:=GetTreeViewFullPath()+father;
    Label16.Caption:=father;
    type_id:=flist(seltext,selTextFather);
     if  Treeview1.Selected.ImageIndex=0 then table3.filter:=''
      else if type_id='0' then table3.filter:='block='''+selText+''''
      else if type_id='1' then table3.filter:='house='''+selText+''''
      else if type_id='2' then table3.filter:='floor='''+selText+''' and house='''+TreeView1.Selected.Parent.Text+''''
      else if type_id='3' then table3.filter:='room='''+selText+''' and house='''+TreeView1.Selected.Parent.Parent.Text+''''
      else  table3.filter:='';
     table3.Filtered:=true;
    end;procedure Tmainfrm.SIMTELA1Click(Sender: TObject);
    begin
    SplashFrm := TSplashFrm.Create(Application);
    splashfrm.BorderStyle:=bsDialog;
    splashfrm.Caption:='关于 simtel售楼管理系统';
    splashfrm.Show;
    splashfrm.update;
    //splashform.button1.visible:=true;
    end;procedure Tmainfrm.DBGrid1DblClick(Sender: TObject);
    begin
     if table3.FieldByName('room').Asstring<>'' then
      PageControl1.ActivePageIndex:=1
     else if TreeView1.Selected.ImageIndex=4 then
     ToolButton1.Click;
    end;procedure Tmainfrm.QReportPopPopup(Sender: TObject);
    begin
     if TreeView1.Visible then
      begin
      b1.Enabled:=true;
      r2.Enabled:=false;
      end
      else begin
      b1.Enabled:=false;
      r2.Enabled:=true;
      end;
    end;procedure Tmainfrm.ToolButton11Click(Sender: TObject);
    begin
      ShellExecute (Handle, 'open',
         PChar ('c:\windows\calc.exe'), '', '', sw_ShowNormal);
    end;procedure Tmainfrm.SpeedButton1Click(Sender: TObject);
    begin
      ShellExecute (Handle, 'open',
         PChar ('http://www.xts.com.cn'), '', '', sw_ShowNormal);
    end;procedure Tmainfrm.ScrollBar1Change(Sender: TObject);
    begin
    //SendMessage(Panel1.Handle, EM_SCROLLCARET, 0, 10);
    //SendMessage(Panel1.Handle, EM_SCROLL, SB_LINEDOWN, 0)
    //PostMessage(GroupBox3.Handle, WM_VSCROLL, SB_LINEDOWN, 0);
    PostMessage(panel1.Handle, WM_VSCROLL, SB_LINEUP, 0)
    end;procedure Tmainfrm.S4Click(Sender: TObject);
    begin
    setCenterFrm.Show;
    end;procedure Tmainfrm.DBGrid1CellClick(Column: TColumn);
    begin
     if table3.FieldByName('room').asString<>'' then
     label16.caption:=Table3.fieldByName('block').AsString+'→'+Table3.fieldByName('House').AsString+'→'+Table3.fieldByName('floor').AsString+'→'+Table3.fieldByName('room').AsString;end;procedure Tmainfrm.Table3AfterScroll(DataSet: TDataSet);
    begin
     if table3.Eof then
     begin
     ToolButton7.Enabled:=false;
     ToolButton8.Enabled:=false;
     end
     else if  table3.Bof then
     begin
     ToolButton5.Enabled:=false;
     ToolButton6.Enabled:=false;
     end
     else
     begin
     ToolButton5.Enabled:=true;
     ToolButton6.Enabled:=true;
     ToolButton7.Enabled:=true;
     ToolButton8.Enabled:=true;
     end; if table3.FieldByName('room').AsString='' then
     begin
     label27.caption:='没有指定房号或者该房号业务记录为空,禁止编辑';
     pageControl1.Pages[1].Enabled:=false;
     end
     else
     begin
     pageControl1.Pages[1].Enabled:=true;
     label27.caption:=table3.fieldbyName('block').AsString+'→'+table3.fieldbyName('house').AsString+'→'+table3.fieldbyName('floor').AsString+'→'+table3.fieldbyName('room').AsString;
     end;
    end;procedure Tmainfrm.Table3PostError(DataSet: TDataSet; E: EDatabaseError;
      var Action: TDataAction);
    begin
    ShowMessage('警告! 数据存盘失败!');
    Exit;
    end;end.-------------MainFrm Code ---The End-----------------------------
      

  5.   

    呵呵!
    不要当作垃圾哦
    我给all up 加分怎么没反应?
    还是显示0