社区
网络通信/分布式开发
帖子详情
求救:按任意键均报错,为什么啊?
freepine
2003-12-24 10:44:13
我有一个程序,实现一些消息传递功能,客户端使用
Indy TcpClient;用一个单独线程监听收到的消息。
收发消息时会动态生成或释放一些 TabSheet,
刚运行时程序正常,收发若干消息后
会出现按任意键均报错的现象,错误是Access violation,
在集成环境中运行出现异常转入调试模式也没有跳到出错代码。
可我并没有在ApplicationMessage中处理按键消息,
请教高手,问题可能出在什么地方?
我真是没办法了。天哪!!!
...全文
65
6
打赏
收藏
求救:按任意键均报错,为什么啊?
我有一个程序,实现一些消息传递功能,客户端使用 Indy TcpClient;用一个单独线程监听收到的消息。 收发消息时会动态生成或释放一些 TabSheet, 刚运行时程序正常,收发若干消息后 会出现按任意键均报错的现象,错误是Access violation, 在集成环境中运行出现异常转入调试模式也没有跳到出错代码。 可我并没有在ApplicationMessage中处理按键消息, 请教高手,问题可能出在什么地方? 我真是没办法了。天哪!!!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
freepine
2004-03-18
打赏
举报
回复
我现在自己处理了这个消息,
直接调用
TranslationMessage(Msg);
DispatchMessage(Msg);
不会报错了,
可惜Tab,Enter键对获取焦点控件的切换、处理也相应失效了,
各位有什么好办法吗?
hnhb
2004-03-17
打赏
举报
回复
帮你顶......
freepine
2004-03-17
打赏
举报
回复
啊啊啊啊,帮帮我啊
还是没有解决这个问题,
我跟踪发现在TEdit获TMemo中按键执行到Forms单元中
TApplication.IsKeyMsg时出错,
我把该函数拷贝到ApplicationMessage中自己处理按键消息,
发现执行到
if SendMessage(Wnd, CN_BASE + Message, WParam, LParam) <> 0 then
Result := True;
时出错,不知道系统为什么没有找到该控件,
我看了,wnd指针地址与刚开始执行时的值是一样的,
那为什么开始能正确相应按键消息,后来就
Access violation了呢?
请高手指教。
而且在TMemo中点鼠标右键“粘贴”可以正常反应, 会将剪贴版内容添加到Memo中,也不出错
真不知道为什么按键消息处理就错了呢.
freepine
2003-12-27
打赏
举报
回复
我不是说把edit的消息捕获给Pagecontrol,
只是屏蔽了Pagecontrol的WM_KEYDOWN消息
这样当TabSheet上没有Edit之类的控件时,按键
就不会报错,而当在Edit中按键时因为我没有处理
该消息,按说系统会缺省处理的,但是总是报错,
不知道是否和线程有关。
sunny518
2003-12-26
打赏
举报
回复
出现这种错误的原因很多,根据我经验,一般是资源没有释放,或者是资源没有分配空间就直接访问!
分派消息是循环分配的啊,该是谁的消息就是谁的啊,你是怎么捕获消息的啊!
怎么edit的keydown你也捕获给pagecocontrol了啊,难道你处理的是formkeydown
freepine
2003-12-26
打赏
举报
回复
5555,没人理我啊,再问一下。
我又试了一下,屏蔽PageControl的WM_KEYDOWN消息后不会出现错误提示
(设置PageControl的WindowProc处理发给PageControl的消息),但如果
PageControl中的某个TabSheet上有TEdit时,当该Edit获得输入焦点时
按键则仍然出现错误
这是为什么呢?请教高手Delphi是怎么在VCL控件中Dispatch消息的,
默认又是怎么处理的呢?可能是什么原因导致出现Access Violation的
呢?
Thanks for your help.
关于VScode
报错
“终端将被任务重用,按
任意键
关闭”的解决方案
关于VScode
报错
“终端将被任务重用,按
任意键
关闭”的解决方案 文章目录关于VScode
报错
“终端将被任务重用,按
任意键
关闭”的解决方案
报错
时候解决方案 这其实不是一种
报错
,有这个提示的原因是本地端口是被共享的,所以必须关闭一个进程才能执行另一个,只需要对task.json文件做一些修改即可。
报错
时候 此时的task.json为: { "version": "2.0.0", "...
【Ubuntu】vscode
报错
:终端将被任务重用,按
任意键
关闭。
vscode
报错
😱: 终端将被任务重用,按
任意键
关闭。 解决方案💉: task.json文件中添加如下内容: ```text "presentation": { "panel": "new" }/* 添加这一整块代码块 ``` panel默认为“shared“,表示共享。 改成new之后,每个进程创建新的端口。 ......
VS code
报错
:终端将被任务重用,按
任意键
关闭
后来仔细查看代码,发现是代码写错了,但是当时编译器并没有
报错
,所以当时没注意到,直到再次检查,发现是main写成了mian(苦笑),后面改正了代码,程序也就能正常编译了。我是用了Compile Run这个插件,然后在用VS code写一段C++的代码的时候,终端
报错
:将被任务重用,按
任意键
关闭。所以在遇到编译器发出这类警告的时候大家也可以检查一下自己的代码,看一下是不是代码写错了。
vscode终端将被任务重用,按
任意键
关闭的解决方法汇总以及我的使用体验
如标题所写,我出现了这个问题然后我就在博客里找,找到了很多解决方法,虽然这些解法都没有解决我的问题,但是好在我发现了一个奇怪的解法,下面我先把找到的其他解法分享一下。
C/C++关于VScode
报错
“终端将被任务重用,按
任意键
关闭”的解决方案
这其实不是一种
报错
,有这个提示的原因是本地端口是被共享的,所以必须关闭一个进程才能执行另一个,只需要对 tasks.json文件做一些修改即可。
报错
时候 此时的tasks.json为: { "version": "2.0.0", "command": "g++", "args": ["-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}.exe"], // 编译命令参数 "problemMatche
网络通信/分布式开发
1,594
社区成员
32,944
社区内容
发帖
与我相关
我的任务
网络通信/分布式开发
Delphi 网络通信/分布式开发
复制链接
扫一扫
分享
社区描述
Delphi 网络通信/分布式开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章