首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WMMouseWheel不在Delphi中工作

WMMouseWheel是一个Windows消息,用于处理鼠标滚轮事件。在Delphi中,WMMouseWheel消息通常由VCL框架自动处理,以实现滚轮在窗体和控件上的滚动效果。

然而,如果WMMouseWheel消息在Delphi中不起作用,可能是由于以下几个原因:

  1. 控件未启用滚轮事件处理:某些控件可能需要手动启用滚轮事件处理。可以通过设置控件的MouseWheel事件为True来启用滚轮事件。
  2. 窗体或控件焦点问题:如果窗体或控件没有焦点,滚轮事件可能无法触发。可以通过设置窗体或控件的TabStop属性为True,并确保它们可以接收焦点。
  3. 滚轮事件被其他控件拦截:如果有其他控件在接收滚轮事件之前拦截了该消息,可能导致WMMouseWheel消息不起作用。可以通过检查其他控件的事件处理程序,或者使用TApplication.OnMessage事件来跟踪消息的传递和处理。
  4. 操作系统或硬件驱动问题:某些情况下,操作系统或鼠标驱动程序可能会导致滚轮事件无法正常传递给应用程序。可以尝试更新操作系统或鼠标驱动程序,或者在其他计算机上测试以确认问题是否与特定硬件或软件环境有关。

