203研究室:Another Side of Delphi 入門

第1章 - Introduction -

第1節 - はじめての起動 -

プログラムの起動

それでは Delphi 6 Personal を起動しましょう。画面左下の スタート から【プログラム(P)】→【Borland Delphi 6】→【Delphi 6】と進みます。

使用許諾コードの取得

「Delphi6 使用許諾コードの取得」ダイアログが出てきます。

「オンラインで取得する」が選ばれていると思います。そのまま次へ(N)を押せばいいでしょう。

次のダイアログが出てきます。

すでにパスワード登録は終わっているので、デフォルトのまま次へ(N)を押しましょう。

すると、ステップ3のダイアログが出てきます。

ユーザ登録したときのメールアドレスとパスワードを入力してから次へ(N)を押しましょう。

次に、プロキシサーバの設定ダイアログが出てきます。

そのまま次へ(N)を押せばいいでしょう。

「使用許諾コードの取得に関する情報の確認」ダイアログが出てきます。

確認してから次へ(N)を押しましょう。

使用許諾コードが取得できました。

最後に終了(E)を押しましょう。

Delphi 6 が起動されました。

第2節 - 各部の名称 -

プログラムの起動画面

Delphi 6 Personal を起動すると、下のような画面になります。

ここで、各部分の名前とはたらきを簡単に説明しておきましょう。

フォーム

この部分がプログラム作成の土台になります。この上にいろいろな部品を置いて、プログラムを作っていきます。

オブジェクトインスペクタ

フォームに置いた部品の、いろいろな性質やはたらきを決めていきます。

オブジェクトツリー

フォーム上にどんな部品が載っているかを、一覧にして示してくれます。

コードエディタ

フォームの後ろに隠れています。ここに、いろいろな命令を書きます。プログラミングのメイン舞台です。

コンポーネントパレット

メニューバーの下、ツールバーの右にあります。プログラムで使ういろいろな部品が、ここに詰まっています。 Standard や Additional といったタブごとに、似た種類の部品が整理されています。

コンポーネントパレット以外は、普通のウインドウと同じように位置を変えたり、大きさを変えたり、閉じたりすることができます。

第3節 - プログラミングしないプログラム -

コンポーネントの貼り付け

Delphi には、コンポーネントと呼ばれるプログラミングのための部品が、たくさん用意されています。コンポーネントは、コンポーネントパレットに整理されています。コンポーネントパレットから部品であるコンポーネントを取り出して、フォーム上に貼り付けます。

ここでは、ボタンを貼り付けてみましょう。コンポーネントパレットの Standard タブに、OKというアイコンがあります。これをクリックしてください。

そのあと、フォームの上で一度クリックします。すると、フォーム上にボタンが貼り付けられます。

貼り付けられたボタンは、ふつうのウインドウと同じように、マウスのドラッグによって位置を変えたり、大きさを変えたりすることができます。少し試してみましょう。下の図のような大きさと位置に変更できますか。

オブジェクトインスペクタの利用

実は、マウスのドラッグを使わなくてもボタンの位置や大きさを変更することが可能です。オブジェクトインスペクタを使います。

まず、オブジェクトインスペクタ上部のを押して、 Button1 を選択します。

それからオブジェクトインスペクタ右部のスクロールバーを動かして、一番下の Width を探してください。 Width の右側に半角で 300 と入力してみましょう。

すると、ボタンの横幅が変化します。

プロパティ

Width は「幅」という意味です。 Width の値を変更すると、幅が変わります。 Width は、ボタンの性質(特徴)の一種であるといえます。このような性質を(ボタンの)プロパティといいます。

ボタンの Height (高さ)もプロパティです。また、ボタンの位置もボタンの性質と考えられます。位置は基準点から「左にどれだけ」「下にどれだけ」のところにあるかで決ま ります。「左にどれだけ」というのは Left プロパティ、「下にどれだけ」というのは Top プロパティです。基準点は、フォームのタイトルバーを除いた部分の左上の点になります。

