我的窗体是透明的窗体设置如下:
AlphaBlend = True;
AlphaBlendValue = 100;当此透明窗体和另外一个窗体(中国游戏中心的网络台球游戏,请到www.chinagames.net中下载游戏大厅并安装网络台球)同时运行的时候就出现了严重抖动现象,请大家帮忙。
procedure TForm1.Button1Click(Sender: TObject);
begin  Canvas.FillRect(ClientRect);
  Canvas.MoveTo(a_x, a_y);  //a_x,a_y是起始点
  Canvas.LineTo(b_x, b_y);  //b_x,b_y是终点
 
end;

解决方案 »

  1.   

    Self.DoubleBuffered := true;试试
      

  2.   

    另外一个方法:
    画前设置LockWindowUpdate(self.handle);
    画完后设置LockWindowUpdate(0)
      

  3.   

    当此透明窗体和另外一个窗体(中国游戏中心的网络台球游戏,请到www.chinagames.net中下载游戏大厅并安装网络台球)同时运行的时候就出现了严重抖动现象,画不画线并没有关系。
    我的窗体是透明的窗体设置如下:
    AlphaBlend = True;
    AlphaBlendValue = 100;当AlphaBlend = False;时就没有闪动现象了,但窗体也不透明了。要求的是透明窗体。再问一下,如何直接在屏幕上直接画线呀。
      

  4.   

    因为你使用透明窗体的关系,本身windows对透明窗体支持就不是特别高效,应该不是你的关系吧
    直接画屏可以用得到desktop的dc,GetDC(0),然后用热合绘图函数画就可以了,但是这样任何其它窗口重绘后,你画的内容将被擦掉。
      

  5.   

    使用lockwindowupdate()
    或者先disablealign,然后再EnableAlign试试
      

  6.   

    那个台球游戏做得不好而已,或者他用了DirectX技术,和GDI的透明处理不能很好的兼容
      

  7.   

    那个game是用opengl做的,opengl的game 在窗体摸下会常生投动