读书人

deilphi中用什么控件画弧?该怎么处理

发布时间: 2012-03-09 21:42:54 作者: rapoo

deilphi中用什么控件画弧?
deilphi中用什么控件画弧?

[解决办法]

Delphi(Pascal) code
unit Unit1;interfaceuses 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);beginend;{绘制椭圆; 椭圆的参数和矩形是一样的}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);//绘制中心线beginend;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下。

读书人网 >.NET

热点推荐