如何使用OnIdle事件

使用OnIdle事件随时监视剪贴板内容以改变弹出菜单的可执行项。

在Form1的.h的private加上:

void __fastcall OnIdle(TObject* Sender,bool& Done);

在Form1的.cpp内加上:

void __fastcall TForm1::OnIdle(TObject* Sender,bool& Done)
{
  bool TextSelected=DBRichEdit1->SelLength>0;
  N17->Enabled=TextSelected;//剪切,复制,清除
  N18->Enabled=TextSelected;
  N20->Enabled=TextSelected;
  bool CBHasText=Clipboard()->HasFormat(CF_TEXT);// 需加入#include<Clipbrd.h>
  N19->Enabled=CBHasText;//粘贴
  bool HasText=RichEdit1->Lines->Count>0;
  N21->Enabled=HasText;//全选
  bool HasChanged=RichEdit1->Modified;
  ToolButton2->Enabled=HasChanged;
  ToolButton4->Enabled=HasChanged;
}

在Form1的OnCreate内加上:

Application->OnIdle=OnIdle;

时间: 2024-12-22 02:55:37

如何使用OnIdle事件的相关文章

多层数据库开发十四:剖析几个MIDAS示范程序

                               第十四章 剖析几个MIDAS示范程序 MIDAS是Multi-Tier Distributed Application Services Suite的简称,为Delphi 4的一个关键技术.对于初学者来说,MIDAS具有相当的难度,因此,这一章详细剖析几个MIDAS示范程序,以帮助读者理解和掌握MIDAS技术. 与一般的数据库应用程序不同的是,只有当应用服务器正在运行的情况下,才能打开.编译和运行"瘦"客户程序的项目.14.

总结Selenium WebDriver中一些鼠标和键盘事件的使用

在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 WebDeriver 中,有一个专门的类来负责实现这些测试场景,那就是 Actions 类,在使用该类的过程中会配合使用到 Keys 枚举以及 Mouse. Keyboard.CompositeAction 等类. 其次,在实际测试过程中,可能会遇到某些按键没办法使用 Actions.Keys 等类来

HTML5 Canvas捕获用于游戏开发的键盘、鼠标和触摸事件

学习如何处理键盘和鼠标事件,如何阻止 Web 浏览器的默认事件行为,以及如何向游戏对象的某种逻辑表示传播事件.此外,还将学习如何处理 iPhone 和 iPad 等移动设备上与设备无关的(device-agnostic)输入. 令拥有 Flash 或 Silverlight 背景的开发人员感到惊讶的是,为 HTML5 Canvas 编写的应用程序在处理用户输入方面并没有什么特立独行之处.实质上,从启用了 JavaScript 的 Web 浏览器诞生之初开始,HTML 用户输入就涉及到使用内置于浏

frame-求救。为什么键盘监听事件不响应了。。

问题描述 求救.为什么键盘监听事件不响应了.. mport java.awt.CardLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; impor

ie bho 插件:如何获得浏览器滚动条变化事件

问题描述 ie bho 插件:如何获得浏览器滚动条变化事件 我已经写了一个简单的bho. 目的是知道浏览器的滚动条是否滚动. DISPID_DOCUMENTCOMPLETE事件可以获取. DISPID_HTMLWINDOWEVENTS2_ONSCROLL 事件不能获得. class部分: class ATL_NO_VTABLE Chellobho : public CComObjectRootEx, public CComCoClass, public IObjectWithSiteImpl,

从反射看委托与事件 委托真的是一个类

关于委托与事件,网上介绍得非常之多,在此不再赘述,本人最近需要捣鼓一些委托,因而对委托进行一 定的寻根究底,故用反射把委托的成员揪出来,且看如下代码: delegate void DelegateDemo(); static event DelegateDemo delHandle; static void Main() { delHandle += new DelegateDemo(MyDelegate_delHandle); MemberInfo[] mis = delHandle.GetT

异常处理:android中添加按钮事件,出现NullPointerException

问题描述 异常处理:android中添加按钮事件,出现NullPointerException 解决方案 在maincsactivity的oncreate的72行找,有没有对象为null 解决方案二: 对象为空,要么你的按钮对象还没初始化,要么点击代码里有空对象,你调试一下便知 解决方案三: 空指针异常,没什么难找的,Debug一下即可很快找到: 解决方案四: 空指针异常,按钮对象没有初始化 解决方案五: 可能你声明了一个View,但是你没有findViewById,或者findViewById

救命啊!鼠标事件问题

问题描述 问题:怎么让鼠标事件穿透控件?比如:PictureBox1里面有个PictrueBox2,一样大小,那么如何让鼠标事件穿过PicturBox2,来到PictureBOx1 解决方案 解决方案二:你是想让一次点击执行两个事件吗?可以吧两次的事件都写在上面的控件的事件中解决方案三:在处理PictureBox2的事件时发送相应的消息到PictureBox1.解决方案四:哪个触发事件没关系,看你想操作谁就行了解决方案五:说错这种奇葩的功能还不如说说你的需求你要做什么

C#委托和事件

委托和事件 .NET Framework 还可以广泛地将委托用于事件处理任务,如 Windows 或 Web 应用程序中的按钮 Click 事件.Java 中的事件处理通常通过实现自定义侦听器类完成,而 C# 开发人员则可以利用委托处理事件.事件的声明类似于具有委托类型的字段,区别在于事件声明前面有 event 关键字.事件通常被声明为 public,但允许使用任何可访问性修饰符.下面的示例演示了 delegate 和 event 的声明. C#  =复制代码 // Declare the de