当前位置:主页>仓库管理软件> 列表

怎么解决图像闪烁??? 找免费进销存系统

库存管理软件版1楼: 画图函数:
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);//拷贝函数
结果什么都没有!!
而:DreawFlowChart(Image1.Canvas);就有,
但是我想实现无闪烁,必须用到上面的方式啊!!
请高手指点:
1.DreawFlowChart为啥不能画图?
2.实现无闪烁怎么弄啊???
分数不够了,原谅!!在线等待!!!

2楼: 各位大侠走过路过,不要不发言啊!!求求各位了.!! 如免费进销存系统

3楼: 不是我不发言,只是你写的代码太长,看得眼晕
是在Form上画图吧,解决闪烁得用双缓存画图,即在Form的Create事件中加上
Self.DoubleBuffered := true;

4楼: 不是画窗体,是画在image上.

5楼: 那就把那句改为image1.parent.doublebuffered := true即可

6楼: 帮顶!

╭=========================================╮

80G海量源代码,控件,书籍全免费狂下不停!

http://www.source520.com

╰=========================================╯

库存管理软件版7楼: 双缓存画图
可以到搜索上搜一下,很多的。

8楼: 在form.creat中加:
form1.DoubleBuffered:=true;
显示图片时就不会闪烁

9楼: 多人接受答案了。