社区
Delphi
帖子详情
怎样在内存中用256色小图(32X32)做鼠标的光标
symansoft
2000-05-18 09:44:00
请问各位高人:
我在一Form中有10个TImage对象,现欲实现如下功能:
1)用鼠标单击某个TImage时,鼠标的光标立刻由该图象替代,可以在表单上到处移动。
2)鼠标移出该表单时鼠标又变成箭头。
请问我该怎样实现呢?请赐教!
...全文
307
12
打赏
收藏
怎样在内存中用256色小图(32X32)做鼠标的光标
请问各位高人: 我在一Form中有10个TImage对象,现欲实现如下功能: 1)用鼠标单击某个TImage时,鼠标的光标立刻由该图象替代,可以在表单上到处移动。 2)鼠标移出该表单时鼠标又变成箭头。 请问我该怎样实现呢?请赐教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
symansoft
2000-06-02
打赏
举报
回复
256色自定义光标我已经实现,但有一点不满意,就是自画光标图案(比如一只彩球)四周的背景色是白色,而不是Form的颜色,请问如何解决这个问题呢?谢谢!
symansoft
2000-05-31
打赏
举报
回复
再次感谢Lin的不厌其烦的答复。现在问题的焦点转变为怎样把超级图标软件制作出的256色或真彩色图标的光标资源*.cur编译成*.res文件,看样子本期问题基本上解决了。
Lin
2000-05-29
打赏
举报
回复
1、手工编辑一个RC文件,例如Test.RC,包含以下内容:
...
1000 CURSOR "Test.cur"
...
2、将Test.rc加入到工程;
3、在使用时用LoadImage API,不要用LoadCursor:
Screen.Cursors[1] := LoadImage(hInstance, MakeIntResource(1000), IMAGE_CURSOR, 32, 32, LR_DEFAULTCOLOR);
Button5.Cursor := 1;
4、祝你成功。
symansoft
2000-05-29
打赏
举报
回复
Lin,我今天试用了一下你所建议的超级图标工具,功能确实强大,但有个问题,比如用它制作的光标资源*.Cur在用Borland提供的Brc32编译成*.res时却遇到“Invalid cursor format”的错误(请参看....\examples\game\swat\readme.txt),请问你如何使用的?
Lin
2000-05-28
打赏
举报
回复
symansoft:
自定义光标序号也不一定非要从5开始,如果你看看系统光标的预定义值,它们是从-22到0,所以,自定义光标只要大于0就可以了。
symansoft
2000-05-28
打赏
举报
回复
首先,感谢Lin提供了一个好软件!
关于本期问题的来由,我想做如下详细说明:
我空闲时间想设计一个象棋软件,其中32个棋子用32个TImage对象,每个棋子的Picture属性是32X32的256色BMP文件,同兵种第二个棋子的Picture从第一个中复制(比如第一只车是ChessmanRC1)如:
ChessmanRC2->Picture->Assign(ChessmanRC1->Picture);
奇怪的是,程序运行时,用鼠标拖动ChessmanRC1到ChessmanRC2上时,并不覆盖ChessmanRC2,反而钻到ChessmanRC2下面去了。没办法,只好寄希望于把棋子的Picture取代鼠标的光标,可以拖到任何地方。
我参看了Borland提供的例子游戏Swat,其中自定义光标部分如下:
Screen->Cursors[crMaletUp] = LoadCursor(HInstance, "Malet");
Screen->Cursors[crMaletDown] = LoadCursor(HInstance, "MaletDown");
上面crMaletU为5,crMaletDown为6,我不明白自定义光标序号一定要从5开始,麻烦Lin总结以下好吗?
Lin
2000-05-28
打赏
举报
回复
关于“程序运行时,用鼠标拖动ChessmanRC1到ChessmanRC2上时,并不覆盖ChessmanRC2,反而钻到ChessmanRC2下面去了”,是不是可以这样解决(我没有BCB++,没法子试):ChessmanRC1->BringToFront();
symansoft
2000-05-24
打赏
举报
回复
Lin君回答的非常好,使人茅塞顿开,不过我还得咀嚼一下。如果你提到的那个能取代Borland的ImageEdit的工具不大的话,能否直接寄给我,或告诉我其下载地址?
Lin
2000-05-24
打赏
举报
回复
symansoft:
按照我的理解,Cursor也是一个Icon,所以凡是用到彩色Cursor的地方,都可以用Icon取代,不过,热点位置只能是(0,0),这可能是Icon和Cursor的区别所在。
TIcon允许256色甚至是TrueColor,不过不能使用Borland提供的ImagEdit,得使用其他的工具(如果需要,我可以提供,它还可以编辑ANI文件哦)。在载入的时候,使用LoadImage而不要使用LoadIcon按照我的理解,LoadBitmap、LoadIcon、LoadCursor都将被LoadImage取代。
TIcon应该包含两个TBitmap,一个与,一个或,所以不能将一个TBitmap直接Assign给一个TIcon对象。
symansoft
2000-05-23
打赏
举报
回复
对不起,这几天上网线路不畅,让各位久等了.
我比较同意Lin的看法,我后来查看了帮助文件,发现TImage对象中有TIcon,且TIcon对象也包含TBitmap对象,是否可以用Assign()方法把32X32的位图直接copy到TIcon对象中,不知TIcon是否允许256色,Borland提供的图标制作工具好象只允许16色.请问我的想法是否可行?
Lin
2000-05-19
打赏
举报
回复
你的TImage最好包含是Icon,假设你的表单为TDBGrid DBGrid1:
1、用鼠标单击某个TImage时,鼠标的光标立刻由该图象替代,可以在表单上到处移动。
在Image的OnClick事件中加入:
...
//此处的1为一代表值,只要大于0即可,以免替换掉系统缺省的光标
Screen.Cursors[1] := (Sender as TImage).Picture.Icon.Handle;
DBGrid1.Cursor := 1;
...
2、It's OK,试试看?
kxy
2000-05-19
打赏
举报
回复
把鼠标隐藏,在鼠标的位置画上你的图,然后,鼠标移动到哪里,你就画在哪里:)
小程序云开发实战:通用企业产品信息展示小程序
1 课程目标 学会使用腾讯提供的云开发功能快速开发后台 数据接口,用于存储小程序
中用
到的数据 学会使用小程序中常见的一些API,比如:分享小程序,拨打手机电话,地图位置等 掌握快速上架一款小程序需要的步骤 前端相关的css以及html,vue等基础不作为本课程的重点,本课程将提供一个基于图鸟UI修改的企业产品展示前端代码,我们在此基础上使用云开发实现页面数据动态化。由于本人是后端开发,对于前端样式等不擅长,所以基本都是直接复制现成的样式
做
简单的修改,想要学习前端html,css,js,vue等基础知识的小伙伴可以不必考虑本课程,B站以及其他平台有大量的免费课程。 2 课程内容 本课程将实现一个完整功能的企业产品展示小程序,之前有人找我开发一个农用拖拉机企业展示的小程序,说是要用云开发来
做
,正好我之前没用过云开发,都是自己搭建后端API以及管理后台来开发,因此想着一边开发一边录一个云开发的课程,帮助一些同学快速入门云开发,将包括一下内容: 首页 主要产品推荐 顶部铲平轮播图展示 中间产品分类 轮播消息通知 产品价格咨询 用户留下联系方式 全部产品列表展示 产品详细信息展示 用户估价咨询表单,用户向企业出售产品,类似厂家回收 个人中心 注册登录 询价记录 拨打企业电话 查看企业地址 查看企业工作时间 3 使用技术 vue2 uniapp 图鸟UI javascript 腾讯云开发 4 需要的开发工具 图鸟原始模板:https://ext.dcloud.net.cn/plugin?id=14378 hbuilder开发工具: https://www.dcloud.io/hbuilderx.html 微信开发者工具:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
WINDOWS高级窗口的客户区域拖动技术及其应用
WINDOWS应用程序窗口一般包括两种:普通窗口和常居顶层的无标题条高级窗口。前者是由WINDOWS内部功能定制的,它具有WINDOWS应用程序窗口的所有普通特性:具有标题条、窗口边框、最大化按钮、最小化按钮和系统默认的快捷键及
鼠标
支持功能等,利用
鼠标
左键拖动该种窗口的标题条可以在屏幕上任意移动窗口,当
鼠标
光标
停在窗口边框上时可以改变窗口大小;后者是一种定制的高级窗口,它不具有普通窗口的任何属
一些界面设计规范
一:遵循一致的准则,确立标准并遵循 无论是控件使用,提示信息措辞,还是颜色、窗口布局风格,遵循统一的标准,
做
到真正的一致。 这样得到的好处:1:使用户使用起来能够建立起精确的心里模型,使用熟练了一个界面后,切换到另外一个界面能够很轻松的推测出各种功能,语句理解也不需要费神理解 2:降低培训、支持成本,支持人员不会行费力逐个指导。 3:给用户统一感觉,不觉得混乱,心情愉快,支持度增加
Win32编程API 基础篇 -- 2.一个简单的窗口 根据英文教程翻译
一个简单的窗口 例子:简单的窗口 有时人们在IRC提问,”我应该怎样制作一个窗口”。。。嗯,这恐怕不是完全这么简单好回答!其实这并不难一旦你明白你在
做
什么,但在你得到一个可展示的窗口之前还有一些事情需要我们去
做
,我们只需要简单地聊聊快速
做
下笔记,这个问题就能被很简单的回答。 我很喜欢先动手再学习。。。一下就是一个简单的窗口的程序,我们将会简短的对它进行解释说明。 ...
在Debian上用FVWM
做
自己的桌面
用FVWM
做
自己的桌面 Table of Contents 1. 前言 2. 学习步骤 3. 准备 3.1. 软件包 3.2. 字体 3.3. 图片 3.4. 参考资料 4. 环境 5. 布局 6. 配置 6.1. 文件结构 6.2. 环境变量 6.3. 启动和退出 6.4. 颜色和主题 6.5. 默认设置 6.6.
鼠标
和...
Delphi
5,386
社区成员
262,729
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章