|
★Delphiで絵を描くには?
取りあえず、
Windows、Delphiで、どうやれば絵が描けるのか?
まずそこから入りましょう。取りあえず、画面で見れないと面白くありませんし。
Delphiを起動し、環境設定や作業フォルダ等の指定は既に終わっているとして、Form1の画面が出ていると思います。Formにそのまま絵を描く事も出来るのですが、通常は、[System]にあるPaintBoxか[Additional]にあるImageコンポーネントを置いて、Alignプロパティを「alClient」にして全画面状態にして、それらのCanvas内に絵を描くようにします。PaintBoxとImageの違いは、Imageの方が機能が多い分、動作が少し重い、という感じです。実際にプログラミングすればすぐに分かりますが、フォームをリサイズした時や他の画面で隠れた後、Imageでは自動的に再描画してくれますが、PaintBoxの場合は再描画してくれないので自分でOnPaintイベントにプログラムコードを書く必要があります。取りあえずテストでは、Imageコンポーネントを貼り付けておきます。おっと、その前に、リサイズ出来るフォームを作る場合には、最初にステータスバー([Win32]内の「StatusBar」)を貼り付けておくのが良いでしょう。そして後でボタンを置くために、パネル([Standard]内の[Panel])を貼って、右合わせにします。これは別に左だろうと上だろうと下だろうと自由に配置してください。Alignプロパティを「alRight」にして、"Panel1"の文字が邪魔なのでCaptionプロパティを何も無しにします。それからImageコンポーネントを置いてAlignプロパティを「alClient」にします。
取りあえず、保存しましょう。【この状態でのソース】
タイトルバーの文字は、Form1のCaptionプロパティを触ります。
保存する際は、保存先のフォルダ、それと、メニュー「プロジェクト|オプション」の「ディレクトリ/条件」("ディレクトリ"というのは"フォルダ"と同じ意味です)に注意をしてください。ここで指定するフォルダ先は、私の場合は通常、全て同じもの(=保存先)にしてあります。なお、プロジェクトファイル名がそのまま実行ファイル名になります。試しに実行をして動くかどうかを確認してみて下さい。
★キャンバスに絵を描く
ImageコンポーネントやPaintBoxコンポーネントには、キャンバス(Canvas)があります。そこに絵を描いていくことになります。あ、さて、それでは、線分を描く事にしましょう。
パネルをクリックして選択した状態にして、ボタン([Standard]内のButton)を1つ配置し、大きさを変えて、移動します。ボタンの文字は最初「Button1」となっていますので、Captionプロパティを「線」にします。
このButton1をクリックして選択し、オブジェクトインスペクタ画面の「イベント」の「OnClick」の入力欄をダブルクリックします。すると自動的に「Button1Click」という文字が入って、プログラム入力画面に以下のようなコードが現れます。
procedure TForm1.Button1Click(Sender: TObject);
begin
(ここにプログラムコードを書きます)
end; |
「OnClick」イベントとは、このボタンを「クリック」した時のイベント、つまり、ボタンをクリックしたらどういう風にしますか?ってのを書いていく訳です。例えば、ボタンを押したら音を鳴らしたい場合には、
procedure TForm1.Button1Click(Sender: TObject);
begin
MessageBeep(Word(-1));
end; |
と書きます。保存をして実行してみて下さい。ボタンを押したら「ピッ」って音が出るはずです。
次に、キャンバスに線を描くには、以下のように書きます。
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Canvas.MoveTo(100,100);
Image1.Canvas.LineTo(200,200);
end; |
これは、座標点(100,100)から座標点(200,200)までの線分を描く、という意味です。Image1のCanvasに、というのを何回も書くのが面倒だし綺麗じゃない、という事であれば、
procedure TForm1.Button1Click(Sender: TObject);
begin
with Image1.Canvas do begin
MoveTo(100,100);
LineTo(200,200);
end;
end; |
とまとめて書く事が出来ます。(上記は画面上の都合のため全角空白を使っていますが実際には半角空白かTABでインデントして下さい)
さぁ、保存をして、実行してみて下さい。
ボタンを押したら線が描かれますね?
【この状態でのソース】(一応、上記と違う名前で保存しています)
なお、プログラムソースしか圧縮していませんが、これは、作成されるプログラムファイルがそれなりに大きいサイズになってしまう事(上記だと414KB)と、コンパイルすれば容易に作成出来る事がその理由です。
あ、さて、ざっと書いてしまいましたが、この「Canvas」に座標で指定しましたが、その座標系は以下のようになっています。
これに対して、通常のグラフや、CADでの座標系は、
のようになっていますので注意して下さい。
|
|
CAD装置(1)
CAD装置(2)
メディア
AutoCADの
DIESELマクロ
CSV
DXF
PCES
IGES
STEP
数学とCAD
CAD作ろ!
▲PREV
▼NEXT
|