如何避免在 TEdit 聚焦时按下 Escape 时发出叮当声?

2024-01-02

在我几年前开发的代码中,我经常使用它来随时按 Escape 键关闭当前表单:

procedure TSomeForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
    if key = #27 then close;
end;

此行为是为 TForm 定义的。表格的KeyPreview属性设置为True让表单在任何其他组件之前对按键做出反应。对于程序的最佳部分来说,这一切都运行得非常好,但是,当 TEdit 组件聚焦于声音(adingWindows 使用声音来表示无效操作)发出。它仍然工作正常,但我从未完全消除声音。

这有什么问题吗?


重新创建的步骤:

  • 新的 VCL Forms 应用程序,将表单的 KeyPreview 设置为 true
  • 在事件选项卡上双击 onKeyPress 事件并输入虚拟代码:

    如果 key=#27 那么 ;

  • 将 TListBox、TCheckBox、TEdit 添加到表单并运行应用程序

  • 在应用程序中尝试按 Esc 键,但没有任何反应,如虚拟代码所指定
  • 聚焦 TEdit 并按 Esc。没有任何反应,但会播放声音。

您收到叮当声是因为您将 ESC 留在了输入中。看看 Key 是如何var?将其设置为#0,即可消除叮当声。这使其免于进一步处理。

procedure TSomeForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
    if key = #27 then 
    begin
      key := #0;
      close;
    end;
end;

