Canvas.Brush.Color := clRed;
canvas.Brush.CleanupInstance;
Canvas.Brush.Style := bsClear (1) ;
form1.Canvas.Ellipse(10,10,100,100);
form1.Canvas.Ellipse(60,60,150,150);
如果有(1)这句话,图像是透明了,但是没有颜色了,如果没有,其中的一个圆就是弧了,
如何得到既能看到两个圆又有颜色。
canvas.Brush.CleanupInstance;
Canvas.Brush.Style := bsClear (1) ;
form1.Canvas.Ellipse(10,10,100,100);
form1.Canvas.Ellipse(60,60,150,150);
如果有(1)这句话,图像是透明了,但是没有颜色了,如果没有,其中的一个圆就是弧了,
如何得到既能看到两个圆又有颜色。
解决方案 »
- 网络打印为什么会出现'Floating point overflow'?
- 谁好心发个dent.slip给我咯,邮箱地址[email protected]
- TDBGrid3D
- for循环自变量初始化的问题?
- 怎样获取局域网中的所有电脑的IP,和计算机名?
- SQL语句的一个奇怪问题?
- 我是新手,一个很菜的问题希望好心人能解答!!
- 用idhttp怎么实现对IIS的mime文件类型的新增啊
- 请教各位高手:我的存储过程有无错误?为何在中调用报错'general sql error'?
- Sybase的语句在Delphi里用不了?
- [如何修改第3方控件?]有经验的同学给说说吧!非常感谢!
- 如何建立*.INI 文件,高手幫忙,謝!
canvas.Brush.CleanupInstance;
//Canvas.Brush.Style := bsClear;
Canvas.Pen.Mode := pmMask;//新加的...
Canvas.Ellipse(10,10,100,100);
Canvas.Ellipse(60,60,150,150);
如何?
但是如果使用下面代码该如何实现哪?
var
pen:HPEN;
SolidBrush:HBRUSH;
ACanvas:HDC;
begin
aCanvas:=canvas.Handle;
pen:=CreatePen(PS_INSIDEFRAME ,2,255);
SolidBrush:=CreateSolidBrush(Color);
SelectObject(ACanvas,SolidBrush);
SelectObject(aCanvas,pen);
Ellipse(ACanvas,10,10,100,100);
Ellipse(ACanvas,60,60,150,150);
deleteObject(pen);
deleteObject(SolidBrush);
vPen: HPEN;
vSolidBrush: HBRUSH;
vCanvas: HDC;
begin
vCanvas := Canvas.Handle;
vPen := CreatePen(PS_SOLID, 1, clBlack);
vSolidBrush := CreateSolidBrush(clRed);
SelectObject(vCanvas, vSolidBrush);
SelectObject(vCanvas, vPen);
SetROP2 (vCanvas, R2_MASKPEN); //
Ellipse(vCanvas, 10, 10, 100, 100);
Ellipse(vCanvas, 60, 60, 150, 150);
DeleteObject(vPen);
DeleteObject(vSolidBrush);
end;