关于怎样画直线的问题(急!!) 怎样画这样的直线:象imageeditor里工具的一样,当末尾端摁住,鼠标没有松手的时候,直线可以移动?并且用什么来记录所画的一系列直线的轨迹,因为以后要改变它们 的颜色.0谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这条直线是一个类的对象(你自己定义),当你点到屏幕时创建他,并且记录它起始坐标,当拖动鼠标时,根据鼠标的位置在界面上话一条虚象,当up鼠标时,得到他的终止坐标,此时,就象你才界面上放了一个Tlabel样,你可以拖动他,改变颜色等等操作 var Form1: TForm1; LMouseDown: Bool; StartX: integer; StartY: integer; OldX: integer; OldY: integer;implementation{$R *.dfm}procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin LMouseDown := True; StartX := X; StartY := Y; OldX := X; OldY := Y;end;procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin LMouseDown := False;end;procedure TForm1.FormCreate(Sender: TObject);begin LMouseDown := False;end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);begin if LMouseDown then begin if (OldX <> StartX) or (OldY <> StartY) then //擦去上一次画的线 begin Canvas.Pen.Color := Self.Color; Canvas.MoveTo(StartX, StartY); Canvas.LineTo(OldX, Oldy); end; Canvas.Pen.Color := clBlack; Canvas.MoveTo(StartX, StartY); Canvas.LineTo(X, Y); end; OldX := X; OldY := Y;end; 谢谢JUN!具体怎样实现Tlabel那样的虚线效果呢?能否给出代码提示?谢谢! 顺便问一下,各位是用什么组件来画图的阿?我是用的drawgrid,效果不好,老是画出来的东东不平滑阿,怎么解决呢? 关于仓库管理的盘点 求一条SQL语句 如何模糊比较2个图像?? ACCESS+DELPHI7的几个问题,请教高手 delphi消息处理中,是怎么把消息的窗口hwnd转换成窗口对像的。 菜鸟问题!!!请各位大侠一定要帮助小第我!先谢过了! 谁可以给俺送个类似本论坛的源码,送分 使用TNMUDP控件通信时,如何确认另一端已经连接上?谢谢! 请各位高手帮忙,诚恳!!! 如何才能控制对多个光驱的操作? 百分求解combobox问题。 一个ListBox问题
Form1: TForm1;
LMouseDown: Bool;
StartX: integer;
StartY: integer;
OldX: integer;
OldY: integer;implementation{$R *.dfm}procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
LMouseDown := True;
StartX := X;
StartY := Y; OldX := X;
OldY := Y;
end;procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
LMouseDown := False;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
LMouseDown := False;
end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if LMouseDown then
begin
if (OldX <> StartX) or (OldY <> StartY) then //擦去上一次画的线
begin
Canvas.Pen.Color := Self.Color;
Canvas.MoveTo(StartX, StartY);
Canvas.LineTo(OldX, Oldy);
end;
Canvas.Pen.Color := clBlack;
Canvas.MoveTo(StartX, StartY);
Canvas.LineTo(X, Y);
end;
OldX := X;
OldY := Y;
end;
具体怎样实现Tlabel那样的虚线效果呢?能否给出代码提示?
谢谢!
我是用的drawgrid,效果不好,老是画出来的东东不平滑阿,怎么解决呢?