Delphiをやってみた 
さてさて,無償配布の News が流れるや否や,日本全国 総 Delphian 化か !?
と思わせるかのが如く,ダウンロードが殺到。
こんなときに役立つのが Iria などのダウンロードツールなわけだけど,
リトライ回数を上限まで設定し,テレホタイムの時間に夜通しトライさせましたやら,
Borland のサーバーがダウンしたとか,いろんな話があちこちの ML をにぎわせた。
が,しかし,ファイルサイズもさすがにデカく,なかなか DL できないというのが
現状だったらしい。

その頃,でるはどうしていたかというと,のほほんとしていた(申し訳ない)。
実は,友達が CATV な人で,前々から「何か大きなファイルが有るときは言いや」
と言われていたので,ちゃっかりお願いしてあったんである(爆笑)
# その本人は,プログラミングには全く興味のない人だった。

最初はさすがに繋がらなかったらしいのだけど,さすが常時接続 and CATV というのは強みである。
繋がってしまえばサクッと落とせてしまったらしい。
ありがたや。
てなわけで,「Delphi6 Personal」無事ゲット。
# この後,雑誌の付録 CD-ROM に付いてたりで結構手に入る機会は多くなったようである。

どきどきワクワクのインストール。
VB と違って,特にシステムと競合するようなものも無いし,気が楽。

見た目は,VB と雰囲気が似てますね。
Delphi も VB と同じくイベントドリブン型。
VB とは当然,文法がちょっと違うようだけれど,
その辺りは VB に格段慣れているわけでもないので,問題なし。
問題があるとすれば,HSP との文法の違いだったりする。

例えば,もし a が1なら b を1,そうでなければ,b は2,という
そういうものを書いたとする。

HSP だと,

if a = 1 {
 b = 1
}
else {
 b = 2
}

とまぁ,こんな感じだ。(書き方は他にもあるけれど,いちおこれで)

Delphiの場合,

if a = 1 then
 b := 1
else
 b := 2;

ってな感じ。

見比べてみると,ビミョーに違う
人間というのは,全く違うものというのは,覚えやすい。
けど,似ていて非なるものというのには弱い(笑)

Delphi では,if 文の時は,then が付くけど,HSP では付かない。
Delphi では,一文の後に,「;」が付くけど,HSP では付かない。
んでもって,「;」は付くけど例外があって,else の前の行には付かない。
などなど。
いやはや,なんか,頭がごっちゃんごっちゃんになってしまって,
とりあえず,この後も混乱は続き,then を付け忘れるわ,「;」は付け忘れるわで
コンパイラに怒られまくりの,出来の悪い生徒なのだった(汗)

んでもって上の場合はまだマシなのだけれど,これが例えば,
もし a が1なら, b と c を1,そうでなければ,b と c は2,というのにしたとする。

HSP だと,
と,

if a = 1 {
 b = 1
 c = 1
}
else {
 b = 2
 c = 2
}

とまぁ,こんな感じだ。
一つ目のと比べてみてくれたら判ると思うけれども,ただ単に,
c = 2というのがつけたされただけである。

ところが Delphi の場合,

if a = 1 then
begin
 b := 1;
 c := 1;
end
else
begin
 b := 2;
 c := 2;
end;

ってな感じに変わる。
ぐぉー
c の文が1つ増えただけで,Delphi はなんだか,急にややこしく見えるではないか(笑)
begin 〜 end; -- これはしょっちゅう出て来るけれど,なかなか慣れない。
友達にその話をしたらば
{ = begin 、} = end って思えば違和感ない
とのこと。
なるほっどおおお。
そういう見方があったのかーと,目から鱗。
もー,英語に弱いですから,でるふぃ(爆笑)

慣れてしまえば,と皆さんおっしゃる。
それは,たぶんどの言語でもそうだろう。
ただ,でるみたいに,頭の切り替えが上手くできない人間は,
プログラミング言語のバイリンガルになるには,遠い道のりが待っているのであった。


さてさて,ここから本格的に Delphi を始めていくわけである。
VB もそうだったけど,Delphi も まず最初に驚いたのは,
配置するボタンひとつにも多数のプロパティが用意されていることだった。
ボタンのサイズの縦横,ボタンは初期状態で使えるようにするのか否か,
ツールチップヒントを出すのか否か,見えるようにするのか否か,
ボタンに書かれる文字はなんなのか,などなど。
それに加えて,イベントドリブン型であるがゆえ,
「ボタンが押されたら」からはじまって,これまた様々な設定が出来る様になっている。

HSP では,そこまで細かい設定は無いので,ボタンの配置位置とサイズと,
ボタンが押されたらどうなるか,くらいであったから,
Delphi での,この設定出来るところの多さには面食らった。

ぅわ,めんどくさそう,と思うだろうけど,実は さにあらず。
「設定しなくてはならない」ではなく「設定することも出来る」なのである。
つまり,何も最初に全部いじらなければならないのでなく,
必要があれば自由に変更することもできるよ,という自由度を高めてくれているものなのだ。

これを間違って「これだけ設定するところがあるんだから,やらないといけない」と
思ってしまうと,あー,Delphi ってややこし〜となってしまう。
いぁ,でるも最初思いました。
何を設定すればいいんぢゃーって(笑)
でも,放ったらかしにしておけば,ごくごく普通の状態で設定されているわけで,
ああ,なんだ,全部変えなきゃならないことじゃないんだ,と気づいて
ちょち気が楽になりました(笑)

この自由度の高さ,というのは,慣れてくると元には戻れなくなったりする。
# それを発揮できるくらいのプログラミングをするならば(爆笑)

というわけで,細かいことはその都度やっていけばいいと割り切り,
さっそく,何かを作ってみましょう。

VB5のときは,自分のアプリを移植したわけで。
まぁ,Delphi でもそれでも良かったんですが,VB と Delphi は似てそうだったので,
新しいことをやってみなくては,と決心。
HSP では,やったことのない,ビジュアル的なものを,なんて考えたところ,
やっぱり「時計」でしょう,と(爆笑)
# なんでビジュアル的で,「時計」という発想が湧くかはツッコまないように(笑)

HSP を最初にやりはじめたとき,「文法間違いって?」にも書いたけど
時刻を表示するサンプルソースを打ち込んだ。
けど,結局「時計」を作るには至らず,「でるくりっぷ」というのに化けたのだけど(笑)
ここは,一発初心に返って「時計」をつくってみようではないかと,意気込み満点(爆笑)

まぁ,要するに「時刻の取得」というのは,どんなプログラミング言語にも用意されていて
なおかつ「動いている」というのが目に見えるのでプログラミングのやりがいがいあるのだ。
てことで,でるふぃの Delphi 初めてのアプリは,「時計」に決定〜。

既にお気づきの方も居ると思うけれど Delphi 製時計といえば,
鈴木さんが作ってくださった「でるふぃ時計」というのが,DL 出来る様になっている。

でるふぃ時計/鈴木さん作
でるふぃ時計/鈴木さん作

これは,アナログ時計なのであるけれど,ふと思うに針が動くというプログラミングは
とても難しそうではないか!
何となく想像だけれども,長針は一周360°で,60分かけて動くから…,
てな感じの,算数っぽいことを考えなくてはならなさそう。
駄目だ。計算間違ったら,1時間で1時間半動いてしまうような時計が出来てしまいそうじゃん(汗)
なので,でるがこれから作る時計は「デジタル」にするしかない(笑)
そう,選択肢は無かったのである(爆笑)

本日のことわざ 郷に入っては郷に従え

19 October, 2001