KeyPreview 就是这样,预览将传递给控件的内容,除非您停止它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何避免在 TEdit 聚焦时按下 Escape 时发出叮当声? 的相关文章

  • 为什么图标按钮不居中?

    我正在开发 Flutter 应用程序 但我不明白为什么我的图标按钮没有位于页面中间的中心 我将代码包装在Center 这是我的页面 https i stack imgur com I08dJ jpg https i stack imgur
  • Writeln 能够支持 Unicode 吗?

    考虑这个程序 APPTYPE CONSOLE begin Writeln Z end 使用 Consolas 字体的控制台上的输出是 Z Windows 控制台非常有能力支持 Unicode 如该程序所示 APPTYPE CONSOLE u
  • 使用 Delphi 的 7-Zip?

    我想使用 Delphi 的 7 Zip DLL 但一直找不到合适的文档或示例 有谁知道如何使用 Delphi 的 7 Zip DLL 自版本 1 102 起JEDI 代码库 http wiki delphi jedi org index p
  • 当系统文件实际存在时找不到它

    系统找不到alg exe但它确实存在 c windows system32 alg exe 我最近从 Win 7 x86 迁移到 x64 当我使用 x86 时 我对此没有任何问题 尝试了 Delphi 7 和 XE2 我正在使用的代码 if
  • Swift:更新 UI - 主线程上的整个功能还是只是 UI 更新?

    我读到 UI 应该始终在主线程上更新 然而 当谈到实现这些更新的首选方法时 我有点困惑 我有各种函数可以执行一些条件检查 然后使用结果来确定如何更新 UI 我的问题是整个函数应该在主线程上运行吗 应该只更新 UI 吗 我可以 应该在另一个线
  • 从 C++ .dll 到 Delphi Forms 应用程序的 PostMessage 问题

    我有用 Delphi 7 编写的 Windows 窗体应用程序和使用 MFC 编写的 C dll 目前 我正在尝试实现从 dll 到主可执行文件的基本消息发布 以在进度条上显示用户计算过程 但遇到了几个问题 让我先描述一下我的方法 我在 D
  • 我想制作具有3D效果的幻灯片菜单,如下图所示

    我可以使用此代码制作滑块 但我不知道如何制作3D import android os Bundle import android support v4 app Fragment import android support v7 app A
  • 如何从后台线程有效地对 Delphi 6 框架或表单执行图像流预览?

    我有一个 Delphi 6 应用程序 用于接收和处理来自外部摄像头的图像流 我将代码放在后台线程上 因为它占用大量 CPU 而且我不希望它干扰在主线程上运行的用户界面代码 我想使用我从相机的 JPEG 帧创建的 TBitmap 来更新表单或
  • 我如何淡入/淡出 TImage?

    我有一个简单的TForm命名为Form1 Image1 是一个TImage加载了一个 PNGImage 和一个 Button1TButton测试事物 成功实现了对图像1的Alpha Blend的方法 代码如下 procedure SetPN
  • 当应用程序最小化时隐藏表单

    我有一个主表单和一个状态表单 当我的应用程序中的工作正在进行时 我会显示它们 如果工作完成我就打电话Hide状态表上出现 状态表消失 当我最小化主窗体而等待窗体可见时 就会出现问题 然后两种形式都被隐藏 这就是我想要的 但是 如果工作完成时
  • JavaFx 无法正确渲染

    我的代码由两个类组成 一是 MainGUI java 二是 Screen java 我打算为不同的屏幕创建不同的类并在需要时渲染它们 这是我当前的代码MainGUI java import javafx application Applic
  • 使用BackgroundWorker更新UI而不冻结...?

    我有以下代码用于从后台线程填充 ListView DoWork 调用 PopulateThread 方法 delegate void PopulateThreadCallBack DoWorkEventArgs e private void
  • 椭圆形留下痕迹

    我正在尝试制作一个简单的球动画 从面板的一个角开始到另一个角 我为此编写了一个程序 当我运行程序时oval or ball留下踪迹 我的意思是说 当程序运行时 它会留下 颜色痕迹 在我的程序中timer每 100 毫秒触发一个事件 以下是负
  • 项目展开时自动调整列大小

    在具有多列的树中 如何在展开 折叠和数据更新时调整列的大小以适应内容 类似的解决方案表格问题 https stackoverflow com questions 3186340 swt table auto resize all colum
  • 如何使用 DSPACK 将自定义音频缓冲区注入 DirectX 过滤器图表?

    我使用 Delphi 6 和 DSPACK 来执行一些涉及音频和 DirectX 的操作 我在 输入 方面找到了将枚举的音频输入设备之一分配给 TFilter 对象并将该过滤器连接到 TSampleGrabber 对象的位置 这为我提供了将
  • Delphi 生成的 Dylib 在 OSX 上的可靠部署

    我想在 OSX 上部署一个 dylib 它是用 Delphi 创建的 这个 dylib 应该是可由第三方应用程序加载 这看起来像是一个重复的问题 但经过大量搜索后 我找不到答案 这和这个是同一个问题 https forums embarca
  • 当用户从android后台删除应用程序时如何检测事件?

    当用户从后台删除我的应用程序时 我需要重置通知 所以我需要一个从后台删除应用程序的事件 请帮帮我 建议表示赞赏 谢谢 亲切的问候 官方安卓文档 Activity onDestroy 您的活动被销毁之前收到的最后一个电话 发生这种情况的原因可
  • 如何在 Java 中监听按键时使图像移动。

    我开始学习java编程 我认为通过游戏开发来学习java很酷 我知道如何绘制图像并听按键然后移动该图像 但是 当窗口监听按键时 是否可以使图像在窗口中来回移动 例如 当图像或物体 如宇宙飞船 在窗口中从左向右移动时 如果我按空格键 激光将在
  • 就 ADO 而言,nvarchar(max) 有多大?

    我正在尝试使用针对 ADO 的参数化查询 http msdn microsoft com en us library windows desktop ms677209 28v vs 85 29 aspx INSERT INTO Foo 名称
  • 如何使 JScrollPane 与嵌套 JPanel 一起正常工作?

    我正在使用 NetBeans 在 Java 中构建 Swing 应用程序 但我遇到布局问题 我的主框架包含一个JScrollPane其中包含一个JPanel called contentPanel其中又包含一个JPanel called l

