如何从Windows 10上的可调整大小的表单中删除顶部栏?

时间:2017-10-22 12:07:04

标签: forms delphi borderless

我正在尝试删除表单的标题栏,同时保持边框具有可调整大小的形式。我将BorderStyle设置为bsNone并覆盖CreateParams程序:

procedure TMainForm.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.Style := Params.Style or  WS_BORDER or WS_THICKFRAME;
end;

我面临的唯一问题是表格上边缘的白条(胜利10):

screenshot

如何摆脱这个白条?

3 个答案:

答案 0 :(得分:5)

使用win API方式将花费大量时间并且可以证明是如此困难。如果你愿意这样,我强烈推荐它。但是对于目前这段时间,我们可以快速解决您的问题。

通过改变标题栏的样式来使用VCL Styles

转到Tools-> Bitmap Style Manager并重新打开Windows 10样式(因为你想在Windows 10中使用它)

转到Objects-> form->title并将高度更改为5.

在IDE的对象检查器中取消选中边框图标并将标题设置为' '

结果将是一个标题栏很薄的表格,它是一个边框。

enter image description here

您可以进一步修改标题栏的外观,使其看起来与边框完全相同。

并查看此Vcl.Forms.TFormStyleHook.PaintNC以确切了解如何使用样式挂钩完成此操作。

答案 1 :(得分:-1)

在Windows 10上,Delphi无法处理它! 您必须使用调整工具来控制窗口内的边框大小。 我使用winaero(www.winaero.com),并将窗口边框减小为1 并填充为零。 enter image description here

答案 2 :(得分:-1)

对于 firemonkey (fmx) 用户:您可以通过样式来实现。