总结起来,要解决WMMouseWheel在Delphi中不起作用的问题,可以尝试启用滚轮事件处理、确保窗体或控件具有焦点、排除其他控件拦截消息的可能性,以及检查操作系统或硬件驱动是否存在问题。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • MarkdownPad 2 以及其他

    文章的主题不在于怎么处理这个东西,也不在于怎么破解这个软件。只是想说一些相关的东西,软件的加密算法用的是RSA2048,并且加密模块用的是openssl。其实个人不是很喜欢分析C#的东西,因为通常软件都会做强签名或者混淆,分析起来非常的蛋疼。 而之所以对这款软件这么感兴趣是因为前一段时间在折腾开源代码的时候开始接触到markdown这个语言。yaocoder曾经提供过一个网址支持md文件的在线编辑,但是我个人对于在线编辑没什么兴趣,并且大多数的时候md文件写好了也就直接扔到bitbucket了,所以也不需要在线保存。刚拿到这个东西的时候粗略的看了一下,免费版不能保存pdf,并且有的选项是不能设置的。刚开始的时候用ildasm进行处理,但是由于需要处理的代码太多,修改了几次效果一般,就不想去折腾了。昨天看到.NET Reflector 更新了8.0,重新到处了一下发现代码进步确实不少,至少那些明显的错误都没了。并且对于其余的错误处理起来倒是也不是十分复杂。

    03

    项目管理中,几种工作量评估方法

    在测试项目管理中或编写测试计划时,经常需要对某个测试工作进行工作量的预算,很多时候都是凭个人的工作经验进行估算的,如能结合一些常规的估算方法,有助于估算的精确度。   以下是网上找到的一些常规的估算测试工作量的方法:   1、 Ad-hoc方法   这种方法下的测试工作量不基于任何确定的期限。工作一直继续直到达到一些由管理或市场人员预先定下的时间表。或者,一直到用完了预算的经费。  这种情况普遍存在于非常不成熟的组织,并且时常有100%的错误差数。   2、开发时间的百分比法Percentage of development time。   这个方法的基本前提是测试工作量依赖于开发时间/开发工作量。首先,开发工作量使用例如LOC或FP方法被估算出来,然后使用一些探索性的方法来限制测试的工作量。  这种方法变化比较大而且通常基于以前的经验。   通常预留项目的总花费时间的35%给测试。? 5-7%给组件和集成测试? 18-20%给系统测试? 10%给接收测试(或回归测试等)   3、类比法(经验值法或历史数据法)   根据以前或相似项目(主要在项目性质,领域,规模上有相似)所积累的经验或历史数据来估算工作量。类比法估计结果的精确度取决于历史项目数据的完整性和准确度,因此,用好类比法的前提条件之一是组织建立起较好的项目后评价与分析机制,对历史项目的数据分析是可信赖的。需要收集以下相关的历史数据:? 在设计和实现阶段花费的时间? 测试工作的规模,例如用户需求的数量,页面数,功能点? 数据样式,例如实体,字段的数量? 屏幕或字段数量? 测试对象的规模,例如KLOC   4、WBS(work breakdown structure)估算法   将项目或产品分解为具体的工作,然后分别对各个工作进行时间估算,最终求和得出项目或产品的测试工作量/时间。   5、Delphi法   Delphi法是最流行的专家评估技术,在没有历史数据的情况下,这种方式可以减轻估算的偏差。Delphi法鼓励参加者就问题相互讨论。这个技术,要求有多种相关经验人的参与,互相说服对方……   Delphi法的步骤是:1、协调人向各专家提供项目规格和估计表格;2、协调人召集小组会各专家讨论与规模相关的因素;3、各专家匿名填写迭代表格;4、协调人整理出一个估计总结,以迭代表的形式返回专家;5、协调人召集小组会,讨论较大的估计差异;6、专家复查估计总结并在迭代表上提交另一个匿名估计;7、重复4-6, 直到达到一个最低和最高估计的一致。   6、PERT估计法   PERT对各个项目活动的完成时间按三种不同情况估计:一个产品的期望规模,一个最低可能估计,一个最高可能估计。用这三个估计用来得到一个产品期望规模和标准偏差的Pert 统计估计。Pert 估计可得到代码行的期望值E, 和标准偏差SD

    01

    Delphi 语言「建议收藏」

    自1995年Borland公司发布Delphi 1.0以来,Delphi受到很多开发者的亲睐,到1999年发布Delphi5,Delphi以其开发快捷、控件丰富、易于上手等优势吸引了众多的开发者,用户人数达到高潮,一度超越Visual Studio。可是好景不长,在推出Delphi7之后不久,Borland公司也走向衰败,最终被人收购,仅卖了区区7500万美元。 Borland公司倒闭的主要原因是公司财务出现困难,内部矛盾上升。但我认为深层次的原因是产品定价死板且价格过高,记得当时一套Delphi正版要卖68000人民币,而同期的Visual Studio仅卖一万多人民币。过高的定价导致很多人放弃使用正版用盗版。这可能是Borland公司财务困难的主要原因。 一、倒闭后的版本变迁 Borland公司倒闭后,先是到易博龙手中,再转到微软,最后到Embarcadero手中。Borland的最后版本是Delphi7。之后有Delphi2005到Delphi2010,这些版本基本不受Delphi开发者关注,因为D7就用得很好。Embarcadero推出DelphiXE,版本升得很快,目前已经到了XE10.2。并在XE5开始支持手机开发。引起一些Delphi的关注。 二、Delphi目前的用户人群 Borland公司倒闭后,导致很多Delphi爱好者信心产生动摇,加之Jave和.net兴起,许多开发者纷纷转向,放弃Delphi,Delphi用户群体急剧流失。经过若干年后,剩下的Delphi开发者估计只剩下三类人: 1、业余开发者,转向其他开发工具比较困难的人; 2、 Delphi死粉,这类人很少,程序员毕竟要吃饭,不会有人死抱着Delphi失业的,所谓死粉应该还是那些不愿意或有困难转向的人; 3、 手头有大量已有Delphi系统,无法全部重写,只能留在Delphi的人。 年轻的开发人员基本上不进入Delphi,大家都知道Delphi是一个没落的工具,学了也不好找工作,干脆不进来。所以,到目前,Delphi的开发者基本上是老司机。我曾去参加过一次Delphi XE的新版本发布会,参会的人基本上都在30岁以上,这还是好几年前。所以,Delphi可以说是后继无人。 老司机们的年龄最小估计也在35岁左右了,新人不进来,这些人将会在五年十年后淡出编程,大部分人到了这个年龄基本上想混个一官半职,脱离Coding的苦海。所以,Delphi命不长矣。 三、Delphi用户目前的困境 1、硬件及操作系统的升级让用户无法停留的D7上 大多数继续使用Delphi的人基本上仍在使用Delphi6或Delphi7的版本,后者人数较多。Delphi几经转手,继D7之后也出了一些版本,什么Delphi2005.net、2009、2010到现在有XE,XE都到十了。让老司机们无法继续留在D7的原因主要是操作系统及计算机硬件的升级,Delphi7之前的版本在XP 32位系统下运行很好,但到后面的Win7及64位系统就不灵了,加以对多核CPU的支持也没有。XP已经不被微软支持等。这样又迫使部分人离开Delphi,剩下的老司机考虑往XE上寻求升迁老的系统。 2、XE对Windows开发支持不好 从Delphi XE最新的版本取向来看,Embarcadero似乎更专注于移动开发,最新的版本还想走向Linux,而放弃对Windows的支持。D6和D7只专注于Windows上的开发,现在XE要同时支持Windows、Android、IOS和Linux,可谓战线拉得太长。对Windows的开发支持感觉越来越差。要知道现在主要用户是老司机,老司机走老路,EXE+DLL,他们要把老系统迁到新工具下,才能去继续按老方法使用Delphi的新功能,开发Android、IOS和Linux,但XE好象一到DLL就不行,这就不能解决老司机们的后顾之忧,老司机们的后顾之忧就是要把他们的那些旧坛坛罐罐搬到新的XE上面来,没有解决这个之前,他们不会心思去用XE的新功能。 另外,Delphi写Android、IOS和Linux不就是为老司机们准备的吗,新司机谁他娘的还用Delphi这破东西呢,何况Android、IOS和Linux下本身就有很多开发工具都是开源免费的,又正宗又原生态、又成熟又用者众,Delphi真是一点优势都没有,除了让那些只会Delphi又不愿离开Delphi的老司机用,还有谁用呢。 再说,用Delphi开发Android和IOS永远会落在别人屁股后面。因为Android是Google的,IOS是苹果的,这两家都有自己的开发工具,当Android和IOS升级时,人家自己系统立即支持新看到本,而Delphi还要等到Embarcadero是否

    02

    系统架构师论文-论软件三层结构的设计(备件采购项目)

    随着中间件与Web技术的发展,三层或多层分布式应用体系越来越流行。在这种体系结构中,将应用功能分成表示层、功能层和数据层三部分。 本人在去年参加了一个备件流程管理项目的开发,在此项目中担任需求分析和结构设计等工作。结合需求分析结果和该单位的实际情况,在该项目中我们采用C/S和B/S的混合模式,客户端使用的是Delphi和FrontPage进行开发,中间件我们采用的是COM+,使用Delphi进行开发,后台使用SQLServer据库。本文详细描述三层结构的设计过程,重点讨论中间件的设计过程和在设计实施过程中碰到的一些问题以及解决的方法,文章最后说明了采用三层 结构带来的效果,以及可以改进的地方。

    02

    手动脱壳VMP

    个人在学习脱VMP加壳的过程中总结的一个步骤。按照这个步骤,包括VMP1.6—2.0在内应该有70%-80%能脱壳。脱不了的也别问我,我也刚开始学习。我还想找人问呢。 想要脱VMP的壳,首要工作当然是要找一个强OD啦!至于是什么版本的OD自己多试验几个,网上大把大把的,一般来说只要加载了你想脱的VMP加壳程序不关闭都可以。 其次就是StrongOD.dll这个插件了,现在用的比较多的就是海风月影,同样网上也是大把大把的。下载回来后复制到你的OD程序所在的文件夹里面的plugin里。StrongOD的设置选项搞不懂就全部打钩。 接下来要做的工作就是搞清楚我们要脱壳的程序编程的语言了,可以用PEID或者fastscanner查看,如果在这里看不到也可以在OD载入以后通过里面的字符串判断了。例如VB的程序会出现MSVB----/VC的会出现MSVC---等等。这些都是程序运行所需要的windows链接文件。 做完这些预备工作接下来当然是用OD载入文件啦。文件载入后在反汇编窗口CTRL+G搜索VirtualProtect(注意V跟P要大写,至于为什么要搜索这个别问我)。一般来说搜索的结果会出现以下的类似: 7C801AE3 E8 75FFFFFF call kernel32.VirtualProtectEx 我们在这里下F2断点。然后F9运行到我们下的这个断点。接下来我们就要注意观察堆栈窗口了。一般来说当我们F9运行到我们上面下的断点的时候在堆栈窗口会出现以下类似: 0012F66C 00401000 |Address = TradeCen.00401000 0012F670 000280D1 |Size = 280D1 (164049.) 0012F674 00000004 |NewProtect = PAGE_READWRITE 0012F678 0012FF98 \pOldProtect = 0012FF98 我们要注意观察的就是在接下来我们F9运行的时候,ADDRESS和NEWPROTECT这两行的变化。按F9-速度别太快,直到NewProtect项变为PAGE_READONLY,这时候程序就释放完毕了。 0012F66C 0042A000 |Address = TradeCen.0042A000 0012F670 000069DE |Size = 69DE (27102.) 0012F674 00000002 |NewProtect = PAGE_READONLY 0012F678 0012FF98 \pOldProtect = 0012FF98 现在可以取消刚才我们下的断点了。接下来就是找OEP了。找OEP的时候我个人的一个经验就是OEP一般就在接近上面的ADDRESS地址的附近。例如上面的地址是0042A000,我一般就在这个基础上减到420000搜索程序的特征段,当然我们也可以直接跳到401000开始搜索。虽然我们搜索的范围比较大,但是因为我们搜索的是命令序列,所以工作量还不是很大。 废话不多说,CTRL+G--上面的地址,然后CTRL+S 查找命令序列。命令序列的内容就是我们用查到的编程语言的特征段。我们可以在特征段里面选择两三句固定不变的命令查找。例如VC++6.0的特征段是 0046C07B U> 55 push ebp 0046C07C 8BEC mov ebp,esp 0046C07E 6A FF push -1 0046C080 68 18064C00 push UltraSna.004C0618 0046C085 68 F8364700 push UltraSna.004736F8 0046C08A 64:A1 00000000 mov eax,dword ptr fs:[0] 0046C090 50 push eax 0046C091 64:8925 00000000 mov dword ptr fs:[0],esp 0046C098 83EC 58 sub esp,58 0046C09B 53 push ebx 0046C09C 56 push esi 0046C09D 57 push edi 我们可以只搜索前三条命令。找到符合前三条命令的,我们在对照接下来的命

    02

    关于提高软件开发知识的建议

    1、分享第一条经验:“学历代表过去、能力代表现在、学习力代表未来。” 其实这是一个来自国外教育领域的一个研究果。相信工作过几年、十几年的朋友对这个道理有些体会吧。但我相信这一点也很重要:“重要的道理明白太晚将抱憾终生!”所以放在每一条,让刚刚毕业的朋友们早点看到哈! 2、一定要确定自己的发展方向,并为此目的制定可行的计划。 不要说什么,“我刚毕业,还不知道将来可能做什么?”,“跟着感觉走,先做做看”。因为,这样的观点会通过你的潜意识去暗示你的行为无所事事、碌碌无为。一直做技术,将来成为专家级人物?向管理方向走,成为职业经理人?先熟悉行业和领域,将来自立门户?还是先在行业里面混混,过几年转行做点别的?这很重要,它将决定你近几年、十年内“做什么事情才是在做正确的事情!”。 3、软件开发团队中,技术不是万能的,但没有技术是万万不能的! 在技术型团队中,技术与人品同等重要,当然长相也比较重要哈,尤其在mm比较多的团队中。在软件项目团队中,技术水平是受人重视和尊重的重要砝码。无论你是做管理、系统分析、设计、编码,还是产品管理、测试、文档、实施、维护,多少你都要有技术基础。算我孤陋寡闻,我还真没有亲眼看到过一个外行带领一个软件开发团队成功地完成过软件开发项目,哪怕就一个,也没有看到。倒是曾经看到过一个“高学历的牛人”(非技术型)带一堆人做完过一个项目,项目交付的第二天,项目组成员扔下一句“再也受不了啦!”四分五裂、各奔东西。那个项目的“成功度”大家可想而知了。 4、详细制定自己软件开发专业知识学习计划,并注意及时修正和调整(软件开发技术变化实在太快)。 请牢记:“如果一个软件开发人员在1、2年内都没有更新过自己的知识,那么,其实他已经不再属于这个行业了。”不要告诉自己没有时间。来自时间管理领域的著名的“三八原则”告诫我们:另外的那8小时如何使用将决定你的人生成败!本人自毕业以来,平均每天实际学习时间超过2小时。 5、书籍是人类进步的阶梯,对软件开发人员尤其如此。 书籍是学习知识的最有效途径,不要过多地指望在工作中能遇到“世外高人”,并不厌其烦地教你。对于花钱买书,我个人经验是:千万别买国内那帮人出的书!我买的那些家伙出的书,!%全部后悔了,无一本例外。更气愤的是,这些书在二手市场的地摊上都很难卖掉。“拥有书籍并不表示拥有知识;拥有知识并不表示拥有技能;拥有技能并不表示拥有文化;拥有文化并不表示拥有智慧。”只有将书本变成的自己智慧,才算是真正拥有了它。 6、不要仅局限于对某项技术的表面使用上,哪怕你只是偶尔用一、二次。 “对任何事物不究就里”是任何行业的工程师所不应该具备的素质。开发windows应用程序,看看windows程序的设计、加载、执行原理,分析一下pe文件格式,试试用sdk开发从头开发一个windows应用程序;用vc++、delphi、java、net开发应用程序,花时间去研究一下mfc、vcl、j2ee、net它们框架设计或者源码;除了会用j2ee、jboss、spring、hibernate等等优秀的开源产品或者框架,抽空看看大师们是如何抽象、分析、设计和实现那些类似问题的通用解决方案的。试着这样做做,你以后的工作将会少遇到一些让你不明就里、一头雾水的问题,因为,很多东西你“知其然且知其所以然”! 7、在一种语言上编程,但别为其缚了思想。 “代码大全”中说:“深入一门语言编程,不要浮于表面”。深入一门语言开发还远远不足,任何编程语言的存在都有其自身的理由,所以也没有哪门语言是“包治百病”的“灵丹妙药”。编程语言对开发人员解决具体问题的思路和方式的影响与缚的例子俯拾皆是。我的经验是:用面对对象工具开发某些关键模块时,为什么不可以借鉴c、c51、汇编的模块化封装方式?用传统的桌面开发工具(目前主要有vc++、delphi)进行系统体统构设计时,为什么不可以参考来自java社区的ioc、aop设计思想,甚至借鉴像spring、hibernate、jboss等等优秀的开源框架?在进行类似于实时通信、数据采集等功能的设计、实现时,为什么不可以引用来自实时系统、嵌入式系统的优秀的体系框架与模式?为什么一切都必须以个人、团队在当然开发语言上的传统或者经验来解决问题???“他山之石、可以攻玉”。 8、养成总与反思的习惯,并有意识地提炼日常工作成果,形成自己的个人源码库、解决某类问题的通用系统体系构、甚至进化为框架。 众所周知,对软件开发人员而言,有、无经验的一个显著区别是:无经验者完成任何任务时都从头开始,而有经验者往往通过重组自己的可复用模块、类库来解决问题((其实这个论不应该被局限在软件开发领域、可以延伸到很多方面)。这并不是说,所有可复用的东西都必须自己实现,别人成熟的通过测试的成果也可以收集、整理、集成到自己的知识库中。但是,最好还

    04

    Delphi教程推荐

    非常适宜Delphi初学者。 选择Delphi开发同学的眼光是不错的, 由于使用Delphi开发应用软件可以提高编译的效率, 前提是你要好好学习Delphi教程, 对你以后的开展肯定有很大帮助的。   Delphi(Delphi培训)是Borland公司研制的新一代可视化开发工具, 它应用范围非常广, 无论是Windows系统还是LINUX系统上都能完美运行。   书名:《Delphi2005程序设计教程》  作/译者:刘瑞新  出版社:机械工业出版社  出版日期:2005年07月  内容提要  本Delphi教程以Delphi2005为言语环境, 以程序文语结构作为主线, 面向对象的程序设计, 建立用户界面, 菜单、多选项卡的设计, 数据库应用程序开发根本概述, 数据控制组件, 应用窗体维护数据, 使用SQL结构化查询言语, Client/Server数据库应用程序开发, 适宜教师课堂教学和先生自学。 并增加了上机实训实验、数据库应用程序实例等外容, Delphi教程适宜作为初等院校计算机及相关专业先生的教材, 也可以作为各类计算机培训班的教学用书。   目录  前言  2. 2标识符与保留字、指令字  2. 5运算符和表达式  2. 1顺序结构  3. 2选择结构  3. 4过程与函数  第4章初级数据类型  4. 1类型定义语句  4. 4集合类型  4. 7指针类型  第5章面向对象的程序设计  5. 3类的方法  5. 4类的封装与继承  5. 5异常处置  第6章建立用户界面  6. 1窗体对象  DELPHI6. 3常用组件的用法  第7章菜单、多选项卡的设计  第8章数据库应用程序开发根本概述  第9章数据访问组件  第10章数据控制组件  第11章应用窗体维护数据  第12章使用SQL结构化查询言语  上文介绍的Delphi教程的评价是很好的, 非常适宜Delphi初学者。 选择Delphi开发同学的眼光是不错的, 由于使用Delphi开发应用软件可以提高编译的效率, 你会发现Delphi更多的优点。 对你以后的开展肯定有很大帮助的。

    03
    领券