这更像是一个理论问题:我很好奇为什么Show
方法不会恢复形式(如wsNormal
)。
我知道节目没有设置WindowState
:
procedure TCustomForm.Show;
begin
Visible := True;
BringToFront;
end;
但是为什么?我的意思是,我希望表单在我调用 Show 时实际显示在屏幕上。显然,这并不总是会发生。更确切地说,当窗口最小化时,它不会发生。
那么,Show背后的逻辑是什么?为什么他们省略了WindowsState?
可见性
和窗口状态只是独立的属性。您可能希望更改一个而不是另一个是完全合理的。
VCL 设计人员所做的设计选择是以相当直接的方式将基础 Win32 库映射到 VCL。这意味着VCL设计人员可以灵活地做出自己的选择。例如,如果VCL按照您建议的方式设计,那么在不更改窗口状态的情况下更改可见性将变得更加困难。