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.
我知道代码可能有错,但是编译能通过也能正确运行。我自己也看不出实在郁闷了。
多谢。代码见下方。
//----------------------------------
// 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.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货