Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1227752
  • 博文数量: 788
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 7005
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 15:52
文章存档

2017年(81)

2011年(1)

2009年(369)

2008年(337)

分类:

2008-11-05 09:52:20



小人前一个天在做一个交给老师的小图形图像演示程序时遇到了点问题,窗体Form1上面放了一个TPageControl1控件,并生成了3个TabSheet,分别完成不同的功能,当做第二个Tabsheet2时出了麻烦,该页的功能是单击一按钮时可在窗体上划线段,单击另一按钮时要求刷新窗体,使画的线消失,该页上我用了控件Timage1,一个表示画线开始的TButton1,另一个刷新按钮TButton2,但是刷新功能怎么也做不出来,但我在一新窗体上测试不放pageControl控件,在窗体上划线时则可以刷新,部分代码如下:请赐教!  
  implementation  
  var  
  start:boolean;  
  {$R   *.dfm}  
   
  procedure   TForm1.PageControl1Change(Sender:   TObject);  
  begin  
      if   pagecontrol1.ActivePage=tabsheet2   then  
      start:=false;  
  end;//当从别的页切换到第二页时,标志位为假,非得单击画线按钮才能在窗体画线    
   
  procedure   TForm1.DrawLineClick(Sender:   TObject);  
  begin  
      start:=true;//单击画线按钮,标志位赋为真,可以在窗体上画线  
  end;  
   
   
  procedure   TForm1.Image1MouseDown(Sender:   TObject;   Button:   TMouseButton;  
      Shift:   TShiftState;   X,   Y:   Integer);  
  begin  
      if   start=true   then  
      image1.Canvas.MoveTo(x,y);  
  end;   //鼠标按下的时候确定线段的第一个坐标  
   
   
  procedure   TForm1.Image1MouseUp(Sender:   TObject;   Button:   TMouseButton;  
      Shift:   TShiftState;   X,   Y:   Integer);  
  begin  
      if   start=true   then  
      image1.canvas.LineTo(x,y);  
  end;//鼠标放开的时候确定线段的第二个坐标,并画出线段  
   
  {问题就在这里????}  
  procedure   TForm1.RefreshClick(Sender:   TObject);  
  begin  
  ???{我不懂这里用image1.refresh或image1.canvas.refresh或form1.refresh都不行}  
  end;//单击刷新按钮,刷新,该功能不知道咋个实现啊,试了多次,都出不来  
   
  end.

试试image1.Invalidate;

试过了,不行啊,有没哪位高人晓滴???

是否在image1.refresh或image1.canvas.refresh之前要加"pageControl."来限定?  
  没有具体试过.



delphi2007 2008-11-05 09:40 发表评论
阅读(307) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~