Delphi有透明色吗?(20分)

  • 主题发起人 主题发起人 coonlee
  • 开始时间 开始时间
C

coonlee

Unregistered / Unconfirmed
GUEST, unregistred user!
我想画一个圆,然后把它消除。请问可以用透明色的圆把它覆盖么?如果有的话,那透明
色是哪一种呢?

如果有别的办法,希望各位一并告知!
 
用底色啊,比如你在白色背景上画,就用白色擦!
 
再做一次异或操作就行了
 
设置cavans.pen.mode=pmnotxor
然后再画一次。
 
timerri,你的答案我看不懂,能说具体点么?
你写的东西我在DELPHI里面查不到。
 
procedure TForm1.Button1Click(Sender: TObject);
begin
Canvas.Pen.Mode :=pmNotxor;
Canvas.Ellipse(30,30,80,80);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Canvas.Ellipse(30,30,80,80);
end;
 
给你一个程序玩一下

var
BP, EP: TPoint;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
BP.X := X;
BP.Y := Y;
EP.X := X;
EP.Y := Y;
Drawing := True;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
with Canvas do
if Drawing then
begin
Pen.Width := 2;
Pen.Color := clRed;

Pen.Mode := pmNOTXOR;
MoveTo(BP.X, BP.Y);
LineTo(EP.X, EP.Y);
MoveTo(BP.X, BP.Y);
LineTo(X, Y);
EP.X := X;
EP.Y := Y;
end;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Drawing := False;
end;
 
谢谢大家的答案!
 
昨天太困,兼且一直在看c,所以这么简单的东西都写错了,痛苦。
canvas.pen.mode:=pmnotxor;

记得画东西一定要在onpaint或wm_paint里,否则窗口resize或者有些小变化图形就没了。

 
Accept answer
 
后退
顶部