windows - Delphi:如何知道 TEdit 何时更改大小?

标签 windows delphi events resize editbox

我需要在编辑框改变大小时更新它周围的项目。

TEdit 没有OnResize 事件。

编辑框可以在不同时间调整大小,例如:

  • 在代码中更改宽度/高度
  • 表单缩放以进行 DPI 缩放
  • 字体已更改

我确定还有其他我不知道的。

我需要一个事件来知道编辑框何时改变了它的大小。有没有我可以将编辑框子类化并抓取的 Windows 消息?

最佳答案

OnResize 声明为 TControl 的 protected 属性。您可以使用所谓的“cracker”类公开它。不过,这有点像 hack。

type
  TControlCracker = class(TControl);

...

procedure TForm1.FormCreate(Sender: TObject);
begin
  TControlCracker(Edit1).OnResize := MyEditResize;
end;

procedure TForm1.MyEditResize(Sender: TObject);
begin
  Memo1.Lines.Add(IntToStr(Edit1.Width));
end;

关于windows - Delphi:如何知道 TEdit 何时更改大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1423411/

相关文章:

c - libusb 无法在 Windows 上打开 CDC 设备,但可以在 Linux 上打开

c++ - CAN 总线通信 - MSG 结构 (WinUser.h) Linux 等价物

sql - 我是否需要在执行查询修改我的记录后执行 SELECT 查询才能查看更改后的结果?

delphi - Delphi 中类似 WinDirStat 的控件

C#:触发事件时的不同语法形式

c# - 向 MemoExEdit 控件添加字符计数器

c# - 如何在多个操作系统版本上测试 Windows 应用程序

windows - curl:(3)URL位置1中不匹配的括号:

windows - Windows API 调用的内存泄漏问题 - Delphi

php - 如何通过配置而不是模块 Bootstrap 附加事件监听器?