unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;type
TForm1 = class(TForm)
procedure FormClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
FirstClick :Boolean = True;
X1,Y1 :Integer;
X2,Y2 :Integer;
var Po1,Po2 :TPoint;
implementation{$R *.DFM}procedure TForm1.FormClick(Sender: TObject);
begin
if FirstClick then
begin
GetCursorPos(Po1);
X1 := Po1.x;
Y1 := Po1.Y;
FirstClick := False;
end
else
begin
GetCursorPos(Po2);
X2 := Po2.x;
Y2 := Po2.Y;
// Canvas.FillRect(ClientRect); Canvas.MoveTo(X1,Y1);
Canvas.LineTo(X2,Y2);
X1 := Po2.x;
Y1 := Po2.Y;
end;
end;end.
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;type
TForm1 = class(TForm)
procedure FormClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
FirstClick :Boolean = True;
X1,Y1 :Integer;
X2,Y2 :Integer;
var Po1,Po2 :TPoint;
implementation{$R *.DFM}procedure TForm1.FormClick(Sender: TObject);
begin
if FirstClick then
begin
GetCursorPos(Po1);
X1 := Po1.x;
Y1 := Po1.Y;
FirstClick := False;
end
else
begin
GetCursorPos(Po2);
X2 := Po2.x;
Y2 := Po2.Y;
// Canvas.FillRect(ClientRect); Canvas.MoveTo(X1,Y1);
Canvas.LineTo(X2,Y2);
X1 := Po2.x;
Y1 := Po2.Y;
end;
end;end.
解决方案 »
- 请教连接远程 interbase 的详细说明。谢谢!
- 为什么反复创建释放多线程TTHREAD对象会引起内存溢出
- 如图,dbgrid我哪里设置错了会显示二行选中,我想选中间一行都不行
- 文本编辑器:我想在打开一个.txt后进行编辑,编辑未保存部分用不同颜色显示,当保存后再还原到原来颜色,不知该怎么设置,请赐教
- paramstr的值可以動態設定嗎?
- 本人求视频聊天源代码,1000分,要人民币请发信详谈。
- 超级郁闷,怎样设置打印机纸张的大小(类型),找了好多资料,大多让我从控制面板中设置,太不可思议了
- 如何获得当前屏幕分辨率下1cm有多少个象素?
- 谁知道Excel文件的存储格式
- 怎样用ADOtable新建或删除一个表??
- 如何判定一个目录是否为空?
- kingron的《delphi猛料》居然不能用mybase打开(nyf格式可真没见过)?why?!!!
var
bIsDrawing : boolean;
iOldX, iOldY : integer;
iStartX,iStartY : integer;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
bIsDrawing := True;
iStartX := x;
iStartY := y;
iOldX := x;
iOldY := y;
end;procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if bIsDrawing then
begin
with Image1.Canvas do
begin Pen.Mode := pmXor;
brush.Color := clred; Rectangle (Rect(iStartX,iStartY,iOldX,iOldY));
Rectangle (Rect(iStartX,iStartY,x,y));
iOldX := x;
iOldY := y;
end;
end;
end;procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
bIsdrawing := false;
end;
下面这是完整的,希望对你有所帮助!
var
bIsDrawing : boolean;
iOldX, iOldY : integer;
iStartX,iStartY : integer;procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
bIsDrawing := True;
iStartX := x;
iStartY := y;
iOldX := x;
iOldY := y;
end;procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if bIsDrawing then
begin
with Image1.Canvas do
begin Pen.Mode := pmXor;
Pen.Color := clWhite; //Rectangle (Rect(iStartX,iStartY,iOldX,iOldY));
//Rectangle (Rect(iStartX,iStartY,x,y));
MoveTo(iStartX,iStartY);
LineTo(iOldX,iOldY);
MoveTo(iStartX,iStartY);
LineTo(X,Y);
iOldX := x;
iOldY := y;
end;
end;
end;procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
bIsdrawing := false;
end;
并且可以看到但不画出来,当点击的时候才画出来的,你的方法是鼠标按住拖放时候才画直线。我并不要这个效果,你去试一下photoshop那种效果你就知道我说的是什么意思了?(:)也可能是我没表达清楚吧),谢谢
很聪明!