1、此圆圈不受任何程序的影响,永久在最前面。
2、圆圈移动之后不会有残留痕迹,且桌面不会有闪烁感。
请问可以实现吗?如果有高手可以解决,本人愿额外支付二百元报酬。扣扣一零九九七三。谢谢

解决方案 »

  1.   

    提LZ省钱下面的例子支持窗体置顶, 透明, 颜色闪烁,位置右移和ESC推出.
    更进一步可以做消息响应和状态栏隐藏等.unit Unit12;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls;type
      TForm12 = class(TForm)
        procedure FormCreate(Sender: TObject);
        procedure FormKeyPress(Sender: TObject; var Key: Char);
        procedure FormDestroy(Sender: TObject);
      private
        tmr : TTimer;
        procedure tmrTimer(Sender: TObject);
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form12: TForm12;implementation{$R *.dfm}procedure TForm12.FormCreate(Sender: TObject);
    begin
      //设置窗体位置及宽高
      left := 0;
      top := 0;
      Width := 100;
      Height := 100;  //窗体样式  置顶, 无边框, 透明
      FormStyle := fsStayOnTop;
      BorderStyle := bsNone;
      TransparentColor := True;
      TransparentColorValue := Color;  //创建及设置时钟
      tmr := TTimer.Create(Self);
      tmr.OnTimer := tmrTimer;
      tmr.Interval := 200;
      tmr.Enabled := True;
    end;procedure TForm12.FormDestroy(Sender: TObject);
    begin
      tmr.Free;
    end;procedure TForm12.FormKeyPress(Sender: TObject; var Key: Char);
    begin
      //按ESC推出
      if Key = Chr(27) then Close;
    end;procedure TForm12.tmrTimer(Sender: TObject);
    begin
      Canvas.Lock;
      if Canvas.Brush.Color = clred then
        Canvas.Brush.Color := clGreen
      else
        Canvas.Brush.Color := clred;
      Canvas.Ellipse(0,0, 100, 100);
      Canvas.Unlock;  if left + Width + 10 < Screen.Width then
        Left := Left + 10
      else
        Left := 0;
    end;
    end.
      

  2.   

    呃,谢谢大侠。但是我想要的是一个圆圈,中间部分是不能存在的,而且不能有Form的边框,请问应该怎么做?简单点说,它只是由一条线弯成的圈。关键是怎样能实现这样的线呢?
      

  3.   


    procedure TForm12.tmrTimer(Sender: TObject);
    begin
     Canvas.Ellipse(0,0, 100, 100);
      if left + Width + 10 < Screen.Width then
        Left := Left + 10
      else
        Left := 0;
    end;