呵,我看过实现这个效果的源码,canvas的应用,代码,好好好好长长长
不过还是觉得用控件方便多了。

解决方案 »

  1.   

    const
      WM_MAGNETISM = WM_USER + 10;
    const
      MT_CLOSEU = 1;
      MT_CLOSED = 2;
      MT_MOVE  = 5;
      MT_CREATE = 6;
      MT_PRIOR  = 7;
      MT_NEXT  = 8;
    .......
     Y:integer;
    procedure TReportMain.FormCreate(Sender: TObject);
    begin
    y:=paintbox1.Height;
    end;
    procedure TReportMain.Timer1Timer(Sender: TObject);
    begin
    PaintBox1.Canvas.Font.Color := clBlue;
      PaintBox1.Canvas.TextOut(15,y,'dfdf);
      PaintBox1.Canvas.TextOut(25,y+16,'fdf');
      PaintBox1.Canvas.Font.Color := clgreen;
      PaintBox1.Canvas.TextOut(35,y+PaintBox1.Canvas.Font.Size+8+22,'ffd');
      PaintBox1.Canvas.Font.Color := clred;
      PaintBox1.Canvas.TextOut(5,y+PaintBox1.Canvas.Font.Size+8+40,'gfg');
      PaintBox1.Canvas.TextOut(25,y+PaintBox1.Canvas.Font.Size+8+58,'gfg');
      dec(y);
      if y<-(PaintBox1.Canvas.Font.Size+8)*2 then y:=paintbox1.Height+16;
    end;
    procedure TReportMain.PaintBox1Paint(Sender: TObject);
    begin
     PaintBox1.Canvas.Font.Name:='隶书';
     PaintBox1.Canvas.Font.Size:=12;
     PaintBox1.Canvas.Brush.Color :=clActiveBorder;
     PaintBox1.Canvas.FillRect(Rect(0,0,PaintBox1.Width,    PaintBox1.Height))
    end;