delphi中无法自动完成。提示代码有错。[Pascal Error] uVisitTraf.pas(1): Unable to invoke Code Completion due to errors in source code
我知道代码可能有错,但是编译能通过也能正确运行。我自己也看不出实在郁闷了。
多谢。代码见下方。
//----------------------------------
//          wh
//         2005/08/31
//
//-----------------------------------unit uvisittraf;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, winsock, Grids, DBGridEh, DBSumLst, DB, ADODB;type
   IPstrAry=array of string;
   TSrcDstTraffrm = class(TForm)
    cbbVisitTrafSrcDstYMD: TRadioGroup;
    grbVisitTrafStatBySrcIP: TGroupBox;
    lblSrcDst: TLabel;
    edtSrcDstaddr: TEdit;
    rgrSrcDstIPTraf: TRadioGroup;
    GroupBox2: TGroupBox;
    Label19: TLabel;
    Label20: TLabel;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    cbbVisitTrafficYear: TComboBox;
    cbbVisitTrafficMonth: TComboBox;
    cbbVisitTrafficDay: TComboBox;
    cbbVisitTrafficWeek: TComboBox;
    btnSrcDstTrafQry: TButton;
    btnSrcDstTrafExit: TButton;
    DBGridEh1: TDBGridEh;
    DBSumList1: TDBSumList;
    lblSrcDstTrafSum: TLabel;
    btnVisitTrafMore: TButton;
    IPDataAQ: TADOQuery;
    IPDataDS: TDataSource;
    procedure cbbVisitTrafSrcDstYMDClick(Sender: TObject);
    procedure rgrSrcDstIPTrafClick(Sender: TObject);
    procedure btnSrcDstTrafExitClick(Sender: TObject);
    procedure btnSrcDstTrafQryClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
  public
    FResultIPAry:array of string;         //全局变量,用于保存查询得到的IP地址
    { Public declarations }
end;
var
  SrcDstTraffrm: TSrcDstTraffrm;implementationuses umain, udatamodule, uIPTrafMoreInfo;{$R *.dfm}procedure TSrcDstTraffrm.cbbVisitTrafSrcDstYMDClick(Sender: TObject);
begin
   case cbbVisitTrafSrcDstYMD.ItemIndex of
   0:     //按日查询
   begin
     cbbVisitTrafficDay.Enabled:=true;
     cbbVisitTrafficMonth.Enabled:=true;
     cbbVisitTrafficWeek.Enabled:=false;
   end;
   1:
   begin
     cbbVisitTrafficDay.enabled:=false;
     cbbVisitTrafficWeek.Enabled:=false;
     cbbVisitTrafficMonth.Enabled:=true;
   end;
   2:
   begin
     cbbVisitTrafficDay.Enabled:=false;
     cbbVisitTrafficMonth.Enabled:=false;
     cbbVisitTrafficWeek.Enabled:=false;
   end;
   3:   //按周查询
   begin
     cbbVisitTrafficMonth.Enabled:=false;
     cbbVisitTrafficDay.Enabled:=false;
     cbbVisitTrafficWeek.Enabled:=true;
   end;
   end;       //end_case
end;procedure TSrcDstTraffrm.rgrSrcDstIPTrafClick(Sender: TObject);
begin
  if rgrSrcDstIPTraf.ItemIndex=0 then
      lblSrcDst.Caption:='源IP地址'
  else  lblSrcDst.Caption:='目的IP地址';    
end;procedure TSrcDstTraffrm.btnSrcDstTrafExitClick(Sender: TObject);
begin
  self.Close;
end;procedure TSrcDstTraffrm.btnSrcDstTrafQryClick(Sender: TObject);
var
   inittime,strSQL:string;
   convertedtime,temptime:int64;
   querycount:integer;
