- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想更改TComboBox
,以便如果我在其中键入文本或手动设置Text属性,它将触发OnChange
事件。
现在,执行ComboBox.Text := 'blah'
不会触发OnChange
事件,也不会在框中键入内容。
我尝试创建一个TComboBox
后代,我认为这是正确的方法,但是我不确定如何更改触发事件的方式。
最佳答案
据我所知,键入一个组合框将导致OnChange
事件触发。但是,确实没有修改text属性。
我要为组合框触发OnChange
的方式是处理CM_TEXTCHANGED
消息。为此的处理程序需要调用Change
方法,如果已分配OnChange
,则该方法然后将调用
作为一个简单的示例,这是一个插入器类实现:
type
TComboBox = class(StdCtrls.TComboBox)
protected
procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;
end;
procedure TComboBox.CMTextChanged(var Message: TMessage);
begin
inherited;
Change;
end;
关于delphi - Delphi-更改TComboBox的OnChange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15665686/
当我以编程方式导致下拉选择列表出现时,我无法弄清楚为什么我无法手动滚动浏览 TComboBox 组件。这是我正在使用的代码: SendMessage(ComboBox1.handle, CB_SHOW
我受到这个问题的启发:How to make a combo box with full-text search autocomplete support ? answer工作得很好,但我想调整建议列
我使用以下代码:How to make a combo box with fulltext search autocomplete support?通过搜索创建自定义TComboBox控件。 一切工作
据我所知,Combobox由两个组件组成:Edit和ListBox。如果我有编辑字段的句柄,如何获取组合框的句柄?我尝试使用 GetWindow(MyHandle, GW_HWNDNEXT),其中 M
我有一个带有 Style:= csOwnerDrawVariable; 的 TComboBox,我想以黑色而不是“灰色”显示禁用的 Font 颜色'. 这是我从这个来源得到的: procedure T
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
来自documentations : Specifies whether the drop-down closes up automatically when the user selects an
我希望在 TCombobox 上更改值的唯一方法是使用鼠标。 如果项目是 1,2 和 3,用户可以键入 4,它就会成为值。 我尝试使用OnKeyDown但不知何故我想“避免按键按下”。如何实现这一目标
我是 Delphi 的菜鸟,但请帮忙。 我在一个表单上有 7 个 TComboBox。它们的值是使用来自同一个名为 Numbers 的表的 SQL 查询分配给它们的。 procedure TForm3
在我的扩展 TComboBox 类中,我覆盖了 ComboWndProc() 过程处理程序,但是我无法从列表的滚动条中检测到 CN_VSCROLL 和 WM_VSCROLL 消息(FListHandl
我正在使用 ComboBox 来显示许多项目的列表(别担心,项目之间的差异允许通过 AutoComplete 快速选择 :-) . 此列表是在创建表单时创建的(OnCreate 事件),但为了表单在填
这是来自 TForm 的图像,其中顶部有一个 TEdit ,下面有一个 TComboBox 。 正如您所看到的,TEdit 没有 Windows 控件默认主题的经典 3D 边框。这是因为我将该组件的
假设我想从英国城镇的大列表中选择“伦敦” 设置 Combo1.AutoComplete := true; Combo1.Style := csDropdown; 如果我输入“l”,后跟“o”,然后是“
使用德尔福10.3: 在具有 Style=csOwnerDrawFixed 的所有者绘制的 TComboBox 中,我希望 DropDown 列表中的所有者绘制的项目与组合的静态部分不同。为了区分这两
我正在尝试从 TEdit 中给出的文本将项目添加到 TListBox 和 TComboBox在 TListBox TComboBox 中添加项目时,我的代码工作正常,但是当我尝试从 TListBox
我在表单上有一个 TComboBox。其 Style 属性设置为 csDropDownList。如果我打开下拉列表并使用鼠标或键盘选择一个选项并按 ENTER,下拉框将关闭,并且 ItemIndex
我有一个包含两个组合框的表单,两个组合框都包含相同的项目列表,并且需要彼此保持完美同步。 (它们代表 TPageControl 的两个不同选项卡上的相同选项列表。) 为了实现此目的,我设置了一个 Li
我正在使用Delphi XE2。我构建了一个自定义 TComboBox,以便可以轻松添加键/字符串对并处理组件析构函数中的清理工作。 全部 如果不是(ComponentState 中的 csDesig
在 Delphi 中,所有 TEdit 和 TComboBox 控件默认高度都是 21 像素。对于 TComboBox,这个大小是绝对的,尝试将其拉伸(stretch)到更大是行不通的。但就 TCom
如何通过TComboBox中指定的对象查找项目? 我有一个组合框,我在其中存储数据库中的值;名称作为项目,ID(整数)作为对象: ComboBox1.Clear; while not SQLQuery
我是一名优秀的程序员,十分优秀!