Width 、 Height 、 Left 、Top プロパティにそれぞれ、200、50、100、150を入力して、ボタンを下の図のようにしてみましょう。値を変更するときは、オブジェクトインスペクタ の上部が Button1 になっていることを確認するように注意してください。

ここで入力した 200、50、100、150 を、プロパティの値といいます。

第4節 - 保存と実行と終了 -

Delphi での保存

第3節で下の図のようにボタンを配置しました。

これを保存しましょう。

Delphi での保存はちょっと複雑です。二段階の保存が必要です。どうしてそうなのかを理解するのに、わたしは二年くらいかかりました。二段階保存の理由は今は説明しないで、方法だけを解説します。

フォルダの作成

Another Side of Delphi では、一つのプログラムごとに一つのフォルダを用意して保存することにします。Another_Side_of_Delphi フォルダをどこかに作成してください。そのなかに、サブフォルダ introductionを作成しておいてください。

ユニットの保存

最初に、二段階保存の第一段階保存をします。これをユニットの保存といいます。

まず、ファイル(F)メニューからすべて保存(V)を選びます。すると、「Unit1 に名前を付けて保存」というダイアログが出てきます。

ここで、保存する場所を introduction フォルダにしてから、ファイル名のところに保存するファイル名を入力します。ファイル名はなんでもいいのですが、ここでは introduction_mainform にしておきます。

ファイル名を入力したら保存(S)ボタンを押します。

プロジェクトの保存

ここから第二段階の保存になります。これをプロジェクトの保存といいます。

「Project1 に名前を付けて保存」というダイアログが出ています。

保存する場所は前と同じ introduction フォルダになっていると思いますが、念のため確認してください。そして、ファイル名には、これも何でもいいのですが、ここでは introduction_project と入力しておきます。

ファイル名を入力したら保存(S)ボタンを押します。これで保存は終わりです。

今後プログラムを修正した場合は、ファイル(F)メニューから上書き保存(S)を選んで保存すればよいです。

プログラムの実行

保存したプログラムを実行しましょう。実行(R)メニューから実行(R)を選びます。あるいは、ツールバーの実行ボタンを押してもいいです。すると、下の図のようなフォームが出てきます。

今までと変わらないようにも見えますが、フォーム上の点々が消えています。これが実行画面です。

実行画面なのでボタンを押すことができます。でも、ボタンを押せるだけです。押しても何も起こりません。それもそのはずで、まだ何もプログラミングらしい命令を書いていないからです。

プログラムの終了

プログラムを終了するには、フォームの右上の閉じるボタン(×ボタン)を押します。 Delphi 本体の閉じるボタンではないので注意してください。

プログラムを終了すると、フォーム上にまた点々が出ます。これで開発中の画面に戻ります。

Delphi の終了

プログラム開発をやめて Delphi を終了するには、 Delphi 本体の閉じるボタンを押します。

プログラムを開く

Delphi を再度起動しましょう。先ほど保存したプログラムを開くには、ファイル(F)メニューからプロジェクトを開く(J)を選びます。すると、「プロジェクトを開く」ダイアログが出てきます。

introductionフォルダから introduction_project.dpr を選んでください。

再び Delphi の終了

今日はこれで終わりです。もう一度 Delphi を終了してください。

第2章 - 電卓を作ろう -

第1節 - 丸写しプログラムと代入文 -

プログラムの起動

Delphi 6 Personal を起動しましょう。画面左下の スタート から【プログラム(P)】→【Borland Delphi 6】→【Delphi 6】と進みます。

プログラムの保存

ここで、プログラムを保存しておきます。まだ何も作っていませんが、プログラミングの途中でコンピュータが止まってしまうこともあるので、最初に名前をつけて保存するようにするとよいでしょう。

Another_Side_of_Delphi フォルダのなかにサブフォルダ copy を作って、そこにこのプログラムを保存しましょう。二段階保存の第一段階であるフォームの保存では、名前を copy_mainform 、第二段階であるプロジェクトの保存では、名前をcopy_project にします。

