こうしろうと一緒にはじめたフリーで利用できるDelphi 6 Personal版の勉強であるが,お互いにそこそこ忙しいので,なかなか時間が合わない。いろんなことをやり終えた土曜か日曜の夜10時頃にはじめることが多い。疲れがたまって,眠気の出てくる時間なので,会話は少なく,反応は鈍い。それでもDelphiには,「ふーん」とか「へー,そうなの」ともうちょっと勉強したい思わせる特徴,他の言語との文法の違いや便利さがある。

---------------------------------------------------------------
 
 procedure TForm1.Button1Click(Sender: TObject);
 var
  str: String;
 begin
  str:= Edit1.Text;
  ShowMessage('Hello ' + str + '!');
 end;

---------------------------------------------------------------
 フォームに配置されたボタンをクリックしたときの処理である。varは「ここは変数(variable)を書く場所だよ」ということを示す。Delphiは文法が厳格なPascal言語の流れをくんでおり,どこにでも変数を書くわけにはいかないのだ。str:stringは「strはstring(文字列)型の変数だよ」と左から右に読めばいいのでわかりやすい。procedure(プロシージャ)の中での処理の開始と終了はbeginとendで囲む。

 これが実行画面だ。

 フォーム上にEditコンポーネントが,1つ配置されており,ボタンを押すと,そこに入力されているテキストを変数strに代入する。「代入が:=だということは,等しいかどうかの比較演算子は=でいいんだろうな」というと,「あっ,そうか」とこうしろう。でも,43才の父と15才の息子の会話はブツ切れで,発展はない。

 ShowMessageでメッセージボックスを出力する。文字列はシングルクォートで囲み,+で連結する。なかなか,個性的である。

 それから,Delphiは型にもうるさい。

 2つのEditコンポーネントに入力した値を掛けた結果を,メッセージボックスに出力している。以下がソースコードである。

---------------------------------------------------------------
 
 procedure TForm1.Button1Click(Sender: TObject);
 var
  inta,intb : integer;
  str :string;
 begin
  inta := StrToInt(Edit1.Text);
  intb := StrToInt(Edit2.Text);
  str:= IntToStr(inta * intb );
  ShowMessage(Edit1.Text +' X ' + Edit2.Text + ' = ' + str);
 end;

---------------------------------------------------------------
 EditコンポーネントのTextプロパティをinteger型の変数inta,intbに代入するときはStrToIntでstring型からinteger型に型変換(キャスト)している。関数名は「そのまんま」なので迷わなくていい。乗算した結果は逆にIntToStrでinteger型からstring型に変換した後,他の文字列と連結し,表示している。ちょっと「型ぐるしい」感じがするが,こういう厳格さがコンパイラを速くしている要因の一つなのかもしれない。