将控件画成圆角的效果(Delphi)

Posted 张志峰的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将控件画成圆角的效果(Delphi)相关的知识,希望对你有一定的参考价值。

 
最近在做一个Delphi的项目,常常要设计软件的界面,需要将控件画成圆角矩形。在Delphi中将控件画成圆角效果,可使用CreateRoundRectRgn函数。在此写了一个通用的函数,只要在用到改变控件效果的地方,调用就OK了,函数如下:
procedure TfrmTest.RoundControl(Control: TWinControl;arc1:Integer;arc2:Integer);
var
  R: TRect;
  Rgn: HRGN;
begin
  with Control do
  begin
    R :=Control.ClientRect;
    rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, arc1, arc2);
    Perform(EM_GETRECT, 0, lParam(@r));
    InflateRect(r, -5, -5);
    Perform(EM_SETRECTNP, 0, lParam(@r));
    SetWindowRgn(Control.Handle, rgn, True);
    Invalidate;
  end;
end;
只要在调用时传入控件的name和两个弧度就可以设置控件的圆角效果。

同时,要去掉TPanel控件的边线效果,只需将其BevelOuter设置成bvNone即可,其他有边线效果的控件设置无边线效果同TPanel一样。

以上是关于将控件画成圆角的效果(Delphi)的主要内容,如果未能解决你的问题,请参考以下文章

delphi 窗体的淡入淡出效果

delphi statusbar控件(状态栏)

delphi7中XpMenu控件怎么使用

Delphi7 DbModule放了几个控件,后来不见了?

delphi 渐变颜色进度条 控件

在delphi中如何实现cxGrid控件一个单元格显示多个操作按钮