在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Delphi之TWinControl支持PaintTo方法,可以方便的Paint有句柄控件,而此方法,TGraphicControl没有。 这使得有时需要Paint无句柄控件诸如TLabel时颇为费事,能否扩充它? 可以。使用class helper for技术,通过其Parent,仍然调用TWinControl支持PaintTo方法,中转一下。
直上代码吧,以做备忘: TGraphicControlHelper = class helper for TGraphicControl procedure PaintTo(Canvas: TCanvas; X, Y: Integer); end; 实现: { TGraphicControlHelper } procedure TGraphicControlHelper.PaintTo(Canvas: TCanvas; X, Y: Integer); var bmp: TBitmap; sr: TRect; begin if Self.Parent = nil then Exit; bmp := TBitmap.Create; try bmp.SetSize(Parent.Width, Parent.Height); Self.Parent.PaintTo(bmp.Canvas.Handle, X, Y); sr := Self.BoundsRect; Windows.OffsetRect(sr, 1, 1); Canvas.CopyRect(Self.ClientRect, bmp.Canvas, sr); finally bmp.Free; end; end;
完美支持 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论