我需要在编辑框改变大小时更新它周围的项目。
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/