このコラムはStone Table Softwareのオーナーであり、またREALbasic Developerの編集者でもあるMarc Zeedar氏により書かれたものを、著者の許可を得て翻訳したものです。この翻訳はHREM Researchにより提供されています。この日本語版へのご意見はRBU-Jまでご連絡下さい。
URL:INDEXに戻る
先週、我々は画像をキャンバスに表示し、スクロールバーによってユーザーに画像をスクロールさせる方法について学びました。今週も引き続いてREALbasic の持つ基本的なコントロールについて学習していきます。
もし、あなたがプログラミングに興味があるならば、Mac OS X のためのAppleのプログラミング環境であるココアCocoaについて聞いたことがあるでしょう。ココアはNeXT computerの開発環境を基礎としているもので、使いやすいと評判です。昔、私はコンピューターショーに行き、真新しいNeXT computerをこの目で見ました。ほんの少しの時間プログラムしただけにもかかわらず、驚くべきことに、非常に簡単であることが判りました(マニュアルや解説者すらなかったにもかかわらず)。
私が試した処理は単純な次のようなものです:スライダをドラッグすると数値を変えるスライダsliderコントロールを作成することです。そのようなコントロールは数値を入力するよりも容易で、Macのインターフェースとして非常に一般的です。しかしながら、従来のMacプログラミングにおいてはそれは非常に複雑なものです。しかし、それはNeXTにおいてはおどろくほど簡単でした:一行のコードを書く必要もありませんでした! 私は、スライダをウィンドウにドラッグし、そしてテキスト入力欄にそれをリンクしただけです。
私がREALbasicを発見したとき、最初にテストしたことの一つは、同じスライダコントロールを作ってみることでした。REALbasicはNeXTと同じほどには容易ではありませんでしたが(RBでは数行のコードが必要でした)、それは私にREALbasicの購入を決意させるほどに簡単でした。
私が先週に始めたRBUデモを見れば、スライダテストと呼ばれる領域を見つけられるでしょう。slider1 コントロールを選択して、そしてそのOpenイベントにいきましょう。そこで、以下のコードを入力してください。
me.value = 75
これれはスライダを75の位置に移動させます(ユーザーがそこにドラッグしたかのように)。これは、コントローラが表示される前に行われますので、ユーザーがデフォルトゼロ点からの移動を見ることはないでしょう。
追記 |
ここに、あなたへの質問があります:スライダのvalueはプロパティウィンドウで設定できるのに、なぜOpenイベントに書き込むのでしょう? その答えは、私達はスライダの値をeditField1の内容に反映させたいからです。editField1の内容はスライダのvalueが変化したときに設定されますが、プロパティウィンドウで値を設定した場合には、slider1のValueChangedイベントは起こりません。このために、プログラムを起動してもユーザがスライダをドラッグするまで、editField1は正しい値を示さないでしょう。あなたはeditField1の内容をSlider1のvalueに書き換えることもできます。しかし、それは二箇所に手動で値を設定することになるため、それらが合致するように注意する必要があります。もっとも簡単な方法はslider1のvalueをコードでプログラム的に設定することです。 |
では、slider1のValueChangedイベントに以下のコードを打ち込んでください。
!doctype>