deilphi中用什么控件画弧?该怎么处理
deilphi中用什么控件画弧?
deilphi中用什么控件画弧?
------解决方案--------------------
deilphi中用什么控件画弧?
------解决方案--------------------
- Delphi(Pascal) code
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; Image1: TImage; procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} var btn: TButton; const y1 = 10; y2 = 80; {先设置画笔画刷} procedure TForm1.FormCreate(Sender: TObject); begin Canvas.Pen.Width := 2; Canvas.Pen.Color := clRed; Canvas.Brush.Color := clWhite; end; procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin end; {绘制椭圆; 椭圆的参数和矩形是一样的} procedure TForm1.Button1Click(Sender: TObject); begin btn := TButton(Sender); Canvas.Ellipse(btn.Left, y1, btn.Left+btn.Width, y2); end; {根据矩形结构绘制椭圆} procedure TForm1.Button2Click(Sender: TObject); var R: TRect; {定义一个矩形结构} begin btn := TButton(Sender); R := Rect(btn.Left, y1, btn.Left+btn.Width, y2); Canvas.Ellipse(R); end; {绘制扇形} procedure TForm1.Button3Click(Sender: TObject); begin btn := TButton(Sender); Canvas.Pie( btn.Left, y1, {矩形区域左上角} btn.Left + btn.Width, y2, {矩形区域右下角} btn.Left + btn.Width, y1 + (y2-y1) div 2, {扇形起点} btn.Left + btn.Width div 2, y1); {扇形终点} end; {绘制弦, 参数同上} procedure TForm1.Button4Click(Sender: TObject); begin btn := TButton(Sender); Canvas.Chord( btn.Left, y1, btn.Left + btn.Width, y2, btn.Left + btn.Width, y1 + (y2-y1) div 2, btn.Left + btn.Width div 2, y1 ); end; {绘制弧线, 参数同上} procedure TForm1.Button5Click(Sender: TObject); begin btn := TButton(Sender); Canvas.Arc( btn.Left, y1, btn.Left + btn.Width, y2, btn.Left + btn.Width, y1 + (y2-y1) div 2, btn.Left + btn.Width div 2, y1 ); end; procedure TForm1.Button6Click(Sender: TObject); begin canvas.MoveTo(100,100); //将画笔移动到(100,100)处 canvas.LineTo(200,200); //从(100,100)画一条直线到(200,200) end; procedure draw_cen(cen_point,Length:integer);//绘制中心线 begin end; procedure TForm1.Button7Click(Sender: TObject); var w_cen,h_cen:Integer; begin with Image1 do begin Canvas.Pen.Color := clRed; //设置颜色 w_cen:=Image1.Width div 2; //x中心点 h_cen:=Image1.Height div 2; //y中心点 Canvas.Rectangle(w_cen-10,h_cen-10,w_cen+10,h_cen+10); //绘制矩形 canvas.MoveTo(w_cen,h_cen); //将画笔移动到中心处 canvas.LineTo(w_cen,h_cen+50); //向上绘制50 canvas.MoveTo(w_cen,h_cen); //将画笔移动到中心处 canvas.LineTo(w_cen,h_cen-50); //向上绘制50 canvas.MoveTo(w_cen,h_cen); //将画笔移动到中心处 canvas.LineTo(w_cen+50,h_cen); //向上绘制50 canvas.MoveTo(w_cen,h_cen); //将画笔移动到中心处 canvas.LineTo(w_cen-50,h_cen); //向上绘制50 Update; end; end; end.
------解决方案--------------------
窗体上放 button1~button7 7个按钮可以测试 ,我以前写的片段,图上不来
------解决方案--------------------
http://topic.csdn.net/t/20021027/17/1129260.html
这是Delphi的例子,建议遇到不懂的,自己先 google下。