使 用CANVAS 时: 比 如 当 窗 口 进 行 最 小 化 又 重 新 恢 复 时, 就 会 引 起 画 布 上 图 像 的 消 失, (10

  • 主题发起人 主题发起人 okgxsh
  • 开始时间 开始时间
O

okgxsh

Unregistered / Unconfirmed
GUEST, unregistred user!
使 用CANVAS 时: 比 如 当 窗 口 进 行 最 小 化 又 重 新 恢 复 时, 就 会 引 起 画 布 上 图 像 的 消 失, (100分)<br />procedure TForm1.Button2Click(Sender: TObject);
var
MyCanvas: TControlCanvas;
begin
MyCanvas:=TControlCanvas.Create;
Mycanvas.control:=memo1;//想在memo1上作画
With Mycanvas do
Begin
pen.color:=clyellow;
begin
Brush.Color := clBtnFace; //
MoveTo ( 33, 0 );
Brush.Color := clWhite; //
LineTo ( 33, ClientHeight );
end;
End;
end;
使 用CANVAS 时: 比 如 当 窗 口 进 行 最 小 化 又 重 新 恢 复 时, 就 会 引 起 画 布 上 图 像 的 消 失,
//如何解决上述“图像消失”的问题???
如何实现win2000性能中监视>>>>>所画cpu 、内存的数据的动态的的曲线
 
在form的OnResize事件中重画。
 
第一个应该重画repaint
第二个存入数据库然后用chart
或者由第三方控件指明数据源然后产生对应的线
在或者分时段取点用lineto 画。
 
陈晨说的对,可用方法1repait
 
需要处理form的onpaint事件,当form重新paint时,执行你的代码
 
当然是在OnPaint事件中绘图.
BTW:窗口的扩大会触发OnPaint事件,而缩小则不会.
 
怎末重画?谁又源代码??能否贴一下!我是菜。。。
 
OnResize 事件中写 self.repaint;
 
D:/Program Files/Borland/Delphi6/Demos/Ownerlst/fontdraw.dpr
 
使用Invalidate强迫重画.
 
以上说的大部分都不对!你们看清人家的代码再说话,不要一哄而上乱讲话!

最和适的方法是在Form.OnResize里重新写一遍你的代码,或者把代码封成一个过程调用。
 
到底是谁在乱讲话,这就是一个重画的问题,放在Form 的ONResize中不是一个解决办法,
想画图,必须解决重画的问题,一般要放在ONPaint中来解决,用Invalidate强迫重画。
SKter说的非常对。
YFeral说的方法要重新定代码,写两次代码,或者写一个过程,这种方法是就事论事的方法
。不是解决问题的方法。效率还有点低。
 
canvas.OnPaint:=Button2.OnClick;
 
我只是想画完后不让她消失!动态的取数据!
难道还要保存几秒钟以前的所有数据?进行重画吗??
 
笨笨,创建一个全局的imgMain:TBitmap;

ONformcreate;
begin
imgMain:=TBitmap.Create;
imgMain.width:=Width;
imgMain.height:=Height;
.......
end;

ONFrmClose;
begin
imgMain.Free;
end;

ButtonClick
begin
With imgMain.Canvas do
Begin
pen.color:=clyellow;
begin
Brush.Color := clBtnFace; //
MoveTo ( 33, 0 );
Brush.Color := clWhite; //
LineTo ( 33, ClientHeight );
end;
RePaint; 这里强制刷新
end;

OnPaint
begin
Self.Canvas.Draw(0,0,imaMain);
end;

[:D],好了,呵呵,这个是个很基本的技巧
 
到头来不一个思路吗?我的意思并不是单纯在窗体OnSize的重画,那样并不针对作者新建的
Canvas,其实Repait还是调用了画的过程并不是象某些大虾说的重新执行该过程就底效。

建议楼主试一下,建议已经出来了动动手就知谁的对:)。
 
OKgxsh,根本就不知道什么是重画,重画怎么保存以前的数据,重画的机制你不知道吗。正所
以不保存数据才要重画的。建议楼主OKgxsh把问题描述清楚,别让我们在这瞎耽误功夫。
 
canvas画图的问题我是第一次接触,所以很菜!感谢大家的帮忙!小弟在这里向大家敬礼了!

to:爱元元的哥哥 :你的方法很好!非常感谢您的帮助!
to:YFeral:您的指教,我非常感谢!
to:OneEyeWolf:您的指教,我非常感谢!
//很多同志都做了讲解,在这一并致谢:
 
canvas画图的问题我是第一次接触,所以很菜!感谢大家的帮忙!小弟在这里向大家敬礼了!

to:爱元元的哥哥 :你的方法很好!非常感谢您的帮助!
to:YFeral:您的指教,我非常感谢!
to:OneEyeWolf:您的指教,我非常感谢!
//很多同志都做了讲解,在这一并致谢:
 
后退
顶部