今後はこまめにファイル(F)メニューから上書き保存(S)を選んで保存するようにしましょう。

フォームをつくる

まっさらなフォームに、一つのボタンと、二つのスピンエディットとよばれるコンポーネントを貼りつけます。ボタンの貼りつけ方は前に説明しました。ここではスピンエディットの貼りつけ方を説明します。これでコンポーネント一般の貼りつけ方がわかると思います。

コンポーネントパレットの Samples タブをクリックしてください。

そのなかのスピンエディットのアイコンをクリックします。

そして、フォーム上で1回クリックします。すると、フォームにスピンエディットが貼りつけられます。

同じようにしてさらにもう一つスピンエディットを貼りつけてください。また、ボタンも一つ貼りつけてください。できたら、だいたい下の図のように並べてください。フォームのサイズも小さくしておくといいでしょう。

プログラムの実行

プログラムを実行してみましょう。実行(R)メニューから実行(R)を選びます。

スピンエディットは、右側の小さなボタンを押すことによって値を変えることができます。試してみましょう。ただし、値は整数にしかなりません。

これから命令を書きます。どんなプログラムを作るかというと、今、上のように左のスピンエディットに 5 、右に 17 が入っているとします。ここで真ん中の Button1 を押したとたん、右のスピンエディットも 5 になるようにします。左の値を右に丸ごとコピーするプログラムです。

今はボタンを押しても丸ごとコピーはされません。これから命令を書きましょう。いったん、フォームの右上の×を押してプログラムを終了してください。

命令を書く場所

書く命令は「ボタンを押したら、左の値を右側に丸ごとコピーせよ」です。これをどこに書けばいいのでしょうか。

オブジェクトツリーのなかの Button1 をクリックしてください。

オブジェクトインスペクタの白い窓に、先ほど選んだ Button1 と表示されていることを確認してください。そして、イベントタブをクリックしてください。

これから書く命令は、ボタンを押したとき( Click したとき)に何をするかという命令です。なので、 OnClick と書かれた部分に注目します。この部分の右側の白いところをダブルクリックしてください。

すると、次の図のようにコードエディタが前面に出てきます。

命令を書くのは、コードエディタのカーソルが点滅しているところです。

丸ごとコピーの命令−代入文−

さて、「左の値を右側に丸ごとコピーせよ」という命令を書きましょう。一行だけです。下線を引いた部分を追加してください。これからも同じです。命令はすべて半角文字で書いてください。

procedure TForm1.Button1Click(Sender: TObject);
begin
  SpinEdit2.Value:=SpinEdit1.Value;
end;

この命令に出てくる Value は、Height や Width と同じようにプロパティの一つです。Height は高さ、Width は幅を表しました。Value は「値」という意味で、スピンエディットに表示される数値を表します。

SpinEdit2.Value:=SpinEdit1.Value; は、「 SpinEdit2 の値に SpinEdit1の値を代入せよ」という命令になります。「 := 」が「右を左に代入」という意味です。ただのイコール「 = 」ではいけません。このように「 :=」を使って「右を左に代入」させる命令文を代入文といいます。この代入文が、Another Side of Delphiで書いてもらう初めての命令文になりました。

「 . 」は、とりあえず、「の」と考えればいいでしょう。「 SpinEdit2.Value 」は、「 SpinEdit2 の値」になります。

最後の「 ; 」は、一つの命令文の終わりを表します。日本語の「。」と同じです。

ところで、SpinEdit2 の前にスペースが空いています。これは必ず半角スペースで空けてください。2マス分にする意味はありません。何マスでもいいですが、2マスほど空けておくとプログラムが見やすくなります。

実行結果の確認

さて、プログラムを実行して動作を確認してみましょう。左側のスピンエディットの値を変えてから、真ん中の Button1を押します。スピンエディットの値が右側にコピーされれば合格です。

