delphi如何做到动态响应消息?

问题描述

delphi如何做到动态响应消息?

比如有三个按钮,
在按钮1按下鼠标后, 在按钮2上面释放鼠标,
结果是按钮1在响应释放鼠标的事件.

怎样做到 在按钮1按下鼠标后, 在按钮2释放就由按钮2响应,在按钮3释放就由按钮3响应?

解决方案

处理mouseup而不是mousedown或者click事件就可以了。

解决方案二:

设定一个状态,然后再MouseDown记录状态,MouseUp释放状态,然后再相应的处理单机事件

解决方案三:

为所有按钮控件添加相同的OnMouseUp事件,
if (sender as Tbutton)=button1 then showmessage(‘按钮1被释放’)
else if (sender as Tbutton)=button2 then showmessage(‘按钮2被释放’)
else if (sender as Tbutton)=button3 then showmessage(‘按钮3释放’)

时间: 2024-12-03 20:14:29

delphi如何做到动态响应消息?的相关文章

在VB中动态添加可响应消息的控件

在VB编程中,经常要根据不同的情况在运行时向窗口中添加或者删除控件,而各个控件还要响应各种事件.在一般的情况下是首先在设计时将控件加入到窗口中,在它们的各个事件中写入代码,然后将它们的Visible属性设置为False.在运行时再使控件显示出来,但是这样既不方便同时也因为在设计时在窗口中加入太多的控件而使得程序的运行速度变慢.下面我向大家介绍一种通过编程在运行时动态添加和删除控件的方法 首先建立一个工程文件,然后在Form1中加入以下的代码: Dim WithEvents cmdMyComman

dll动态库-MFC 动态创建控件不响应消息

问题描述 MFC 动态创建控件不响应消息 按照工程的要求,我必须建立一个类(动态链接库中),这个类是从CWnd派生的,里面的控件全部要求动态生成,而我这个类会作为一个Dialog的成员变量. 目前动态创建控件可以实现,但是控件却不响应消息,我认为是消息只在Dialog中,没法传到其成员变量中,不知道是不是这个原因--请大神帮忙! 我做了一个很简单的程序,请大神帮忙分析一下,灰常灰常感谢~ 解决方案 // MFCApplication1Dlg.h : 头文件 protected: CTestWnd

在CB中响应消息及自定义消息

在 Borland C++Builder 中,也可以象在 Delphi 中一样响应消息,只是看起来要稍复杂一点.对于系统已定义的消息,可以直接响应,而对于非系统消息可以照如下自定义: //以下代码写在头文件中:#define WM_MY_OPEN_CMDLINE_FILE (WM_USER+1) //进程间通讯的自定义消息#define WM_MY_SEARCH_NODE (WM_USER+2) //查找命令的自定义消息class TSomeForm : public TForm{//某窗体的类

Delphi获取句柄并发送消息!

Delphi获取句柄并发送消息 查找另外一个窗口的句柄: handle := FindWindow(nil,PChar('窗口的标题'));//查到窗体句柄查找子窗体:childHandle := FindWindowEx(handle,0,'子窗体类','子窗体标题'); 另外有个枚举子窗体的API,EnumChildWindows(主创体句柄,@回调函数,用户参数);用这个函数需要自己写一个回调的函数,比如:function EnumChildProc(ahWND:HWND; param:L

WebService大讲堂之Axis2(10):使用soapmonitor模块监视soap请求与响应消息

在Axis2中提供了一个Axis2模块(soapmonitor),该模块实现了与<WebService大讲堂之Axis2(9): 编写Axis2模块(Module)>中实现的logging模块相同的功能,所不同的是,logging模块直接将SOAP请 求与响应消息输出到Tomcat控制台中,而soapmonitor模块利用applet直接在页面中输出SOAP请求和响应 消息. 下面是配置和使用soapmonitor模块的步骤: 第1步:部署Applet和Servlet 由于axis2默认情况下

在Delphi中自定义图标的消息框

应用程序在运行当中经常要输出各种即时信息,Delphi提供了多种形式的消息对话框可以满足这些要求,尽管可以使用各种标志定制一个消息框,但仍不能将自己的图标放在消息框内,也不能修改其标准行为去创建自己的消息框,其实通过调用函数MessageBoxIndirect()就很容易绕过这些明确的限制,这是一个功能很强.易于使用的函数. 此函数在WINDOWS单元里面,文件位于Delphi安装路径Source\Rtl\Win里面,需要指出的是,Delphi的原代码中它的返回值类型是BOOL型,而实质上它的返

在Delphi中使用动态图标

在应用程序的编写中,组合框(ComboBox).列表框(ListBox).等常见的部件,通常不仅要用于显示文字,而且还要显示其与文字相关的图标.在一般的Windows应用程序中,这些图标的显示都要随列出的显示文本的变化而变化,例如在组合框中列出当前目录下的所有文件时,在组合框左边就显示与文件名相关联的图标,这就是所谓的动态图标.在Delphi中使用动态图标的步骤如下: 一.图标的获取 要使用动态图标,首先要解决的是如何获得显示文本和与其相关联的图标句柄.该图标通过文件关联由系统注册表决定,并且在

如何自定义IIS错误代码响应消息

  一.自定义IIS错误代码响应消息 这里的站点名称是:open 打开IIS管理器,在需要编辑的站点open右击--属性,弹出一对话框. 找到"自定义错误"选项卡 选择要编辑的HTTP错误消息编辑即可. 注意: 编辑自定义错误属性 使用该对话框可以编辑自定义错误消息.单击自定义错误消息,然后单击"编辑". 考虑到安全性和其他系统的情况,不能将某些错误自定义为指向 URL.例如,错误 401.2("未授权 - 由于服务器配置,登录失败")不允许 U

http响应头-如果某个网页的HTTP响应消息头中没有包含Content-Length,该如何判断流已读完而不被阻塞

问题描述 如果某个网页的HTTP响应消息头中没有包含Content-Length,该如何判断流已读完而不被阻塞 如题目所言,我有一个需求,需要模拟浏览器向指定URL交互,但是在取出内容时出现了问题,大多数网页都能正常抓取,因为响应头中包含了Content-Length:当遇到响应头中没有Content-Length时,代码就跑不下去了.如果一直使用readLine()方法一直读下去,如何判断流已读取到最末尾并不发生阻塞?跪求大神指点. public static void main(String