读书人

为什么划线没有显示出来啊(初学者请问)

发布时间: 2012-03-06 20:47:55 作者: rapoo

为什么划线没有显示出来啊(菜鸟请教)
程序代码如下:
unit xian;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure FormMouseDown(Sender:TObject;Button:TMouseButton;
Shift:TShiftState;X,Y:integer);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
start:boolean;

implementation

{$R *.dfm}

procedure TForm1.FormMouseDown(Sender:TObject;Button:TMouseButton;
Shift:TShiftState;X,Y:integer);
begin
if start then
form1.Canvas.LineTo(x,y);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
start:=false;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
start:=true;
end;

end.


小弟刚学delphi,很多不懂的,请各位大侠能指教,让菜鸟高飞吧

[解决办法]
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button1Click(Sender: TObject);
private
bStart : Boolean;
iX, iY : Integer;
public
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
iX := 0;
iY := 0;
bStart := False;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if bStart then
begin
Self.Canvas.MoveTo(iX, iY);
Self.Canvas.LineTo(X, Y);
end;
iX := X;
iY := Y;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
bStart := not bStart;
end;

end.

[解决办法]
可以阿,你的代码在我这里执行挺好的,不过画的是弯弯曲曲的鼠标轨迹线
[解决办法]
各个事件都对好应好代码了吗?如 Form1的OnMouseDown事件里是否对应了相应的代码

读书人网 >.NET

热点推荐