タイトル【今から始めるCocoaプログラミング】抽選ソフトが簡単に作成できた(1)カテゴリーCocoa, 今から始めるCocoaプログラミング
作成日2001/3/8 16:35:51作成者新居雅行
必要に迫られるとなんとかしようと思うものである。Macworld Conference & Expo/Tokyo 2001にあわせて、MDOnlineはMOSA、ヘリオグラフとともに「Mac OSデベロッパーセミナー」を開催した。すでに終了しているが、かなりの方々に受講いただき、またさまざまな意見をいただき有意義なイベントだったと感じている。そのセミナーへはせっかくわざわざお金を払ってまで来てもらっているのだから、プレゼントを集めて、受講者やパーティ参加者におみやげを持ってかえってもらおうと考えた。セミナーをやるということで早々とプレゼントを申し出ていただいた協力会社の方々もいらっしゃったが、その後精力的に集めたこともあって、けっこうたくさんのプレゼントをいただいたのである。ただし、プレゼントを適当に配るわけにはいかない。なんらかの方法で抽選をしないといけないわけだが、せっかく講師のデスクでMac OSが起動しているのだから、アプリケーションソフトを使ってやりたいものだ。ただ、講師のデスクで稼動させているのはMac OS X Public Betaである。Classic環境でもいいかと思いながら、少し探したのだが、探し方が悪かったのか、思った通りのソフトが見つからなかった。そういうわけで、いっそのこと作ってしまえということで作ったのが、DrawingXというアプリケーションである。(決して、Darwinをもじったわけではなく、「抽選」という意味のDrawingなのだが、意外なところではまってしまった。)フリーで配付しており、プロジェクトファイルも配付しているので、興味のある方は御覧いただいた上で、この記事を読んでいただけるといいだろう(ページへのリンクは最後にある)。また、一連の【今から始めるCocoaプログラミング】の連載も御覧になっていることを前提としているので、まだ読まれていない方はそちらも目を通していただきたい(MDOnline読者の方々は、Webで記事を御覧になることができる。【今から始めるCocoaプログラミング】というカテゴリを左側のフレームから探してクリックしていただければOKだ。)
セミナーは有償ということもあり、極力、事前にチケットを郵送するということで進めた。そして、チケットには、通し番号を記入してある。たとえば、30人受講するセミナーなら、1〜30番までの番号がふられたチケットを、各受講者が持っているというわけだ。もっとも、実際には当日売りとか、後売りとかいったパターンがあって、最後の番号を受講者の方々に確認するということになったのだが…。
DrawingXは次のようにして使う。まず、1から何番までの数字を用意するかを左上の適すとボックスに入力し、「初期化」ボタンをクリックする。(最小値と最大値の両方を指定したいと思った方は、御自分でプロジェクトを御利用いただき改良していただければと思う。)そうすると、右の「抽選!」ボタンがアクティブになり、クリックできるようになる。そして、「抽選!」ボタンをクリックすると、中央にでっかく、1〜最大値までの数値がランダムな順番で出てくる。いちばん下のテキストボックスは、表示した数値が順番に追加されるという仕組みとなっている。記録用というよりデバッグ用かも知れない(笑)。「区切り文字を挿入」ボタンをクリックすると、テキストボックスにマイナス記号が入る。区切りのカンマが余分という話もあるが、実用上差し支えないのでこのままにした。区切り文字は、たとえば、3種類の賞品があったとき、何番と何番が最初の賞品なのかなどを区別するため…と意図したのだが、実際に抽選をやって感じたが、そんなち密なことはやってられなかった。まあ、今回は使わなかったけど、まあいいだろう。

□Interface Builderでウインドウ内部を作り込む
こうしたアプリケーションは何で作ればいちばん簡単だろうか? もちろん、REALbasicということは考えたけど、ここは一つ、連載もあることだしCocoaで作ってみようと思い立った。Project Builderを起動して、「Cocoa Application」というテンプレートを使ってアプリケーションを作る。なお、Document-basedのものはJavaとそうでないもの(つまりObjective-C)のテンプレートが別れているが、単なるアプリケーションのテンプレートはJavaでもObjective-Cでも共通なのである。以下、筆者の得意な言語ということで、Javaでプログラムをすることにする。
さて、このCocoa Applicationのテンプレートだが、とにかく新たに作ったプロジェクトをビルドして実行しても、一瞬何も出てこないと思ってしまう。しかし実際には、最初から用意されているInterface Builderで定義済みのウインドウが表示されているのだが、アプリケーション自体がアクティブにならないのである。Dockにあるアイコンをクリックしてアクティブにすれば、もちろん前に出てくる。とりあえず、そのまま作業することにした。
実際のDrawingXの画面を見てもらいたいが、結果的にはそのままをInterface Builderで作成している。プログラムに関わるのはNSTextFieldとNSButtonだけだ。Interface Builderでオブジェクトを配置し、名前などを変更すれば良い。中央に大きく文字が表示される部分も、NSTextFieldである。ヒラギノ角ゴシックW8の288ポイントという大きなサイズにしている。当然、でかい文字でも美しく表示される。フォント設定は、テキストボックスを選択して、FormatメニューのFontメニューからShow Fontsを選択し、フォントの選択パレットを表示して行えば良い。実は最初ボタンに大きな文字をだそうとしたのだが、ボタンは書体設定ができないようで、設定をしてもそれは記録されず、決められたサイズの文字にしかならなかった。テキストフィールドではサイズ指定ができるので、そのようにした。また、背景はクリーム色、文字は濃いブルーだが、こうした設定は、テキストフィールドのInspectorを表示して、Attributesで設定ができるようになっている。また、そこで編集不可能にもした。こうした初期設定的なものはプログラムは不要なのである。
ボタンについては、同じくInspectorのAttributesで設定を行うことで、起動直後は「抽選!」ボタンをクリックでなくするなどの設定ができる。また、ボタンをクリックすると音を鳴らすといった設定も、Interface Builderでできるようになっている。Interface Builderのドキュメントウインドウには、Soundsというタブがある。そこを見ると、Basso、Bonkなどといくつかのサウンドがある。サウンドのアイコンを選択すると、InspectorにPlayボタンが出てくるので、それを操作して付けたい音を確認すればいいだろう。付けたい音の名前をとりあえず覚えておき、ボタンのInspectorを表示する。AttributesにあるSoundのところに、サウンドのアイコンについていた名前を入れれば、ボタンをおした時にその音が鳴るという仕組みになっている。また、ボタンのAttributesでは、Keyという設定でがあり、そこでReturnを選んでおくと、実際に稼動させたときにはReturnキーをおすことでボタンをクリックしたのと同じ効果になるという設定が可能である。
(続く)
関連リンクDrawingX - Mac OS Xで抽選会!