MoveTo と LineTo

MoveToとLineToの例です。MoveToは、その名の通り「移動」でLineToは「ラインを引く」です。ボタンを一つ置いて以下のコードを書いてください。

procedure TForm1.Button1Click(Sender: TObject);
begin
  Canvas.MoveTo(100, 100);
  Canvas.LineTo(200, 100);

  Canvas.Pen.Width := Canvas.Pen.Width * 2;
  Canvas.LineTo(200, 200);

  Canvas.Pen.Width := Canvas.Pen.Width * 2;
  Canvas.LineTo(100, 200);

  Canvas.Pen.Width := Canvas.Pen.Width * 2;
  Canvas.LineTo(100, 100);
end;

また、これは以下のようにも書けます。

procedure TForm1.Button1Click(Sender: TObject);
begin
  with Canvas do
  begin
    MoveTo(100, 100);
    LineTo(200, 100);

    Pen.Width := Pen.Width * 2;
    LineTo(200, 200);

    Pen.Width := Pen.Width * 2;
    LineTo(100, 200);

    Pen.Width := Pen.Width * 2;
    LineTo(100, 100);
  end;
end;

これだけで、使い方がおよそ分かったと思います。次の例も参考にして下さい。

procedure TForm1.Button1Click(Sender: TObject);
begin
  with Canvas do
  begin
    Pen.Style := psSolid;
    MoveTo(100, 20);
    LineTo(300, 20);

    Pen.Style := psDash;
    MoveTo(100, 40);
    LineTo(300, 40);

    Pen.Style := psDot;
    Pen.Color := clBlue;
    MoveTo(100, 60);
    LineTo(300, 60);

    Pen.Style := psDashDot;
    Pen.Color := clRed;
    MoveTo(100, 80);
    LineTo(300, 80);

    Pen.Style := psDashDotDot;
    Pen.Color := clGreen;
    MoveTo(100, 100);
    LineTo(300, 100);
  end;
end;

こんな感じになります。

同じように、図形も書くことが出来ます。

procedure TForm1.Button1Click(Sender: TObject);
begin
  with Canvas do
  begin
    Ellipse(10, 10, 100, 100);

    Brush.Color := clBlue;
    RoundRect(120, 10, 200, 100, 20, 20);

    Pen.Width := 10;
    Brush.Color := clGreen;
    Rectangle(250, 20, 350, 100);

    Brush.Style := bsClear;
    Font.Size := 50;
    Font.Style := [fsItalic, fsUnderline];
    TextOut(120, 120, 'Form1');
  end;
end;

このように表示されます。


up next
Last update 2002/3/12