begin
  case cbbVisitTrafSrcDstYMD.ItemIndex  of
    0:                //按日
    begin
       inittime:=cbbVisitTrafficYear.Text+'-'+cbbVisitTrafficMonth.Text+'-'+cbbVisitTrafficDay.Text;
       convertedtime:=MainForm.convertunixeproctime(inittime);
       temptime:=convertedtime+86400;
    end;
    1:
    begin
        inittime:=cbbVisitTrafficYear.Text+'-'+cbbVisitTrafficMonth.Text+'-1';
        convertedtime:=MainForm.convertunixeproctime(inittime);
        temptime:=convertedtime+2592000;
    end;
    2:              //按年
    begin
        inittime:=cbbVisitTrafficYear.Text + '-1-1';
        convertedtime:=MainForm.convertunixeproctime(inittime);
        temptime:=convertedtime+31536000;
    end;
    else             //按周
    begin
        inittime:=cbbVisitTrafficYear.Text + '-1-1';
        convertedtime:=MainForm.convertunixeproctime(inittime);
        convertedtime := convertedtime + (strtoint(cbbVisitTrafficWeek.Text)-1)*604800;
        temptime:=convertedtime+604800;
    end;
   end;//end of case
   //判断输入的IP地址是否合法
   case mainform.isipaddrint(edtsrcdstaddr.text) of
   0: begin          //正确的源IP地址
     if rgrSrcDstIPTraf.ItemIndex=0  then //按源IP地址查询
       strSQL:=format('select srcaddr,dstaddr,prot,srcport,dstport,dpkts,doctets '
         +'from flow where unix_secs>= %d and unix_secs<=%d '
         +'and srcaddr=''%s''',[convertedtime,temptime,edtsrcdstaddr.Text])
     else
       strSQL:=format('select srcaddr,dstaddr,prot,srcport,dstport,dpkts,doctets '
         +'from flow where unix_secs>= %d and unix_secs<=%d '
         +'and dstaddr=''%s''',[convertedtime,temptime,edtsrcDstaddr.Text]);
     datamodule1.ADOQuerySrcDstTraf.Close;
     datamodule1.ADOQuerySrcDstTraf.SQL.Clear;
     datamodule1.ADOQuerySrcDstTraf.SQL.Add(strsql);
     datamodule1.ADOQuerySrcDstTraf.Open;
     querycount:=datamodule1.ADOQuerySrcDstTraf.RecordCount;
     if querycount=0 then showmessage('不存在符合条件的记录!')
     else begin
       DataModule1.DataSourceSrcDstTraf.DataSet.Fields[0].DisplayLabel:='源IP地址';
       DataModule1.DataSourceSrcDstTraf.DataSet.Fields[1].DisplayLabel:='目的IP地址';
       DataModule1.DataSourceSrcDstTraf.DataSet.Fields[2].DisplayLabel:='协议号';
       DataModule1.DataSourceSrcDstTraf.DataSet.Fields[3].DisplayLabel:='源端口号';
       DataModule1.DataSourceSrcDstTraf.DataSet.Fields[4].DisplayLabel:='目的端口号';
       DataModule1.DataSourceSrcDstTraf.DataSet.Fields[5].DisplayLabel:='分组数';
       DataModule1.DataSourceSrcDstTraf.DataSet.Fields[6].DisplayLabel:='字节数';
       btnvisittrafmore.Enabled:=true;       //显示更多信息
     end;//end_else
    end;       //end_case_0
    1:  begin
      showmessage('IP地址不能为空,请检查后重新输入!');       //没有设置源IP地址
      edtsrcdstaddr.SetFocus;
      end;
      else begin
        showmessage('IP地址不合法,请检查后重新输入!');     //源IP地址错误
        edtsrcdstaddr.SetFocus;
    end; //end_of_1
  end;//end of case
end;procedure TSrcDstTraffrm.FormCreate(Sender: TObject);
begin
  cbbvisittrafficmonth.Enabled:=true;
  cbbvisittrafficday.Enabled:=true;
end;
end.