Delphiで電算機を作りました!

プログラム言語

Delphiでプログラミングを初めて、1週間。
Delphiを慣らすため、古いテキストに従って電算機を制作してみました。

Delphi初学者であるため、テキストに合わせてプログラミングをしてみても悪戦苦闘。
Delphiの特徴などを理解しながら、何とか仕上がりました。

画面を作るところやオブジェクト指向のプログラムであるため、各ボタン単位でそれぞれの動作をプログラミングするところなど、Visual Basicにやや似ています。

電卓制作で各ボタンの動作をプログラミングしていきながら、Delphiを理解を深めることができます。
他の言語でも同様に、電算機の制作はその言語の基礎を身につけるために、よく利用されています。

今回は、画面を制作するところもポイントになっています。

画面の構成は3つのパネルで作成

画面作成は、まずはコンテナコンポーネントから配置。

ツールパレットの”Standard”カテゴリのTPanel、”Additional”カテゴリのTFlowPanelTGridPanelの3個のコンポーネントを

これらの上に”Standart”カテゴリのTEditを3個とTLabelを2個、”Additonal”カテゴリのTSpeedButtonを10個と”Standart”カテゴリのTButtonを6個を配置。


上側が表示エリアとなり左側がテンキー、右側が演算ボタンとその他の機能ボタンとなっています。
また、コンポーネントのNameプロパティも設定しておきます。

エディットコントロールのTextプロパティを3個とも【空白】を設定して、Nameプロパティは【edtInput1】【edtInput2】【edtKekka】、colorプロパティにはEdit1は【clWhite】とEdit2とEdit3は【clYellow】を設定。

ボタンコントロールのCaptionプロパティには【1】【2】【3】…..【0】【+】【ー】【×】【÷】【クリア】【コピー】【閉じる】【計算】を設定。

ラベルコントロールの「lblEnzan」のCaptionプロパティには【空白】とAutoSizeプロパティには【False】、「lblEqual」のCaptionプロパティには【=】とVisibleプロパティには【False】を設定。

画面はこのような感じで出来上がりです。

テンキーのコーディング

テンキーでEdti1~3には数値が入るようにしますが、プロパティはTextプロパティです。

でも、Delphiは文字が使えます。
文字を使って数値計算ができます。

数字の文字を【edtInput1】と【edtInput2】のTextプロパティに代入します。
以下の図が文字を代入しているソースコードです。

演算ロジックのコーディング

演算とはもちろん、2 × 8 = 16 などのことです。
テンキーの【2】をクリックすると、【edtInput1】には【2】が代入されます。(図2)

演算キーの【×】をクリックすると、「lblEnzan」のCaptionに【×】が代入されます。(図3)
テンキーの【8】をクリックすると、【edtInput2】には【8】が代入されます。(図4)

最後に【計算】キーをクリックすれば、「lblEqual」のCaptionに【=】と【edtKekka】に【16】の結果が代入されます。(図5)

colorも値が代入されるところは白色に変化させています。
クリアボタンで初期状態に戻ります。(図1)

以下の図がコーディングの内容です。

まとめ

計算機のプログラミングをすることで、Delphiの基礎がやや理解できたと思います。
オブジェクト指向についても、一応の理解ができたはずです。

今回の場合では、演算するときはTEditコントロールを使用しているので、注意したいのはTEditコントロールはTextプロパティであるため、数値は文字を代入しているところです。

内部変数で計算する場合であれば、数値タイプを宣言して計算すればいいのですが、今回ですと、演算を文字の数字を使用します。

数値計算のやり方も場合によっては、文字の数値で演算をおこなうこともあるということを知りました。

コメント

タイトルとURLをコピーしました