Gdi绘制曲线接收(delphi7),该怎么解决
Gdi绘制曲线接收(delphi7)
下面是我的代码:
procedure TF_MainForm.DRAW_LLZ(X1, Y1, X2, Y2: INTEGER; T: TCANVAS);
var //画理论值曲线
csl, S, S1,D,D1: real;
L1, M: INTEGER;
Graphics:TGPGraphics;
GppPen:TGPPen;
begin
with T do
begin
Graphics:= TGPGraphics.FromHDC(T.Handle);
GppPen:=TGPPen.Create(T.pen.Color,1);
CSL := 0;
for m := 1 to HS_LLZ do
begin
if HSLLZ[M] > 0 then
begin
s := y2 - (HSLLZ[m]) * STEP_Y1;
s1 := x1 + (csl + m * 0.2) * STEP_X1;
if m > 1 then
begin
D := y2 - (HSLLZ[m - 1]) * STEP_Y1;
D1 := x1 + (csl + (m - 1) * 0.2) * STEP_X1;
Graphics.DrawLine(GppPen,s1,s,d1,d);
//Graphics.SmoothingMode(SmoothingModeHighQuality);
Graphics.Free;
end;
if m=HS_LLZ then
begin
xcccd:=S1+10 ;
ycccd:=S-10 ;
end;
end;
end;
end;
end;
Graphics.DrawLine(GppPen,s1,s,d1,d)这句就是我画出的线,可是启动后,在paintbox1中显示不出,应该是没有接收到,高手帮忙下下,我怎么接收才可以显示呢。在线等。
------解决方案--------------------
在 OnPaint 里调用的吗?
我建议你找一下 GDI+ 的Delphi 代码,照着抄。
肯定可以。
------解决方案--------------------
GppPen:=TGPPen.Create(T.pen.Color,1);
这个地方出问题的了,GDI+的RGB和TColor的RGB是不同的,并且GDI+是带有Alpha通道的,你这样赋值其Alpha通道 是0,意味着是透明的,自然画不出来任何东西,建议你修改一下颜色的值试试就知道了。
下面是我的代码:
procedure TF_MainForm.DRAW_LLZ(X1, Y1, X2, Y2: INTEGER; T: TCANVAS);
var //画理论值曲线
csl, S, S1,D,D1: real;
L1, M: INTEGER;
Graphics:TGPGraphics;
GppPen:TGPPen;
begin
with T do
begin
Graphics:= TGPGraphics.FromHDC(T.Handle);
GppPen:=TGPPen.Create(T.pen.Color,1);
CSL := 0;
for m := 1 to HS_LLZ do
begin
if HSLLZ[M] > 0 then
begin
s := y2 - (HSLLZ[m]) * STEP_Y1;
s1 := x1 + (csl + m * 0.2) * STEP_X1;
if m > 1 then
begin
D := y2 - (HSLLZ[m - 1]) * STEP_Y1;
D1 := x1 + (csl + (m - 1) * 0.2) * STEP_X1;
Graphics.DrawLine(GppPen,s1,s,d1,d);
//Graphics.SmoothingMode(SmoothingModeHighQuality);
Graphics.Free;
end;
if m=HS_LLZ then
begin
xcccd:=S1+10 ;
ycccd:=S-10 ;
end;
end;
end;
end;
end;
Graphics.DrawLine(GppPen,s1,s,d1,d)这句就是我画出的线,可是启动后,在paintbox1中显示不出,应该是没有接收到,高手帮忙下下,我怎么接收才可以显示呢。在线等。
------解决方案--------------------
在 OnPaint 里调用的吗?
我建议你找一下 GDI+ 的Delphi 代码,照着抄。
肯定可以。
------解决方案--------------------
GppPen:=TGPPen.Create(T.pen.Color,1);
这个地方出问题的了,GDI+的RGB和TColor的RGB是不同的,并且GDI+是带有Alpha通道的,你这样赋值其Alpha通道 是0,意味着是透明的,自然画不出来任何东西,建议你修改一下颜色的值试试就知道了。