フォーム上にラベルとボタンを置いて、簡単ダイアログ画面を作成します。
今あるフォームに並べても良いのですが、別フォームを生成してダイアログを作ってみます。
1. エディタを起動している場合は、メニューのファイル->終了で終わらせる。
※エディタを起動しながらプログラムジェネレータを操作すると都合の悪いことが多いです。
2. プロジェクトを生成したフォルダを開き、拡張子が .RSRCのファイルをダブルクリック
3. メニューのウインドウ->新規ウインドウを選択
ここで言うラベルとは、ユーザーが変更できない文字列を表示する事をいいます。
新しく生成したフォームにラベルを作成します。
1. メニューの開発->ツールを選択し、ツールバーを出す。
2. 左側の列の上から2番目の“フィールド”をクリック
3. フォーム上で好きな大きさでドラッグする
4. 好きな文字列に変更する
5. ツールバーの一番左上をクリック
6. 今置いた“フィールド”をダブルクリック
7. 左下の属性ボタンをクリック
8. 状態を固定に設定
9. OKボタンをクリック
Winでは大抵ルールバー上に“ラベル”と“フィールド”のアイコンがあります。
この当たりは慣習の違いでしょうか。私は一緒になっている方が好きです。
新しく生成したフォームにボタンを作成します。
1. ツールバーの右上の“プッシュボタン”をクリック
2. フォーム上で好きな大きさでドラッグする
3. ツールバーの一番左上をクリック
4. 今置いた“プッシュボタン”をダブルクリック
5. コントロール名に、ボタン上に表示したい文字列を入力
6. OKボタンをクリック
なぜかボタンのフォントは2種類に固定されているようです。
しかもボタンの高さは変えられません。
コントロールに関しては、FB3は今ひとつですね。
今作成したフォームを表示してみます。
1. プログラムジェネレーターをメニューのファイル->終了で閉じる。
2. プロジェクトフォルダ中の拡張子が .ケ のファイルをダブルクリック
3. プロジェクトファイル一覧の一番下にある .MAINをダブルクリック
4. 以下の位置にソースを追加〜省略〜 LOCAL FN mouseActions SELECT gWhichClass CASE _windowClass1 LONG IF gClickStatus FN pGbuild(_windowClass2) END IF END SELECT 〜省略〜マウスでフォーム上をクリックすると、先程作成したダイアログを表示します。
_windowClass1と _windowClass2定数は何かと言うと、プログラムジェネレーターでフォームのオブジェクト情報を見ると表示されているものです。
変なことをしていなければ、このサンプルのように連番で付いているはずです。
このように、フォーム上のイベントは全て混ざって来ますので、フォーム定数で SELECTしてやる必要があります。
これを怠ると、フォームの閉じるボタンをクリックすると、全部のフォームが閉じられてしまうような不具合が発生します。
表示したフォームは、閉じるボタンをクリックしても閉じる事ができますが、キャンセルボタンを作成してみます。
1. 以下の位置にソースを追加〜省略〜 LOCAL FN buttonActions SELECT gWhichClass CASE _windowClass2 SELECT gWhichButton CASE _btn1WClass5 FN pGclose(_windowClass2) END SELECT END SELECT 〜省略〜先程述べたように、フォームに届くメッセージは必ず SELECTでフォーム毎に分けます。
gWhichButton変数内に、クリックされたボタン定数が入っていますので、それを SELECTします。
このボタン定数は、プログラムジェネレーターにてオブジェクト情報を見ることで確認可能です。
フォームを閉じる関数は FN pGcloseです。
特に説明は不用でしょう。