请问怎么达到这种效果 ?

soulwin 2009-05-12 04:21:49
请查看这个网页,如何画这种跟踪光标的十字线,谢谢!
http://map.zhcw.com/ssq//html/honglan_ascsize=20.html
...全文
195 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
soulwin 2009-05-13
  • 打赏
  • 举报
回复
已经成功了,呵呵
需要加上Image2.Canvas.FillRect(Image2.ClientRect);在画线前先填满背景.

谢谢各位!
yct0605 2009-05-13
  • 打赏
  • 举报
回复
这个问题有意思
和海风 2009-05-13
  • 打赏
  • 举报
回复
上面有个代码了就那个思路,LZ到TEECHAR的DEMO中找一下也有这个程序源码,用的是鼠标移动定位画线
sy_100000 2009-05-12
  • 打赏
  • 举报
回复
XOR Pen就可以了;
sqrkim 2009-05-12
  • 打赏
  • 举报
回复
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;

下班了 没试验成功 你按这个思路做下看看成不 。
soulwin 2009-05-12
  • 打赏
  • 举报
回复
在IMAGE1之上放一个IMAGE2,在IMAGE2上画线,但IMAGE2把IMAGE1的图象遮盖了.
设置Image2.Transparent := True 也不行,请问是什么原因呢?
sqrkim 2009-05-12
  • 打赏
  • 举报
回复
没做过啊 。提个建议,你可以试验下。
sqrkim 2009-05-12
  • 打赏
  • 举报
回复
把image 放在一个控件上,在控件上画十字,image放图片
soulwin 2009-05-12
  • 打赏
  • 举报
回复
谢谢楼上两位.

我需要在Timage 的图片之上画线,但不能清除底下的image 的图象.请问这个该怎么做呢?
youcunzai 2009-05-12
  • 打赏
  • 举报
回复
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>
sqrkim 2009-05-12
  • 打赏
  • 举报
回复
unit Unit1;

interface

uses
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.
soulwin 2009-05-12
  • 打赏
  • 举报
回复
都不是,是想做到跟随光标移动的那两根十字线
bdmh 2009-05-12
  • 打赏
  • 举报
回复
你要做网页呀还是要做表格呀

5,391

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