社区
网络及通讯开发
帖子详情
new出来的idicmpclient的onreply事件怎么响应?
lo0P
2003-07-30 03:38:38
想用idicmpclient作个多线程的网络连通性检测软件
可是不知怎么出来reply
在h中定义
void __fastcall icmpReply(TObject *Sender,
const TReplyStatus &AReplyStatus);
程序里设置
icmp->OnReply=icmpReply;
不行
该怎么办?
...全文
183
17
打赏
收藏
new出来的idicmpclient的onreply事件怎么响应?
想用idicmpclient作个多线程的网络连通性检测软件 可是不知怎么出来reply 在h中定义 void __fastcall icmpReply(TObject *Sender, const TReplyStatus &AReplyStatus); 程序里设置 icmp->OnReply=icmpReply; 不行 该怎么办?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lo0P
2003-08-15
打赏
举报
回复
季头实在是好人
同时也感谢其他帮助我的人
lo0P
2003-08-14
打赏
举报
回复
up
jishiping
2003-08-14
打赏
举报
回复
没有用过TIdIcmpClient这个控件,后面的就不知道如何做了。
lo0P
2003-08-11
打赏
举报
回复
帮忙啦,再出50分但给解决问题的人
lo0P
2003-08-08
打赏
举报
回复
谢谢季老大,程序通了
但是目的没有达到,
void __fastcall TForm1::icmpReply(TComponent *Sender,
const TReplyStatus &AReplyStatus)
{
ShowMessage("ok");
}
在icmp->Ping();之后icmp->OnReply没有发生??
lo0P
2003-08-07
打赏
举报
回复
还是没有搞定,错误成了 [C++ Error] Unit1.cpp(33): E2235 Member function must be called or its address taken
想在线程里用indy这么难么?
以下是我new indy的测试代码
//Unit1.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TIdIcmpClient *icmp=new TIdIcmpClient(this);
for(int i=0;i<lvNetState->Items->Count;i++)
{
icmp->Host=lvNetState->Items->Item[i]->Caption;
lvNetState->Tag=i;
lvNetState->Items->Item[i]->StateIndex=2;
lvNetState->Items->Item[i]->SubItems->Strings[1]=Now().CurrentTime();
Application->ProcessMessages();
//icmp->OnReply=dd(0,rsEcho);
icmp->Ping();
}
icmp->OnReply=(TOnReplyEvent)icmpReply;
}
//---------------------------------------------------------------------------
//Unit1.h
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
#include <ExtCtrls.hpp>
#include <ImgList.hpp>
#include <IdBaseComponent.hpp>
#include <IdComponent.hpp>
#include <IdIcmpClient.hpp>
#include <IdRawBase.hpp>
#include <IdRawClient.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TListView *lvNetState;
TPanel *Panel1;
TLabel *Label1;
TLabel *Label2;
TButton *Button1;
TEdit *edtTime;
TCheckBox *enTimer;
TImageList *ImageList1;
TButton *Button2;
TButton *Button3;
void __fastcall Button1Click(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
/* TEvent *icmpReply=new TEvent(TObject *Sender,
const TReplyStatus &AReplyStatus); */
void __fastcall icmpReply(TComponent *Sender,
const TReplyStatus &AReplyStatus);
void __fastcall Button3Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
jishiping
2003-08-07
打赏
举报
回复
当然了,头文件 .hpp 和 .cpp 中都要修改。
jishiping
2003-08-07
打赏
举报
回复
看了你写的错误提示,只要将函数 icmpReply 中的参数类型 TObject 改为 TComponent 就
可以了,也就是:
void __fastcall icmpReply(TComponent *Sender, const TReplyStatus &AReplyStatus);
jishiping
2003-08-07
打赏
举报
回复
将 icmp->OnReply=(TOnReplyEvent)icmpReply; 改为 icmp->OnReply = icmpReply;
lo0P
2003-08-06
打赏
举报
回复
up+
lo0P
2003-08-06
打赏
举报
回复
up
lo0P
2003-08-04
打赏
举报
回复
不行啊,大哥
无论是在h声明还是在cpp声明都不可以
头疼
猎人66
2003-08-01
打赏
举报
回复
icmp->OnReply=(TOnReplyEvent)&icmpReply;
试试
lo0P
2003-08-01
打赏
举报
回复
提示
[C++ Error] Unit1.cpp(32): E2034 Cannot convert 'void (_fastcall * (_closure )(TObject *,const TReplyStatus &))(TObject *,const TReplyStatus &)' to 'void (_fastcall * (_closure )(TComponent *,const TReplyStatus &))(TComponent *,const TReplyStatus &)'
FlySky01
2003-08-01
打赏
举报
回复
你的写法没有错
看看是不是有别的问题
或者根本没有这个事件响应
猎人66
2003-08-01
打赏
举报
回复
没有语法错误吧?
那一定是Reply事件没有发生吧?
lo0P
2003-07-31
打赏
举报
回复
up
c# serialport sample(1)
http://blog.csdn.net/wuyazhe/archive/2010/05/17/5598945.aspx 博客文章的配套代码。希望能帮助到你。
SwipeRefreshLayoutDemo 实例源码
代码为博客实例:http://blog.csdn.net/lmj623565791/article/details/24521483 有问题博客中留言
JavaScript中
new
Object()是什么?
问题引入: 写请假系统的时候,看到同学用了很多var xx =
new
Object(),不知道什么用处。 于是寻找Object()的用法。 js中var a=
new
Object()和var a={}有什么区别吗? 应该是没有区别的,两者都是生成一个默认的Object对象。js和其它语言一样,一切对象的基类都是Object,所以,
new
Object()和简易的{}是同样的空对象,就是默认的对象。本来我以为{}应该是一个没有任何属性和方法的对象,但事实证明,var a = {},a.toString()等
Flutter
事件
响应
源码分析
Flutter作为一个UI框架,本身也有自己的
事件
处理方式,本文主要阐述触摸
事件
从native传递到Flutter后是如何被widget识别以及分发的。至于native系统是如何监听触摸
事件
以及传递
事件
到Flutter,感兴趣的可以自己去了解下不同的宿主系统处理的方式也是不同的。
事件
处理流程 Flutter中对触摸
事件
的处理大致可以分为以下几个阶段: 监听
事件
的到来 对widget是否能
响应
事件
进行命中测试 将
事件
分发给通过命中测试的widget 后续将触摸
事件
直接称为event 监听
事件
解决:IDEA 中
new
Java Class 怎么没了?
前言:写代码时遇到的问题,所以记录下来。我的包名为“interface”,只有这个包及包下的文件不能建java文件。 问题 解决方式(对于普通包名) 点击应用,ok就可以了。 解决方式(对于包名为“interface”的) 将包名修改后就可以了。 解释 根据上图所示,maven项目中, Sources,表示src下main下java 这种可编译目录...
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章