1

我正在使用 Graphics32 TColorPickerGTK 组件,不幸的是,它不支持 VCL 样式。我的第一个想法是像这样清除 PaintColorPicker() 方法中的 FBuffer,

FBuffer.Clear( Color32( StyleServices.GetStyleColor( scWindow ) ) );

非常适合非纹理样式,但是对于像 Glossy 或 Jet 这样的样式,没有太多的印记。

顿悟,我在路上,用 Create() 方法复制控件下的位图,然后在 PaintColorPicker() 方法上重新绘制。

ABitmap := TBitmap32.Create();
ABitmap.SetSize( Width, Height );
ARect1 := Rect( 0, 0, Width, Height );

ABitmap.Canvas.CopyRect( ARect1, {No canvas object}, ARect1 );

如何访问表单的底层画布,以便 CopyRect 工作?

4

0 回答 0