我正在运行Delphi XE5 - 也在Delphi XE7上测试过同样的问题
如果您将MinWidth Constraint设置为200以上的MDI子窗体最小化,则边框图标(最小最大关闭)不再可见 - 或者被切断
重现的步骤
创建一个新的VCL项目
设置主窗体" FormStyle"到fsMDIForm
在项目中添加新表格
设置" FormStyle"到fsMDIChild
将MDI子窗体"约束" .MinWidth设置为500
将样式应用于项目
项目 - 选项 - 应用程序 - 设置为启用运行时主题
项目 - 选项 - 应用 - 外观 - 选择"薰衣草古典"并将默认样式设置为" Lavender Classico"
运行申请书
打开儿童表格
尽量减少儿童形式
你会注意到(最小最大关闭按钮不再可见)
有没有人知道这方面的解决方法?
临时修复
这就是我现在正在做的事情,直到我找到更好的东西。 我不相信这就是答案,所以我把它放在这里
使用以下
创建了一个单元procedure StyleFix_FormConstrainedResize(FormWindowState : TWindowState; var FormCurrentMinWidth : integer;Const MIN_WIDTH_VALUE : integer);
implementation
procedure StyleFix_FormConstrainedResize(FormWindowState : TWindowState; var FormCurrentMinWidth : integer;
Const MIN_WIDTH_VALUE : integer);
begin
if (FormWindowState = wsMinimized) then begin
if ( FormCurrentMinWidth > 0 ) then
FormCurrentMinWidth := 0;
end else if FormCurrentMinWidth <> MIN_WIDTH_VALUE then begin
FormCurrentMinWidth := MIN_WIDTH_VALUE;
end;
end;
以及具有最小宽度约束的任何表单,将该单元添加到uses子句并将该过程添加到
uses xStyleFixes;
...
procedure TfrmSubForm.FormConstrainedResize(Sender: TObject; var MinWidth,
MinHeight, MaxWidth, MaxHeight: Integer);
begin
StyleFix_FormConstrainedResize(self.WindowState, MinWidth, 500);
end;
我无法找到自动获取原始最小宽度设置的方法 因此,如果必须每次手动输入500以上硬编码,具体取决于你拥有的东西