形状不规则的形状

raj*_*azo 1 delphi

许多现代应用具有不规则形状.在Delphi中执行此操作的最佳方法是什么?是否可以在不使用任何第三方VCL的情况下执行此操作?

RRU*_*RUZ 9

是可以的,您必须使用SetWindowRgn函数来设置要绘制的新窗口区域.

试试这段代码

procedure TForm1.FormCreate(Sender: TObject);
var
  region:HRGN;
begin
  region := CreateRoundRectRgn(ClientRect.left, ClientRect.top, ClientRect.right, ClientRect.bottom, 15, 15);
  SetWindowRgn(Handle, region, true);
end;
Run Code Online (Sandbox Code Playgroud)

替代文字

检查这些链接以获取更多信息

  • SetWindowRgn()是塑造Windows的老派方法.在Win2000及更高版本中,UpdateLayeredWindow()和SetLayeredWindowAttributes()(由TForm.TransparentColor ...和TForm.AlphaBlend ...属性包装)现在是首选方法. (6认同)

Tor*_*ins 8

您可以使用TForms的TransparentColorValue属性.结合BorderStyle = bsNone,它会给你这样的形状.