Delphiでプログラミングを初めて、1週間。
Delphiを慣らすため、古いテキストに従って電算機を制作してみました。
Delphi初学者であるため、テキストに合わせてプログラミングをしてみても悪戦苦闘。
Delphiの特徴などを理解しながら、何とか仕上がりました。
画面を作るところやオブジェクト指向のプログラムであるため、各ボタン単位でそれぞれの動作をプログラミングするところなど、Visual Basicにやや似ています。
電卓制作で各ボタンの動作をプログラミングしていきながら、Delphiを理解を深めることができます。
他の言語でも同様に、電算機の制作はその言語の基礎を身につけるために、よく利用されています。
今回は、画面を制作するところもポイントになっています。
画面の構成は3つのパネルで作成
画面作成は、まずはコンテナコンポーネントから配置。
ツールパレットの”Standard”カテゴリのTPanel、”Additional”カテゴリのTFlowPanelとTGridPanelの3個のコンポーネントを
これらの上に”Standart”カテゴリのTEditを3個とTLabelを2個、”Additonal”カテゴリのTSpeedButtonを10個と”Standart”カテゴリのTButtonを6個を配置。
![](https://agoodday.group/wp-content/uploads/2023/05/電卓画面説明.png)
上側が表示エリアとなり左側がテンキー、右側が演算ボタンとその他の機能ボタンとなっています。
また、コンポーネントのNameプロパティも設定しておきます。
![](https://agoodday.group/wp-content/uploads/2023/05/電卓画面Name.png)
エディットコントロールの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プロパティに代入します。
以下の図が文字を代入しているソースコードです。
![](https://agoodday.group/wp-content/uploads/2023/05/電卓コード5-1024x576.png)
![](https://agoodday.group/wp-content/uploads/2023/05/電卓コード6-1024x576.png)
![](https://agoodday.group/wp-content/uploads/2023/05/電卓コード7-1024x576.png)
![](https://agoodday.group/wp-content/uploads/2023/05/電卓コード8-1024x576.png)
演算ロジックのコーディング
演算とはもちろん、2 × 8 = 16 などのことです。
テンキーの【2】をクリックすると、【edtInput1】には【2】が代入されます。(図2)
演算キーの【×】をクリックすると、「lblEnzan」のCaptionに【×】が代入されます。(図3)
テンキーの【8】をクリックすると、【edtInput2】には【8】が代入されます。(図4)
最後に【計算】キーをクリックすれば、「lblEqual」のCaptionに【=】と【edtKekka】に【16】の結果が代入されます。(図5)
colorも値が代入されるところは白色に変化させています。
クリアボタンで初期状態に戻ります。(図1)
![](https://agoodday.group/wp-content/uploads/2023/05/演算1-1.png)
![](https://agoodday.group/wp-content/uploads/2023/05/演算2-1.png)
![](https://agoodday.group/wp-content/uploads/2023/05/演算3-1.png)
![](https://agoodday.group/wp-content/uploads/2023/05/演算4-1.png)
![](https://agoodday.group/wp-content/uploads/2023/05/演算5-1.png)
以下の図がコーディングの内容です。
![](https://agoodday.group/wp-content/uploads/2023/05/電卓コード2-1024x576.png)
![](https://agoodday.group/wp-content/uploads/2023/05/電卓コード3-1024x576.png)
![](https://agoodday.group/wp-content/uploads/2023/05/電卓コード1-1024x576.png)
まとめ
![](https://agoodday.group/wp-content/uploads/2023/05/25702037_m-1024x683.jpg)
計算機のプログラミングをすることで、Delphiの基礎がやや理解できたと思います。
オブジェクト指向についても、一応の理解ができたはずです。
今回の場合では、演算するときはTEditコントロールを使用しているので、注意したいのはTEditコントロールはTextプロパティであるため、数値は文字を代入しているところです。
内部変数で計算する場合であれば、数値タイプを宣言して計算すればいいのですが、今回ですと、演算を文字の数字を使用します。
数値計算のやり方も場合によっては、文字の数値で演算をおこなうこともあるということを知りました。
コメント