一个画图程序,没思路,恳求大神支招
一个画图程序,没有思路,恳求大神支招
一般的画图工具中,画直线都是mousedown随便点击一个点后,一直按着左键,mouseup后直线画出来了,可是我想希望的画直线,是mousedown点击一个点后,mouseup,然后再mousedown点击一个点,两个点之间连成直线,我不知道怎么做了,希望大神们支招,谢谢各位。
------解决思路----------------------
------解决思路----------------------

修改代码如上,画图效果。
一般的画图工具中,画直线都是mousedown随便点击一个点后,一直按着左键,mouseup后直线画出来了,可是我想希望的画直线,是mousedown点击一个点后,mouseup,然后再mousedown点击一个点,两个点之间连成直线,我不知道怎么做了,希望大神们支招,谢谢各位。
------解决思路----------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
chk1: TCheckBox;
mmo1: TMemo;
procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
pt1: TPoint;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if (pt1.X <> x) and (pt1.Y <> y) then
begin
if (pt1.X <> 0) and (pt1.Y <> 0) then
begin
self.Canvas.MoveTo(pt1.X , pt1.Y);
self.Canvas.LineTo(x, y);
end;
pt1.X := x;
pt1.Y := y;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
pt1.X := 0;
pt1.Y := 0;
end;
end.
------解决思路----------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
ONE,TWO:Tpoint;
implementation
{$R *.dfm}
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
One:=TWO;
TWO.X:=X;
TWO.Y:=Y;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Canvas.MoveTo(ONE.X,ONE.Y);
Canvas.LINETo(TWO.X,TWO.Y);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Form1.Repaint;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
end.
修改代码如上,画图效果。