6
6ysnow
Unregistered / Unconfirmed
GUEST, unregistred user!
画图函数:
const
J_Y =10 ;
J_X =20 ;
var
AverageW,AverageH,NowPos:integer;
X1,X2,Y1,Y2,Width,Higth,iTemp : integer;
SaveFlowGG :array [0..J_X]of Integer;
iTotal :integer;
PosP: array [0..J_X]of TPoint;
BufBmp:TbitMap ;
procedure TFrmFlowShow.DreawFlowChart(aCanvas: TCanvas);
var
p:Array [0..3] of TPoint;
TheRect: TRect;
pTemp: TPoint;
k: integer;
// X1,X2,Y1,Y2,Width,Higth,iTemp,J_X,J_Y : integer;
begin
X1:=65;X2:=480;Y1:=200;Y2:=40;
Width:=X2-X1 ;
Higth:=Y1-Y2 ;
p[0]:=Point(X1,Y1); //(X1,Y1)
p[1]:=Point(X2,Y1); //(X2,Y1)
p[2]:=Point(X2,Y2); //(X2,Y2)
p[3]:=Point(X1,Y2); //(X1,Y2)
//画完矩形
aCanvas.Brush.Color:=clNone;
aCanvas.Pen.Color:=clNone;
aCanvas.Polygon(p);
//画横线
// J_Y:=10 ;
AverageH:= Higth div J_Y ;
for k:= 0 to J_Y-1 do
begin
aCanvas.Pen.Color:= clLime;
pTemp.X:=X1;
pTemp.Y:=Y1-AverageH*(k+1);
aCanvas.PenPos:=pTemp;
aCanvas.LineTo(X2,pTemp.Y); //画横线
end;
//画竖线
// J_X:=20 ;
AverageW:= Width div J_X ;
for k:= 0 to J_X-1 do
begin
aCanvas.Pen.Color:= clLime;
pTemp.X:=X1+AverageW*(k+1);;
pTemp.Y:=Y1 ;
aCanvas.PenPos:=pTemp;
aCanvas.LineTo(pTemp.X,Y2); //画横线
end;
if Timer1.Enabled =false then exit ;
aCanvas.Pen.Color:= clred;
//再连线
for K:= 0 to J_X-2 do
begin
aCanvas.PenPos:=PosP[K];
aCanvas.LineTo(PosP[K+1].X,PosP[K+1].Y);
end;
end;
BufBmp:=TbitMap.Create;
BufBmp.Width:=Width;
BufBmp.Height:=Higth;
BufBmp.Transparent := True;
//设置该Bitmap的透明属性为真
BufBmp.TransparentMode := tmFixed;
我试图这样调用:
DreawFlowChart(BufBmp.Canvas);
bitblt(Image1.Canvas.Handle, X1, Y1, Width, Higth,
BufBmp.Canvas.Handle, X1, Y1, SRCCOPY);//拷贝函数
结果什么都没有!!
而
reawFlowChart(Image1.Canvas);就有,
但是我想实现无闪烁,必须用到上面的方式啊!!
请高手指点:
1.DreawFlowChart为啥不能画图?
2.实现无闪烁怎么弄啊???
分数不够了,原谅!!在线等待!!!
const
J_Y =10 ;
J_X =20 ;
var
AverageW,AverageH,NowPos:integer;
X1,X2,Y1,Y2,Width,Higth,iTemp : integer;
SaveFlowGG :array [0..J_X]of Integer;
iTotal :integer;
PosP: array [0..J_X]of TPoint;
BufBmp:TbitMap ;
procedure TFrmFlowShow.DreawFlowChart(aCanvas: TCanvas);
var
p:Array [0..3] of TPoint;
TheRect: TRect;
pTemp: TPoint;
k: integer;
// X1,X2,Y1,Y2,Width,Higth,iTemp,J_X,J_Y : integer;
begin
X1:=65;X2:=480;Y1:=200;Y2:=40;
Width:=X2-X1 ;
Higth:=Y1-Y2 ;
p[0]:=Point(X1,Y1); //(X1,Y1)
p[1]:=Point(X2,Y1); //(X2,Y1)
p[2]:=Point(X2,Y2); //(X2,Y2)
p[3]:=Point(X1,Y2); //(X1,Y2)
//画完矩形
aCanvas.Brush.Color:=clNone;
aCanvas.Pen.Color:=clNone;
aCanvas.Polygon(p);
//画横线
// J_Y:=10 ;
AverageH:= Higth div J_Y ;
for k:= 0 to J_Y-1 do
begin
aCanvas.Pen.Color:= clLime;
pTemp.X:=X1;
pTemp.Y:=Y1-AverageH*(k+1);
aCanvas.PenPos:=pTemp;
aCanvas.LineTo(X2,pTemp.Y); //画横线
end;
//画竖线
// J_X:=20 ;
AverageW:= Width div J_X ;
for k:= 0 to J_X-1 do
begin
aCanvas.Pen.Color:= clLime;
pTemp.X:=X1+AverageW*(k+1);;
pTemp.Y:=Y1 ;
aCanvas.PenPos:=pTemp;
aCanvas.LineTo(pTemp.X,Y2); //画横线
end;
if Timer1.Enabled =false then exit ;
aCanvas.Pen.Color:= clred;
//再连线
for K:= 0 to J_X-2 do
begin
aCanvas.PenPos:=PosP[K];
aCanvas.LineTo(PosP[K+1].X,PosP[K+1].Y);
end;
end;
BufBmp:=TbitMap.Create;
BufBmp.Width:=Width;
BufBmp.Height:=Higth;
BufBmp.Transparent := True;
//设置该Bitmap的透明属性为真
BufBmp.TransparentMode := tmFixed;
我试图这样调用:
DreawFlowChart(BufBmp.Canvas);
bitblt(Image1.Canvas.Handle, X1, Y1, Width, Higth,
BufBmp.Canvas.Handle, X1, Y1, SRCCOPY);//拷贝函数
结果什么都没有!!
而
![Big Grin :D :D](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f600.png)
但是我想实现无闪烁,必须用到上面的方式啊!!
请高手指点:
1.DreawFlowChart为啥不能画图?
2.实现无闪烁怎么弄啊???
分数不够了,原谅!!在线等待!!!