AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
CAD作ろ! マウスで絵を描く(1)
それでは、マウスで絵を描くプログラムを作ってみましょう。OnMouseDownで、マウスのボタンを押した時に点を描かせます。プログラムは以前作ったテスト4を少し利用します。まず、テスト4でペン・ブラシの設定を各ボタンの処理で何回も書くのはプログラムが汚くなりますので、「PenBrushSet」という名前の手続きを作ります。この手続き「PenBrushSet」の宣言は、このUNIT0006.PAS内だけで利用するので、以下の場所に書きます。
type
 TForm1 = class(TForm)
  ・・・
 private
  { Private 宣言 }
  procedure PenBrushSet ;
 public
  { Public 宣言 }
 end;
「private」は、このTForm1内だけで利用する事を指します。「public」は、他のフォーム/ユニットから「Form1.〜」として呼び出したい場合に利用します。これについてはまた別の節で説明します。
次に、
procedure TForm1.FormShow(Sender: TObject);
というのがありますが、これは、プログラムが実行されて、フォームが表示された時に実行されるイベントです。順番としては、
OnCreate→OnShow→OnPaint
のようになります。OnCreateは、コンピュータのメモリ内にフォームの準備が出来た時、OnPaintは、フォームの描画指令が出た時、に発生するイベントです。変数の初期化だけならOnCreateに指示する事も出来ますが、フォームに配置したコンポーネントのプロパティ操作等は、OnShowの方が良いです。OnPaintは、フォームが別のプログラム等に隠された後フォームの再描画を行う時にも発生しますので、ここに変数の初期化等を指示する事は出来ません。また、描画指令のタイミングによっては無限ループに落ち込んでしまう場合もありますので(描画→OnPaint→描画→OnPaint・・・)、気を付ける必要があります。
ここでは、
DrawMode := 0 ;  // 作図モード:無し
自分で作成した変数「DrawMode」の初期化を行っています。
 
「点を描く」というボタンを作成し、ここでは、変数「DrawMode」の値を「1」(点の作図モード)にしています。
 
そして、Image1の OnMouseDownイベントで、DrawModeの値が1だったら、つまり、今現在、点を作図するモードであれば、点を描く、という具合にしています。
点を描くだけのプログラムであれば、このような事をする必要は無いのですが、いろんな機能を行わせたい場合には、現在何をやっているのか、次に何をしないといけないのか、等をプログラムで管理する必要が出てくる場合が多いです。
ここまでのソース・プログラム
 
 
さて、このプログラムを実行してもらうと直ぐに分かりますが、マウスのボタンを押しながらマウスを移動すると、点は描いてくれません。OnMouseDownではなく、OnMouseMoveの方が優先されているためです。ですので、OnMouseMoveにも、点を作図するコードを書く必要があります。
ここまでのソース・プログラム
 
 
CAD装置(1)
CAD装置(2)
メディア
AutoCADの
DIESELマクロ
CSV
DXF
PCES
IGES
STEP
数学とCAD
CAD作ろ!
 ▲PREV
 ▼NEXT
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015 By AFsoft All Rights Reserved.