自定义样式的 Delphi 项目

bvn4nwqk  于 2022-11-04  发布在  其他
关注(0)|答案(1)|浏览(292)

我想创建一个自定义样式的 Delphi 项目,如下图。

正如您所看到的,MainForm是透明的,并且它内部有一些组件。
如何创建透明的MainForm?
P.S:我想创建VCL项目,我画了这个图像的Photoshop。

ddhy6vgd

ddhy6vgd1#

假设您使用的是Firemonkey,因为您没有指定VCL或FMX。
实际上,您不需要为此创建样式。更简单的方法是:
1.将窗体透明属性设置为True
1.在表单上放置一个TRectangle,使其与Most left对齐,并根据自己的喜好调整颜色等。
1.在表单上放置另一个TRectangle,并将对齐方式设定为Client。然后,您可以调整透明度的Opacity属性、colorfill属性,以及borderstroke属性。
1.我看到照片的左右两边有一小块空白。这可以通过在你放置的第二个TRectangle上设置一个margin left值来实现。
现在,如果您禁用了窗体的边框,它应该看起来像您所希望的那样。我们还需要做一件事来避免控件显示为透明。我们需要在窗体上放置布局。而不是矩形。如果您将控件放置在不透明的矩形上,控件也将是透明的。如果希望控件具有相同的透明度值,请将其放置在矩形上。否则,请执行以下操作:
1.在表单上放置一个TLayout,而不是矩形。
1.将align属性设置为Contents。这将使其覆盖所有内容。
1.将布局的margin left属性设置为所放置的左侧矩形的宽度+所放置的工作区矩形的边距值,以补偿较小的空间。
1.将控件放置在布局上,它们应该以默认的不透明度显示。
最后一件要做的事情是实现窗口拖动。假设您禁用了边框,则用户将根本无法移动窗口,因为没有边框可拖动。在您希望拖动开始的组件的MouseDown事件上添加以下代码:

procedure TForm1.rctngl1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Single);
begin
  StartWindowDrag;
end;

你现在应该都做好了。
编辑:我做了一个例子后,张贴这个答案:FMX Semi Transparent Form

相关问题