请问在image中怎样通过拖动鼠标画出圆、矩形等图形,还有能不能像画图工具中的画笔那样画出任意的不规则图形呢?可不可以记录他们的坐标呢?能给我一些例子吗?
thx!!!!
thx!!!!
解决方案 »
- 寻书 :Delphi Developer's Handbook(Delphi高级开发指南)
- 一个长度为10个字符的字符串(或字符数组),若中间有字符CHR(0),就不能用PCHAR来存储吗?
- 请问我想删除控件 因该怎么处理呢?
- 紧急求救,谁有Delphi7高效数据库程序设计光盘资料
- 散分,人人有份!~
- 请教各位一个关于数据库联接的问题!
- 为什么我在D5下写的小程序拷贝到D6的PROJECTS下后,只要用D6试图打开它,D6就自动关闭?
- 用delphi6做OCX控件,为什么自定义属性保存不了??
- 绝对难题!考验!
- 小问题
- 请问,如何获取网站服务器的MAC地址,急啊!
- 请问在delphi中能引用olb文件吗?如何引用?
TForm1 = class(TForm)
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
Pic : TBitmap;
Rct : TRect;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
Pic := TBitmap.Create;
with Pic do
begin
Canvas.Brush.Color := clRed;
Height := image1.Height;
Width := image1.Width;
Canvas.FillRect(Rect(0,0,Width,Height));
end;
image1.Picture.Bitmap := Pic;
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
Pic.Free;
end;procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Rct.Left := X;
Rct.Top := Y;
end;procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Rct.Right := X;
Rct.Bottom := Y;
Pic.Canvas.Brush.Color := clNavy;
Pic.Canvas.FrameRect(Rct);
Image1.Picture.Bitmap := Pic;
end;end.
2、用画笔画任意曲线:type
TForm1 = class(TForm)
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
{ Private declarations }
Pic : TBitmap;
Pnt : TPoint;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
Pic := TBitmap.Create;
with Pic do
begin
Canvas.Brush.Color := clRed;
Height := image1.Height;
Width := image1.Width;
Canvas.FillRect(Rect(0,0,Width,Height));
end;
image1.Picture.Bitmap := Pic;
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
Pic.Free;
end;procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Pnt.X := X;
Pnt.Y := Y;
Pic.Canvas.Pen.Color := clNavy;
end;procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Pic.Canvas.Pen.Color := clNavy;
Pic.Canvas.MoveTo(pnt.X,pnt.Y);
Pic.Canvas.LineTo(x,y);
//Image1.Picture.Bitmap := Pic;
end;procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if ssLeft in shift then
begin
Pic.Canvas.MoveTo(pnt.X,pnt.Y);
Pic.Canvas.LineTo(x,y);
Pnt.X := x;
Pnt.Y := Y;
Image1.Picture.Bitmap := Pic;
end;
end;end.