| ■ FAQ |
| ・アプリケーションが起動するときにMacの環境を知りたい |
System.Gestalt関数が使えます。System.Gestalt関数はBoolean型の関数です。例えばシステムのバージョンをチェックするには、次のコードが使えます。
dim
version as integer
if system.gestalt("sysv", version) then
msgBox hex(version)
end if
システムのバージョンをチェックするには、version変数に入る戻り値を調べます。Gestaltで調べる情報は、Gestaltセレクタで指定します(システムのバージョンを調べるGestaltセレクタはsysvです)。
|
| ・アプリケーションが置かれているフォルダのFolderItemを知りたい |
GetFolderItemに空の文字列を渡します。
Dim
f as FolderItem
f = GetFolderItem("")
|
| ・ウィンドウにプログラムで描画したい |
ウィンドウのGraphicsプロパティを使います。例えばWindow1に四角形を描画するには、次のコードが使えます。
Window1.Graphics.DrawRect
10,10,50,50
このコードをWindow1に置いたPushButtonコントロールのActionイベントに書くと、ボタンをクリックすると四角形が描画できます。ただし再描画が自動的に実行されません。再描画を自動的に行うには、Window1のPaintイベントに次のコードを書きます。
g.DrawRect 10,10,50,50
gは、Paintイベントに渡されるGraphicsオブジェクトで、この場合はWindow1のGraphicsプロパティになります。Graphicsクラスの描画メソッドについては「リファレンス」のGraphicsクラスを参照してください。
|
| ・ダイアログにStopアイコンを表示したい |
ダイアログやアラートにアイコンを描画するためのメソッドがあります。ダイアログのPaintイベントに次のコードを書くと、Stopアイコンが表示できます。
g.DrawStopIcon
0,0
同様にDrawNoteIcon、DrawCautionIconというメソッドが用意されています。
|
| ・コードをどこに書いたらいいかわかりません |
コードエディタを開くと、左側にウィンドウに属しているコントロール、イベント、メニューハンドラ、プロパティ、メソッドの一覧が表示されます。コントロールは、ウィンドウに置いたコントロール(部品)のことです。イベントは、ウィンドウが受け取ることのできるイベントです。プロパティは、ウィンドウが値を保持するための変数です。メソッドは、ウィンドウに追加したコマンドです。メニューハンドラは、メニューを選んだとき呼び出されるコマンドです。コードは、コントロール、イベント、メニューハンドラ、メソッドのいずれかに目的に応じて書くことになります。基本は、ユーザーが何か操作したとき、それに対応するコードを書くことです。例えば、ウィンドウにプッシュボタンを置いたとします。プッシュボタンがクリックされたときに実行するコードは、プッシュボタンのActionイベントに書きます。
|
| ・About
Boxを表示したい |
About
Boxを組み込む手順は次の通 りです。
1)About Boxを作る
2)About Boxを表示するメニューを作る
3)About Boxを表示するメニューのメニューハンドラを作る
まず「ファイル」メニューから「新規ウィンドウ」を選んでプロジェクトウにウィンドウを追加します。プロジェクトの中にDialog1が作られます。Dialog1のFrameプロパティをModal
Dialogにします。Dialog1を開いて、About Boxをデザインします。Modal Dialogにしたので、ウィンドウを閉じるための仕組みを用意する必要があります。簡単なのはプッシュボタンをひとつ置いて、Captionを「OK」にし、Actionイベントにcloseと書くことです。
メニューエディタを開いて、一番上にメニューアイテムを追加します。NameプロパティはAppleAbout、Textプロパティは「About...」としておきます。
メインのウィンドウのコードエディタを開き、「編集」メニューから「新規メニューハンドラ」を選びます。表示されたダイアログでAppleAboutのメニューハンドラを作ります。
メニューハンドラに次のコードを書きます。
dim
w as window
w = new Dialog1
メインのウィンドウのEnableMenuItemsイベントに次のコードを書きます。
AppleAbout.enabled=true
もし、テキストエディタのように複数のウィンドウが開くアプリケーションなら、プロジェクトにSuperがApplicationのクラスを作り、メニューハンドラとEnableMenuItemsはこの中に作成します。
|
| ・アプリケーションにアイコンをつけたい |
「ファイル」メニューの「アプリケーションのビルド」で表示されるウィンドウのアイコンエリアにアイコンデータをペーストしてビルドしても、そのままではFinderでアイコンが表示されません。これはFinderがアイコンを表示するためにデスクトップファイルを参照しているからです。デスクトップファイルにはアプリケーションのクリエータとそれに対応するファイルタイプ、アイコン情報などが登録されています。REALbasicで作ったアプリケーションのアイコンを表示するには、クリエータを設定し、デスクトップファイルを再構築する必要があります。REALbasicでのクリエータの設定は、「編集」メニューの「プロジェクトの設定」で行います。表示されるダイアログの「Macクリエータ」に独自のクリエータを入力します。もし他のアプリケーションと同じクリエータを設定すると、アイコンが正しく表示されないだけでなく、ファイルをダブルクリックして起動するときにも問題が発生します。また一般
に配付するアプリケーションのクリエータはApple社に登録する必要があります。(http://developer.apple.com/ja/macos/creator/index.htmlを参照してください)。Macクリエータを登録し、アイコンデータをペーストしてアプリケーションをビルドしたら、Macを再起動し、[command]と[option]キーを押し続けて、デスクトップファイルを再構築します。
独自のクリエータを登録せずにアプリケーションにオリジナルのアイコンを使用するには、Finderの「情報を見る」でのアイコンデータのペーストが簡単です。
|
| ・データベースを検索するにはどうすればいいのでしょう? |
データベースへの問い合わせにはSQL言語を使います。データベースを指定してSQLで問い合わせた結果
がデータベースカーソルとして返されます。データベースカーソルは、条件が一致したデータの組で、インデックスを変えることで任意のデータにアクセスできます。
|
| ・ウィンドウに画像ファイルを表示するには |
表示したい画像ファイルをプロジェクトウィンドウにドラッグ&ドロップして登録します(ファイル名は半角英数字にしておきます)。ウィンドウのBackdropプロパティがポップアップメニューになっていますので、そこから登録した画像ファイルを選択します。BackdropプロパティはCanvasコントロールにもあります。ウィンドウの一部に画像を表示する場合は、こちらを使うと便利です。
他にはGraphicsクラスのDrawPictureメソッドを使う方法があります。
|
| ・REALbasicにはグローバル変数はないのですか? |
グローバルな変数、メソッドの定義はモジュールで行います。「ファイル」メニューの「新規モジュール」を選ぶと、プロジェクトウィンドウに新しいモジュールが追加されます。モジュールにはプロパティ、メソッド、コンスタントが追加できます。モジュールに登録したものはグローバルになるので、プログラムのどこからでも参照できます。
|
| ・コンスタントの使い方がわかりません |
コンスタント(定数)はある値に名前をつけて、プログラム中では名前でその値を参照できる仕組みです。例えばpiという名前のDoubleタイプのコンスタントを作り、値を3.1415とします。あとはプログラム中でpiという名前が3.1415という値の代わりに使えます。プログラムのどこでも参照できるようにするには、コンスタントをモジュールに作成します。
コンスタントは、アプリケーションのローカライズにも利用できます。例えば名前に#CANCELと入力してタイプをStringにします。「追加」ボタンを押して、言語をJapaneseにし、値に「キャンセル」を入力して「OK」ボタンを押します。続けて「追加」ボタンを押して、言語をEnglish、値を「Cancel」にした値を追加します。これで#CANCELというコンスタントに、言語別
の文字列が用意できました。作成しているアプリケーションのPushButtonのCaptionプロパティに#CANCELと入力しておくと、アプリケーションのビルドのときに選択できる言語によってコンパイルで組み込まれる文字列が自動的に切り替わります。
|
| ・GoToコマンドはないのですか? |
言語リファレンスにはありませんが、GoToコマンドは使えます。例えば次のようなコードが有効です。
If
f = nil Then
GoTo exitLabel
Else
<...処理...>
End If
exitLabel:
beep
|
| ・プロパティウィンドウをクリックするとMacがハングします |
REALbasicの起動後、プロパティウィンドウやプロジェクトウィンドウ内のアイテムをクリックすると、反応があるまで少し時間がかかります。PowerPCマシンではこの遅延現象は一瞬ですが、68Kマシンでは30秒程度かかることがあり、ハングしたように見えることがあります。68Kマシンの場合は、しばらく待っていただくと操作できるようになります。この遅延現象は、起動後の最初のクリックについてのみ発生します。
|
| ・プロジェクトウィンドウに画像ファイルをドラッグ&ドロップするとREALbasicが終了します |
| Mac
OS 8または8.1をお使いの場合、システム環境によってこの現象が発生することがあります。インストールされているQuickTimeのバージョンをご確認いただき、バージョンが2.5の場合は、3.0以上にアップデートすることで解消します。この問題はREALbasicの次のバージョンで解決されます。 |