PalmOSには確認ダイアログ(ALERT)などの処理を行なう機能が提供されていて、
リソースのALERTを使うことにより簡単に使用することができます。
呼出し方も
FrmAlert関数に
リソースでて意義しているALERTのリソースIDを指定して呼ぶだけで、
戻り値としてALERTで押されたボタンの番号(0〜)が返ってきます。
ボタンはリソースのBUTTONSに必要なボタン分だけ、ボタンの表示文字列を並べて記述するだけです。
また、ALERTのタイプを表すアイコン表示は、下記の4種類を設定することができます。
| アイコン | キーワード | 意味 |
|---|---|---|
![]() | INFORMATION | 情報 |
![]() | CONFIRMATION | 確認 |
![]() | WARNING | 警告 |
![]() | ERROR | エラー |
リソースのDEFAULTBUTTONは、ALERT表示中にハードボタン等が押されてアプリケーションの切り替えが起こったときに、
押された事にするボタンの番号(0〜)です。
下記のサンプルでは、1を指定しているので、Cancelボタンが押されたことになります。
サンプル画面
ヘッダファイル
#define MainForm 1000 #define SaveButton 1001 #define QuestionAlert 2000 |
リソースファイル
FORM ID MainForm AT (0 0 160 160)
NOFRAME
BEGIN
TITLE "Alert"
BUTTON "Save" ID SaveButton AT (4 108 25 12) FONT 0
END
ALERT ID QuestionAlert
CONFIRMATION
DEFAULTBUTTON 1
BEGIN
TITLE "Question"
MESSAGE "Overwrite?"
BUTTONS "OK" "Cancel"
END
|
イベントハンドラ
Boolean MainFormHandleEvent(
EventPtr pEvent) /* I:イベント */
{
Boolean handled = false;
FormPtr pForm;
switch (pEvent->eType)
{
case frmOpenEvent: /* フォームオープンイベント */
pForm = FrmGetActiveForm();
FrmDrawForm(pForm);
handled = true;
break;
case ctlSelectEvent: /* コントロール選択イベント */
if (SaveButton == pEvent->data.ctlSelect.controlID) /* saveボタン押下? */
{
if (0 == FrmAlert(QuestionAlert)) /* OKボタン押下? */
{
/* 保存処理 */
}
handled = true;
}
break;
default:
break;
}
return handled;
}
|
'06/3/4 新規作成
Copyright (c) 2006 kasa0 All rights reserved.



