模仿msn聊天工具的实现难点点拨
前段时间开发了网信客户端聊天工具,为了能极尽模仿msn的效果,要特别注意几个地方。
1、聊天窗体要可以单独最小化到任务栏,并且能够通过双击用户名重新恢复显示,并激活置前。
2、聊天区域必须兼容显示图片和文字以及每次说话单独的文字显示样式以及还要显示查看历史聊天记录的超链接,可用的第三方组件能满足需求的已经不多,Memo肯定不行,据说RichEdit可以,但是我觉得超级链接实现不行,而且每行不同的显示字体类型恐怕也不能满足要求,据说TRichView可以,但是没有试验,我选择了TWebbrowser组件,毕竟对html、javascript和css好结合些。
3、聊天时,动态添加聊天记录显示于聊天窗体,并根据配置文件决定是否保存聊天记录,如果保存,查看聊天记录时显示的格式问题
4、保存聊天记录用xml格式保存,保存的格式如何控制完全按照msn的保存格式。
5、查看聊天记录在新窗体中,同样用TWebbrowser来显示,加载的是保存成xml的聊天记录,格式的解析用msn的那个解析格式的xls文件即可。
6、聊天内容对特殊字符的兼容问题,比如 < 、/ 等
7、delphi对html的操作以及对html中的点击事件的如何响应问题。
8、聊天区域右键屏蔽,替换成类似msn的只有两三个自定义属性的按钮。
9、头像的变换,鼠标移动上去有指定内容提示以及变换头像,鼠标移动到名称上有另外的提示。
10、组和用户被鼠标右键点击时,显示不同的菜单。
11、用户的上线提示窗体的实现,以及显示的内容,以及自动销毁。
12、皮肤制作和贴皮肤。
基本上就是以上问题。
这些问题解决了,基本上一个几乎一样的聊天工具就出来了。
如果我们用udp协议,就可以很容易做成局域网内的聊天工具。
模仿msn聊天工具的实现难点点拨相关推荐
- 在页面上添加QQ和MSN聊天工具
1.QQ <a href="tencent://message/?uin=569004375&Site=&Menu=yes">客服</a> ...
- linux下仿qq聊天源代码,Linux+glade(GTK+)+C语言+mysql的模仿QQ聊天工具(完善版)...
[实例简介] 之前发布的版本没有带myql的运行库,好多人运行不了,这次我重新打包一份 包含了mysql 的include 和 lib库 ,这个版本大家可以在本地轻松的编译,文件包内包含了mysql的 ...
- IOS开发笔记(九)——IM聊天工具个人详情页面,自定义tableview的accessaryView
中山大学数据科学与计算机学院本科生实验报告 (2019年春季学期) 课程名称 IOS开发 任课老师 郑贵锋 年级 16 专业(方向) 软件工程(计算机应用方向) 学号 16340132 姓名 梁颖霖 ...
- 软件之聊天工具:QQ,MSN,Google talk,Skype, Lync
大学那会儿有了QQ号,里面加的是高中的同学,经常上线大家聊聊近况. 毕业后进了第一家做ERP的软件公司,大家使用MSN来沟通. 第二家公司也用MSN,同时使用Gmail企业版来收发邮件,Google ...
- 基于TCP,Socket编程,模仿腾讯QQ界面,使用Java开发的一款网络聊天工具。QQ_Chat
代码下载地址 原博客地址 QQ_Chat 基于TCP,Socket编程,模仿腾讯QQ界面,使用Java开发的一款网络聊天工具. (内含报告) 工具: Eclipse.Navicat for MySQL ...
- IRC 聊天工具(xchat,chatzilla,pidgin)入门教程
IRC,是常用于linux系统下,使用非常广泛的,古董级别的一种聊天工具,它支持普通的 文本聊天,还有文件传输功能.既然是聊天用的,自然要有客户端软件了.这次的教程,分别讲述了3种客户端软件的使用,包 ...
- h5聊天工具的开发过程及思路
这个产品的主要技术栈有,网易nim即时通信,vue-cli,muse-ui 1.在拿到这个需求时,脑袋里空的,什么想法都没有,完全懵逼,进了网易云通信的官网api查看,由于我做的是客户端的,所以重点看 ...
- 即时聊天工具混战中国
近闻微软MSN已经正式结盟中国内移动IM(移动即时通信)工具的领先企业PICA(皮咔),双方将在移动IM的技术研发和市场等领域展开深度合作.和我早期的一段时间分析的中国移动的飞信境况一样,即时聊天工具 ...
- 推荐几款优秀的网页聊天工具
可能很多人认为在网页上进行沟通是无益的,当然,我们做为个人博客又或个人站点,自然是有充分的自由,我爱聊不聊,没人管得着.但是有个问题我已经 思考了很久,为什么国内那么多的垃圾在线聊天服务商能存活呢?他 ...
最新文章
- JAVA 和JAVAC命令行
- mysql维护索引,mysql 索引优化
- vue keep-alive保存路由状态2 (高级用法,接上篇)
- 服务器上的hdfs的配置文件中,namenode不能设置成127.0.0.1或者localhost,要设置ip或者映射别名
- statusbar 尺寸 显示图标_StatusBar 图标展示流程 - 状态栏(StatusBar)镜头布局分析...- git完代码后的异常_169IT.COM...
- 《简明 Python 教程》笔记
- Mock Server实践
- 作者:姚前(1970-),男,中国人民银行征信中心副主任、高级工程师,主要研究方向为分布式系统和计算机安全。...
- 如何从Web浏览器远程监视Linux服务器和桌面
- 关于线程中断的3个重要方法总结
- centos查询是否有安装软件包
- 比特币 的 正统 ——BCH
- vscode中怎样格式化js代码_vscode如何格式化代码
- 系统架构图 云架构案例
- 使用python发送qq邮件
- BZOJ.4453.cys就是要拿英魂!(后缀数组 单调栈)
- 2018中南大学 计算机考研分数,2018中南大学考研分数线多少分?
- 我参加NVIDIA Sky Hackathon 训练文件的路径设置
- 超级爆笑学生作文大全
- lstm需要优化的参数_通过Keras 构建基于 LSTM 模型的故事生成器
热门文章
- 禁止输入表情及其他符号
- 微型计算机系统结构中的总线有哪三种,微机原理习题答案
- iOS-自己定义键盘选择器
- vue微信浏览器安卓正常 ios config 报错 “errMsg“:“config:invalid问题
- 多疗程40Hz tACS对阿尔茨海默病患者海马灌注的影响
- java 怎么判断1_1.0_1.00是同一个数_编程练习-判断是否为易混淆数
- canvas电子画板 涂鸦、橡皮擦、保存图片,图片放大缩小
- 2022年自考专业(工商企业管理)企业经营战略概论练习题
- 开源项目推荐:推荐5款前端的开源项目,vue、uniapp、react学无止境用无止境_
- bzoj3990【SDOI2015】排序