关于NMUDP的错误提示问题,谁第一个把问题解决,分都是他的了。 (200分)

  • 主题发起人 主题发起人 jieson
  • 开始时间 开始时间
J

jieson

Unregistered / Unconfirmed
GUEST, unregistred user!
问题是这样的:
当RemoteHost里的地址不能解析时,比如随便输如个'asdfa',然后发包。
过一会就会弹出一个对话框Host Lookup Canceled.
我的问题就是怎么去掉这个提示框不让他弹出来。
 

try有用吗?
 
分特,怎么看不到内容啊
 
影子老大,你去哪try去啊?
Udp发出去他就不管了。
 
自己顶一下
 
是这样的,若是地址不能解析,它会给本机发送一个消息,你可以
通过在OnDataReceived事件里检测NumberBytes的值得出
此时,NumberBytes为-1,你可以检测该值,raise相应的错误
 
或者是Abort等
 
确实可以检测,确实受到-1,但是不能阻止他弹出对话框,我要的是不让他弹对话框
 
???
我记得可以的呀,我就是做了一个QQ呀
别急,等我再看看
 
好的,希望你能找到
 
是这样的:NMUDP控件有一个事件为OnInvalidHost,在这里
检测,并截获错误消息
 
???解决了吗??
 
是这样的:NMUDP控件有一个事件为OnInvalidHost,在这里
检测,并截获错误消息
呵呵,你是不是没测试一下啊,你确实可以在OnInvalidHost收到消息,但是你却不能组织系统弹对话框
 
type
TfrmAdjustTime = class(TForm)
Label1: TLabel;
private
{ Private declarations }
procedure AppException(Sender: TObject; E: Exception);
end;

implementation

{$R *.DFM}


//初始化
procedure TfrmAdjustTime.FormCreate(Sender: TObject);
begin
Application.OnException := AppException;
end;

//异常处理
procedure TfrmAdjustTime.AppException(Sender: TObject; E: Exception);
begin
Memo1.Lines.Add(E.Message);
if E is ESocketError then Memo1.Lines.Add('Can not connect to Time Server!');
if E is EConvertError then Memo1.Lines.Add('Can not Convert String to DateTime!');
ClientSocket1.Close;
end;
 
楼上:不是socket啊,是udp
 
没人回,顶一下
 
还是自己up一下吧
 
后退
顶部