if strtoint(edit1.Text) in [0,1,7,19,21,22,23,25,31,42,53,67,69,79,80,99,102,109,110,113,119,135,137,138,139,143,161,177,389,443,456,513,544,548,553,555,568,569,635,636,666,993,1001,1011,1024,1025,1033,1080] then begin
messagebox(handle,PChar('端口有可能是系统端口请重新填写。'),PChar(self.caption),MB_OK);
exit;
end;我是不是in里面的东西太长了。有没有更好的方法,求助了。
messagebox(handle,PChar('端口有可能是系统端口请重新填写。'),PChar(self.caption),MB_OK);
exit;
end;我是不是in里面的东西太长了。有没有更好的方法,求助了。
or (strtoint(edit1.Text) in [389,443,456,513,544,548,553,555,568,569,635,636,666,993,1001,1011,1024,1025,1033,1080]) then begin
messagebox(handle,PChar('端口有可能是系统端口请重新填写。'),PChar(self.caption),MB_OK);
exit;
end;
http://www.delphibbs.com/keylife/iblog_show.asp?xid=13120
const
PortList: array[0..47] of Integer = (0,1,7,19,21,22,23,25,31,42,53,67,69,79,80,99,102,109,110,113,119,135,137,138,139,143,161,177,389,443,456,513,544,548,553,555,568,569,635,636,666,993,1001,1011,1024,1025,1033,1080);function Half_Search(Value: Integer): Boolean;
var
LowI, HighI, I: Integer;
begin
Result := False;
HighI := Length(PortList) - 1;
LowI := 0;
while(HighI > LowI)do
begin
I := (HighI + LowI) div 2;
if PortList[I] = Value then
begin
Result := true;
Break;
end
else if PortList[I] > Value then
begin
HighI := I - 1;
end
else begin
LowI := I + 1;
end;
end;
end;
...
if Half_Search(StrToInt(Edit1.Text)) then
begin
messagebox(handle, PChar('端口有可能是系统端口请重新填写。'), PChar(self.caption), MB_OK);
exit;
end;