请查看这个网页,如何画这种跟踪光标的十字线,谢谢!
http://map.zhcw.com/ssq//html/honglan_ascsize=20.html

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls, TeeProcs, TeEngine, Chart, Series, StdCtrls;type
      TForm1 = class(TForm)
        Chart1: TChart;
        lineSeries1: TFastLineSeries;
        Label1: TLabel;
        procedure FormCreate(Sender: TObject);
        procedure Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
          Y: Integer);
        procedure Chart1AfterDraw(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
        OldX,OldY:Longint;
        CrossHairColor:TColor;
        CrossHairStyle:TPenStyle;
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
      OldX:=-1;
      CrossHairColor:=clYellow;
      CrossHairStyle:=psSolid;
    end;procedure TForm1.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
      Procedure DrawCross(AX,AY:Integer);
      begin
        With Chart1,Canvas do
        begin
          Pen.Color:=CrossHairColor;
          Pen.Style:=CrossHairStyle;
          Pen.Mode:=pmXor;
          Pen.Width:=1;
          MoveTo(ax,ChartRect.Top-Height3D);
          LineTo(ax,ChartRect.Bottom-Height3D);
          MoveTo(ChartRect.Left+Width3D,ay);
          LineTo(ChartRect.Right+Width3D,ay);
        end;
      end;Var tmpX,tmpY:Double;
    begin
      if (OldX<>-1) then
      begin
        DrawCross(OldX,OldY);
        OldX:=-1;
      end;  if PtInRect( Chart1.ChartRect, Point(X-Chart1.Width3D,Y+Chart1.Height3D)  ) then
      begin
        DrawCross(x,y);    OldX:=x;
        OldY:=y;    With LineSeries1 do
        begin
          GetCursorValues(tmpX,tmpY);
          Label1.Caption:=GetVertAxis.LabelValue(tmpY)+
                          ' '+
                          GetHorizAxis.LabelValue(tmpX);
        end;
      end;
    end;procedure TForm1.Chart1AfterDraw(Sender: TObject);
    begin
      OldX:=-1;
    end;end.
      

  2.   

    function followmouse(){
     leftright.style.top = window.event.y-1
     topdown.style.left = window.event.x-1
    }<div  id=\"leftright\" style=\"width:expression(document.getElementById('abox').clientWidth);;height:1px;position:absolute;left:0;top:200px;background-color:#11b700;overflow:hidden;\" \></div>
      

  3.   

    谢谢楼上两位.我需要在Timage 的图片之上画线,但不能清除底下的image 的图象.请问这个该怎么做呢?
      

  4.   

    把image 放在一个控件上,在控件上画十字,image放图片
      

  5.   

    在IMAGE1之上放一个IMAGE2,在IMAGE2上画线,但IMAGE2把IMAGE1的图象遮盖了.  
    设置Image2.Transparent := True 也不行,请问是什么原因呢?
      

  6.   

    bt:=tbitmap.create;
    bt.assign(image1.picture.bitmap);
    bt.canvas.brush.style:=bsclear;
    bt.canvas.moveto(0,0);
    bt.canvas.lineto(400,400);
    image1.picture.bitmap.assign(bt);
    bt.free;下班了 没试验成功 你按这个思路做下看看成不 。
      

  7.   

    上面有个代码了就那个思路,LZ到TEECHAR的DEMO中找一下也有这个程序源码,用的是鼠标移动定位画线
      

  8.   

    已经成功了,呵呵
    需要加上Image2.Canvas.FillRect(Image2.ClientRect);在画线前先填满背景.谢谢各位!