奇怪使用self.adoq.next 可用 frmDDDD.adoq.next 就不可用?怎么使用窗体名反而用不了了?

解决方案 »

  1.   

    frmDDDD是哪个窗体,存在吗
      

  2.   

    呵呵,窗体名显然是正确的,纳闷就是这个了,不知道为什么,使用self.adoq.next或直接使用adoq.next可用,可是窗体名.就不可用,直接内存报错误
      

  3.   

    unit frmSCJLViewCode;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, frmMDIBasicCode, ExtCtrls, TB2Item, TB2Dock, TB2Toolbar, Grids,
      DBGrids, DB, ADODB, StdCtrls, ComCtrls;type
      TfrmSCJLView = class(TfrmMdiBasic)
        adoQ: TADOQuery;
        ds: TDataSource;
        dgView: TDBGrid;
        TBSeparatorItem2: TTBSeparatorItem;
        gpxBottom: TGroupBox;
        Label1: TLabel;
        Label2: TLabel;
        panTop: TPanel;
        Label3: TLabel;
        Label4: TLabel;
        Label5: TLabel;
        Label6: TLabel;
        dtpS: TDateTimePicker;
        dtpE: TDateTimePicker;
        txtDeptName: TEdit;
        txtAreaName: TEdit;
        txtAreaID: TEdit;
        txtDeptID: TEdit;
        labInfo: TLabel;
        TBSeparatorItem3: TTBSeparatorItem;
        txtFilter: TEdit;
        Label7: TLabel;
        procedure rbtnSaveClick(Sender: TObject);
        procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
        procedure txtAreaNameDblClick(Sender: TObject);
        procedure txtDeptNameDblClick(Sender: TObject);
        procedure rbtnReFreshClick(Sender: TObject);
        procedure rbtnDelClick(Sender: TObject);
        procedure adoQAfterScroll(DataSet: TDataSet);
        procedure txtFilterChange(Sender: TObject);
        procedure rbtnAddClick(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure FormCreate(Sender: TObject);
        procedure dgViewTitleClick(Column: TColumn);
        procedure dgViewDrawColumnCell(Sender: TObject; const Rect: TRect;
          DataCol: Integer; Column: TColumn; State: TGridDrawState);
        procedure btnFilterClick(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      frmSCJLView: TfrmSCJLView;implementation{$R *.dfm}
    uses squirrelcode;procedure TfrmSCJLView.adoQAfterScroll(DataSet: TDataSet);
    begin
      labinfo.Caption:=inttostr(adoq.RecNo)+'/'+inttostr(adoq.Recordset.RecordCount);
    end;procedure TfrmSCJLView.btnFilterClick(Sender: TObject);
    var
      strSql:string;
    begin
      strSql:='select * from T_JXC_SCJL where DoDate between '''+datetimetostr(dtps.Date)+''' and '''+datetimetostr(dtpe.DateTime)+''' and deptid like ''%'+txtdeptid.Text+'%'' and areaid like ''%'+txtareaid.Text+'%''';
      with adoq do
      begin
        close;
        sql.Clear;
        sql.Add(strSql);
        open;
      end;
        //权限判断
      if Not SetFormRbtn(self.Name,'') then
      begin
        msgboxb('权限设置失败,请联系系统管理员!');
        frmSCJLView.Close;
      end;
    end;procedure TfrmSCJLView.dgViewDrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
      if adoq.RecNo mod 2 = 0 then
        (Sender as TDBGrid).Canvas.Brush.Color := clInfoBk //定义背景颜色
      else
        (Sender as TDBGrid).Canvas.Brush.Color := clWindow; //定义背景颜色
      if not adoq.Fieldbyname('Commint').AsBoolean then
        (Sender as TDBGrid).Canvas.Font.Color:=clRed
      else (Sender as TDBGrid).Canvas.Font.Color:=clGreen;
      
      (Sender as TDBGrid).DefaultDrawColumnCell(Rect,DataCol,Column,State);
    end;procedure TfrmSCJLView.dgViewTitleClick(Column: TColumn);
    //排序
    var
      SortString:String;
    begin
      if Column.DropDownRows=7 then
        begin
          SortString:= Column.FieldName+ ' ASC';
          Column.DropDownRows:=6;
        end
      else
        begin
          SortString:= Column.FieldName+ ' DESC';
          Column.DropDownRows:=7;
        end;
      TADODataSet(DGview.DataSource.DataSet).Sort:=SortString;
    end;procedure TfrmSCJLView.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      inherited;
      frmSCJLView:=nil;
    end;procedure TfrmSCJLView.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
    //  inherited;
      if GMBCheckForm('frmSCJL') then
      begin
        msgboxb('窗体生产数据打开,不能关闭本窗体');
        CanClose:=false;
      end
      else CanClose:=true;end;procedure TfrmSCJLView.FormCreate(Sender: TObject);
    begin
      dtps.Date:=Trunc(now)-7;
      dtpe.Date:=Trunc(now);
      btnFilterClick(self);
    end;procedure TfrmSCJLView.rbtnAddClick(Sender: TObject);
    begin
      GMBFormCreate('frmSCJL');
    end;procedure TfrmSCJLView.rbtnDelClick(Sender: TObject);
    begin
        if adoq.FieldByName('NBID').AsString='' then exit;
        GMBOpenFormDoc('frmSCJL',adoq.FieldByName('NBID').AsString);
    end;procedure TfrmSCJLView.rbtnReFreshClick(Sender: TObject);
    begin
      btnFilterClick(self);
    end;procedure TfrmSCJLView.rbtnSaveClick(Sender: TObject);
    begin
      frmSCJLView.adoQ.Next;
    end;procedure TfrmSCJLView.txtAreaNameDblClick(Sender: TObject);
    var
      AreaInfo:tAreaInfo;
    begin
       AreaInfo.strAreaID:=txtAreaID.Text;
       AreaInfo.strAreaName:=txtAreaName.text;
       AreaInfo:=GetAreaInfo(AreaInfo);
       txtAreaID.Text:=AreaInfo.strAreaID;
       txtAreaName.text:=AreaInfo.strAreaName;   btnFilterClick(Self);
    end;procedure TfrmSCJLView.txtDeptNameDblClick(Sender: TObject);
    var
      DeptInfo:tDeptInfo;
    begin
       DeptInfo.strDeptID:=txtDeptID.Text;
       DeptInfo.strDeptName:=txtDeptName.text;
       DeptInfo:=GetDeptInfo(DeptInfo);
       txtDeptID.Text:=DeptInfo.strDeptID;
       txtDeptName.text:=DeptInfo.strDeptName;   btnFilterClick(Self);
    end;procedure TfrmSCJLView.txtFilterChange(Sender: TObject);
    begin
      if txtfilter.Text ='' then
      begin
        adoq.Filtered:=false;
      end
      else
      begin
        adoq.Filtered:=false;
        adoq.Filter:='nbid like '''+txtfilter.Text+'%'' or username like  ''%'+txtfilter.Text+'%''  or userID like  ''%'+txtfilter.Text+'%''';
        adoq.Filtered:=true;
      end;
    end;end.
      

  4.   

    楼主通知 你的frmDDDD窗体在哪????
      

  5.   

    倒,顺手写的,其实应该是frmSCJLView拉,反正没什么差别