随机推荐

  • 使用 NSBezierPath 的 NSView 上的圆角绘制得很糟糕

    在我的 ViewController 的主 NSView 中 我重写了func drawRect dirtyRect NSRect 使用在我的主视图上实现圆角的方法NSBezierPath 用同样的方法 我还指定主视图的渐变背景 overr
  • Python 只读取文本文件的最后一行

    我正在尝试从文本文件中读取 2 个 IP 地址并连接这些设备并在这些设备上运行 conf t 命令 当我尝试通过以下编码来完成这项工作时 python 仅读取文本文件中的最后一行 而不读取第一行 我应该怎么办 谢谢 import param
  • 使用字符串值创建新实例

    我有几个课程 SomeClass1 SomeClass2 如何使用字符串中的类名创建这些类之一的新实例 通常 我会这样做 var someClass1 new SomeClass1 如何从以下内容创建此实例 var className So
  • 对象引用与函数调用相同

    UserDetail functionCheck NSString str UserDetail d2 UserDetail alloc init NSLog check address gt p d2 d2 auth token str
  • R引导错误中的Phylo相关图?

    我正在尝试根据我的数据创建一个系统相关图phyloCorrelogram来自phylosignal包以测试系统发育信号的存在 我的数据在所谓的phylo4d格式并被称为tree 现在 当我跑步时phyloCorrelogram tree 我
  • 可以将 firestore 查询表示为字符串

    可以表示一个CollectionReference作为具有 getter 属性的字符串path 这对于单元测试来说非常方便 例如admin firestore collection cities doc LA path回报 cities L
  • Android/Python 如何使用RSA和PKCS1 Padding验证签名SHA256

    我是新会员 我等了两天才找到解决方案验证从android客户端到python服务器的签名 首先 我创建密钥对并从私钥生成签名 谢谢 pedrofb 我已经更新了完整的代码 验证在 python 服务器中完成 protected void o
  • 无法解析的标识符 - SKErrorPaymentCancelled [重复]

    这个问题在这里已经有答案了 昨天 随着 iOS 9 3 和 OSX 10 11 4 包括 Swift 2 2 的发布 我更新到了最新版本的 Xcode 7 3 当我构建我的应用程序时 我收到一条错误消息Use of unresolved i
  • 如何创建一个采用默认值的 CMake 变量,除非显式覆盖?

    我有一个使用 CMake 构建的 C 项目 我希望 CMakeLists txt 中的构建配置能够构建在Release默认模式 并内置Debug仅当明确指定时才模式 参考this https cmake org cmake help v3
  • Objective C - 如何编写宏

    我需要编写一个多行宏 我需要这个 因为我必须有部分代码已 粘贴 到我的代码中的特定点 我怎样才能做到这一点 从你的问题中并不清楚你真正想要什么 但是一个简单的多行宏定义如下 define FOO something something el
  • MS SQL:通过包含新表中的附加列来更改索引视图

    我需要通过包含新创建的表中的附加列值来更新现有的 MS SQL 索引视图 索引视图 CREATE OR ALTER VIEW dbo MySelectionInfo WITH schemabinding AS SELECT C Id id0
  • 在精灵上制作滚动视图锁定并放大它

    参考我之前的问题 Swift 2 0 SpriteKit 滚动视图不使用页面 https stackoverflow com questions 34849615 swift 2 0 spritekit scrollview to not
  • 如何使用 spring-boot gradle 插件进行混淆

    如何使用 Spring Boot 2 和 gradle 构建设置 proguard 混淆 你好 尝试使用其 gradle 插件和 Proguard gradle 插件设置 Spring Boot 应用程序的代码混淆 Google 主要为旧的
  • 安装工具平台特定依赖项

    有什么方法可以告诉 setuptools 或分发以在特定平台上需要包吗 在我的具体情况下 我使用readline 它是 Unix 系统上标准库的一部分 但在 Windows 上我需要pyreadline模块来替换该功能 参见这个问题 htt
  • 如何将wordpress中的下载网址路径更改为www.yoursite.com/download?

    我试图隐藏或缩短上传到 wp content uploads 文件夹的文件或图片的链接 默认情况下 在 WordPress 中 如果您上传图像 pdf 等并将其插入帖子或页面 它将具有如下链接 mysite com wp content u
  • 如何在代码隐藏中使用 Eval 来设置 Page.Title

    我有一个绑定到 ListView 控件的 SQLDataSource 但我想将部分绑定记录放入 HTML TITLE 属性中 这是我想要更改的代码隐藏文件 以便它可以使用 Eval 根据数据内容构建动态 TITLE Public Parti
  • 汇编 x86 中的 Math.h 库函数? [复制]

    这个问题在这里已经有答案了 我尝试将 Linux fedora 9 下编写的 C 代码转换为汇编 x86 代码 但是 我在 Math h 函数中遇到问题 该库中的函数 例如 ceil floor log log10 pow 在 x86 汇编
  • Java 中 volatile 关键字最简单易懂的示例

    我正在读关于volatileJava 中的关键字并完全理解其中的理论部分 但是 我正在寻找的是一个很好的案例 它展示了如果变量不存在会发生什么volatile如果是的话 下面的代码片段无法按预期工作 摘自here https stackov
  • 回发后视图状态不保留

    我在保持控件回发时的视图状态时遇到一些问题 vb net 这是我在控制中放入的一些代码 Protected Overrides Sub OnInit ByVal e As System EventArgs MyBase OnInit e M
  • 如何避免在 TEdit 聚焦时按下 Escape 时发出叮当声?

    在我几年前开发的代码中 我经常使用它来随时按 Escape 键关闭当前表单 procedure TSomeForm FormKeyPress Sender TObject var Key Char begin if key 27 then