2013-05-22 4 views
0

특정 X와 Y (직교 좌표)에서 목록 선과 원호가있는 델파이 양식에 기하학적 모양을 그리거나 표시하려고합니다.기하학적 모양을 그립니다.

예 :

-Line X0Y0 to X10Y0 
-Line X10Y0 to X10Y10 
-Line X10Y10 to X0Y10 
-Line X0Y10 to X0Y0 
-Arc/Circle at X5Y5 diameter of 1 

중심에서 1 개 단위 직경의 구멍이 10 × 광장 당길. 이 양식을 어떻게 양식에 그릴 수 있습니까?

나는이 기사를 사용하려고 애쓰는 중입니다 만, 이것을하는 더 좋은 방법이 있습니까? 새로운 VCL 양식 응용 프로그램 (File->New->VCL Form Application), 양식의 중간에 TButton 드롭에서 http://docwiki.embarcadero.com/CodeExamples/XE4/en/FMXTCanvasDrawFunctions_(Delphi)

+0

당신은 무엇을 시도 했습니까? – OnTheFly

+0

델파이 2006에서는 VCL 폼이라고 생각합니다. 무엇을 시도해야할지 모르겠으므로 아무 것도 시도하지 않았습니다. 이런 일은 한번도하지 않았습니다. 내가 뭔가를 시작하도록 내 양식에 추가 할 구성 요소를 모르겠습니다. – ikathegreat

+1

선과 호를 그립니다. 선과 호를 그리는 * built-in * 함수의 예제 코드를 발견했습니다. 문제가 어디에 있습니까? –

답변

2

두 번 클릭 TForm1.Button1Click 이벤트 핸들러를 생성하는 데,이 코드를 사용

procedure TForm1.Button1Click(Sender: TObject); 
var 
    OldBrushColor, OldPenColor: TColor; 
begin 
    // I've enlarged the size of the rectangle (box) 
    // to 20 x 20 for illustration purposes. 
    OldBrushColor := Self.Canvas.Brush.Color; 
    Self.Canvas.Brush.Color := clBlack; 
    Self.Canvas.Rectangle(10, 10, 30, 30); 
    Self.Canvas.Brush.Color := OldBrushColor; 
    Self.Canvas.Ellipse(11, 11, 29, 29); 

    // Alternative using MoveTo/LineTo and 
    // changing pen color 
    OldPenColor := Self.Canvas.Pen.Color; 
    Self.Canvas.Pen.Color := clRed; 
    Self.Canvas.MoveTo(30, 10); 
    Self.Canvas.LineTo(50, 10); 
    Self.Canvas.MoveTo(50, 10); 
    Self.Canvas.LineTo(50, 30); 
    Self.Canvas.MoveTo(50, 30); 
    Self.Canvas.LineTo(30, 30); 
    Self.Canvas.MoveTo(30, 30); 
    Self.Canvas.LineTo(30, 10); 
    Self.Canvas.Ellipse(31, 11, 49, 29); 

    Self.Canvas.Pen.Color := OldPenColor; 

end; 

샘플 위의 :

Screen capture image

당신은 (예 :,382,856 다른 TCanvas 그리기 방법을 찾을 수 있습니다, Chorddocumentation에서 MoveToLineTo의 조합을 포함한다. (이 링크는 XE4의 문서 용이지만, Delphi 2006 문서에도 정보가 있어야합니다.)