ところで、プログラムが正しく実行されず、下のような図が出ることがあります。

これはたいてい、プログラムの一部にミスがあったときに起こります。上の図の例では、代入を表す「 := 」を書かなければならないところを「=」にしてしまったミスです。カーソルが点滅しているところにミスがあります。どんなミスかは、コードエディタの下の方の[エラー]と書かれた部分を読むとわかることがあります。プログラムを見直して修正してから、再度実行してみてください。

正しく実行できたら、上書き保存をしてから Delphi を終了してください。

第2節 - プログラムの再利用 -

プログラムを開く

第1節で作った copy_project を再利用して改造しましょう。まず copy_project を開きます。ファイル(F)メニューからプロジェクトを開く(J)へ進んで、 copy_project.dpr を開きます。

フォルダの作成

改造してこれから新しく作るプログラムは、 plus というフォルダのなかに保存することにします。 Delphi_in_the_Dark フォルダのなかに、サブフォルダ plus を作成しておいてください。

ユニットの再保存

最初に、第一段階保存であるユニットの再保存をします。ファイル(F)メニューから名前を付けて保存(A)へ進んみます。保存する場所を plus フォルダにしてから、ファイル名を plus_mainform として保存します。

プロジェクトの再保存

続けて、第二段階保存であるプロジェクトの再保存をします。ファイル(F)メニューからプロジェクトに名前を付けて保存(F)へ進んみます。保存する場所が plus フォルダになっていることを確認してから、ファイル名を plus_project として保存します。

プログラムの再利用

これから plus_project プログラムを再利用して改造します。今後はすべて保存(V)を選びましょう。もとの copy_project の方はそのまま残っていますから、もし改造に失敗したとしても大丈夫です。

第3節 - 足し算とプラス演算子 -

フォームの修正

新しく名前をつけた plus_project を開いてください。

そして、フォームにボタンを1個とスピンエディットを1個追加して、次の図のようにしてください。

これで、Button2 を押したときに、足し算をさせることにしましょう。上の二つのスピンエディットに入っている数の合計を、下のスピンエディットに表示するようにしましょう。

命令を書く場所

命令を書く場所はどこでしょうか。Button1 を押したときの命令をどこに書いたか、考えてみましょう。今度は Button2 です。念のため、Button2 を押したときの命令を書く場所を見つける手順を示しておきます。

オブジェクトツリーのなかの Button2 をクリックしてください。

オブジェクトインスペクタの白い窓に、先ほど選んだ Button1 と表示されていることを確認してください。そして、イベントタブをクリックしてください。

これから書く命令は、ボタンを押したとき( Click したとき)に何をするかという命令です。なので、 OnClick と書かれた部分に注目します。この部分の右側の白いところをダブルクリックしてください。

すると、次の図のようにコードエディタが前面に出てきます。

命令を書くのは、コードエディタのカーソルが点滅しているところです。

足し算の命令−プラス演算子−

さて、「上の二つのスピンエディットの合計を計算して、下のスピンエディット表示せよ」という命令を書きましょう。一行だけです。どんな命令か、想像がつくでしょうか。下線を引いた部分を追加してください。命令はすべて半角文字で書いてください。

procedure TForm1.Button2Click(Sender: TObject);
begin
  SpinEdit3.Value:=SpinEdit1.Value+SpinEdit2.Value;
end;

「 SpinEdit3 の値に SpinEdit1 と SpinEdit2 の足し算の結果を代入せよ」という命令になります。「 := 」が「右を左に代入」という意味でした。「 + 」は、算数と同じく「足す」という意味です。これを、「プラス演算子」といいます。

実行結果の確認

さて、プログラムを実行して動作を確認してみましょう。上の二つのスピンエディットの値を変えてみましょう。

そして、Button2を押します。下のスピンエディットの値が、正しい足し算結果に変われば合格です。

これで完成ですので、ここで上書き保存しておきましょう。