はじめてのDelphiアプリケーション (VCL Form編)
DelphiでシンプルなVCLフォームアプリケーションを作成する手順を紹介します。
プロジェクトの作成
Delphiを起動します。下図のウィンドウが表示されます。
[ファイル]メニューの[新規作成]の[VCL フォーム アプリケーション]の項目をクリックします。
新しいVCLフォームアプリケーションが作成されます。
フォームの編集、コンポーネントの配置
フォームデザイナ画面(中央)のフォームの周囲にある四角のマーク(ハンドル)のうち右下の白いハンドル部分をドラッグするとフォームの大きさを変更できます。ハンドルをドラッグしてフォームの大きさを変更します。
ウィンドウ右下の[ツールパレット]の[Standard]カテゴリを開き、[TEdit]のコンポーネントをクリックして選択します。
[TEdit]のコンボーネントをフォームデザイナのフォームにドラッグ&ドロップします。フォームにテキストボックスが配置できました。
同じ手順を2回繰り返し、フォームにテキストボックスを3つ配置します。
フォームに配置されたテキストボックスをクリックすると、コンポーネントの周囲に水色のハンドルが表示され選択状態になります。選択されたコンポーネントをドラッグすると位置を変更できます。配置したテキストボックスを移動して整列させます。
続いて、[ツールパレット]ウィンドウの[Standard]カテゴリを開き、[TButton]コンポーネントをクリックして選択します。
コンポーネントをドラッグしてフォームにドロップします。フォームにボタンコントロールが配置できました。
同じ手順を3回繰り返し、フォームにボタンを4つ配置します。
プロパティの編集
テキストボックスに表示されている値を変更します。フォームに配置されているテキストボックスをクリックして選択します。
ウィンドウ右下の[オブジェクト インスペクター]ウィンドウの[プロパティ]タブのプロパティ一覧から"Text"プロパティを探します。Textプロパティの右側の値が入力されているフィールドをクリックし編集状態にします。
値を空にします。値が空になるとテキストボックスに入力されている文字列も空になります。
同じ操作を残り2つのテキストボックスにもします。テキストボックスに入力されている文字列が空になりました。
続いて、ボタンの文字列を変更します。フォームに配置されているボタンをクリックして選択します。
ウィンドウ右下の[オブジェクト インスペクター]ウィンドウの[プロパティ]タブのプロパティ一覧から"Caption"プロパティを探します。Captionプロパティの右側の値が入力されているフィールドをクリックし編集状態にします。
値を "+" に変更します。ボタンの表面の文字列も "+" に変化します。
同様の手順を繰り返し、それぞれのボタンの文字列を "+" "-" "*" "/" に変更します。
イベントの実装
続いてボタンをクリックした際に実行する処理を実装します。フォームに配置したボタンをクリックして選択します。ウィンドウ左下の[オブジェクト インスペクタ]のウィンドウで[イベント]タブをクリックします。イベントの一覧が表示されますので、OnClickの項目を見つけます。
[OnClick] の項目の値部分をダブルクリックします。
ボタンのクリックイベントハンドラーが作成され、コード編集画面に切り替わります。
コード
下記のコードを記述します。
procedure TForm1.Button1Click(Sender: TObject);
var
a:integer;
b:integer;
c:integer;
begin
a := StrToInt(Edit1.Text);
b := StrToInt(Edit2.Text);
c := a+b;
Edit3.Text := IntToStr(c);
end;
解説
var ブロックで変数を宣言しています。今回は、a,b,c3つのinteger型の変数を宣言しています。
テキストボックスに入力された値を数値に変換し、変数a,bに代入しています。その後 変数cに変数aとbの和を代入します。変数cの値をもう一つのテキストボックスに表示します。
プロジェクトの保存
作成したプロジェクト(プログラム)を保存します。[ファイル]メニューの[プロジェクトに名前を付けて保存]をクリックします。
最初にユニットが保存されていないため、ユニットの保存ダイアログが表示されます。ユニットの保存先とファイル名を設定して保存します。
続いてプロジェクトファイルの保存ダイアログが表示されます。プロじぇうとファイルの保存先とファイル名を設定して保存します。
プロジェクトの実行、デバッグ
作成したプログラムを実行します。
ツールバーの黄色の円でマークしたボタン(実行)をクリックします。または一つ左側の緑色の三角形のアイコンのボタン(デバッガを使わずに実行)をクリックします。
または、メニューの[実行]からでも実行できます。
プロジェクトが実行され、下図のウィンドウが表示されます。
テキストボックスに数値の値を入力します。
入力後[+]のボタンをクリックします。一番右側のテキストボックスに入力した2つの数値の和が表示されます。
他のイベント、コードの実装
先の手順と同じ手順を繰り返し、残りの3つのボタンのClickイベントを実装します。
コード編集画面とフォームデザイナを切り替える場合は、コードウィンドウ、フォームデザイナの下部の[コード][デザイン]のタブをクリックすることで切り替えられます。
コード全体は下記になります。
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
a:integer;
b:integer;
c:integer;
begin
a := StrToInt(Edit1.Text);
b := StrToInt(Edit2.Text);
c := a+b;
Edit3.Text := IntToStr(c);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
a:integer;
b:integer;
c:integer;
begin
a := StrToInt(Edit1.Text);
b := StrToInt(Edit2.Text);
c := a-b;
Edit3.Text := IntToStr(c);
end;
procedure TForm1.Button3Click(Sender: TObject);
var
a:integer;
b:integer;
c:integer;
begin
a := StrToInt(Edit1.Text);
b := StrToInt(Edit2.Text);
c := a*b;
Edit3.Text := IntToStr(c);
end;
procedure TForm1.Button4Click(Sender: TObject);
var
a:integer;
b:integer;
c:Extended;
begin
a := StrToInt(Edit1.Text);
b := StrToInt(Edit2.Text);
c := a/b;
Edit3.Text := FloatToStr(c);
end;
end.
解説
割り算のボタンのコードは割り算の結果が浮動小数値になるため、結果はExtended型に保存します。テキストボックスに表示する場合もFloatToStr関数を利用します。
procedure TForm1.Button4Click(Sender: TObject);
var
a:integer;
b:integer;
c:Extended;
begin
a := StrToInt(Edit1.Text);
b := StrToInt(Edit2.Text);
c := a/b;
Edit3.Text := FloatToStr(c);
end;
実行結果
プロジェクトを実行します。ウィンドウが表示されますのでテキストボックスに数値を入力します。
[/]ボタンをクリックします。右側のテキストボックスに入力した文字の割り算の結果が表示されます。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用