Palm Programmer's Laboratory

トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

Palm OS Programmer's API Reference/11-2

← 10 章に戻る ↑トップへ 12 章に進む →

11 フォーム (ページ 2)

← 11 章のページ 1 へ ↑ 11 章のトップへ

※訳者は古い Palm デバイスしか所有していないため、ナビゲーション関係の記述についてはあやふやな部分が多いです。

FrmGotoForm 関数 ^TOP^

目的

現在のフォームに frmCloseEvent を送り、指定されたフォームに frmLoadEventfrmOpenEvent を送ります。

宣言されている場所

Form.h

Prototype

void FrmGotoForm (
	UInt16 formId
)

パラメータ

  • → formId
    • 表示されるフォームの ID。

返り値

返り値はありません。

コメント

デーフォルトのイベント ハンドラ(FrmHandleEvent())が、frmCloseEvent を受け取ると、フォームを消して処分します。

参照

FrmPopupForm()

FrmHandleEvent 関数 ^TOP^

目的

フォームの中で起きたイベントをハンドルします。

宣言されている場所

Form.h

Prototype

Boolean FrmHandleEvent (
	FormType *formP,
	EventType *eventP
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → eventP
    • イベント データ構造体(EventType)へのポインタ

返り値

イベントがハンドルされた場合、true を返します。

コメント

この関数を直接呼び出さないでください。代わりに、FrmDispatchEvent() を呼び出してください。FrmDispatchEvent はイベントをフォームのカスタム イベント ハンドラに渡して、それからイベントがハンドルされなかった場合にこの関数に送ります。

WARNING!
この関数を直接呼び出してはいけません。代わりに、FrmDispatchEvent 関数を呼び出してください。

表 11.1FrmHandleEvent が異なるイベントをどのようにハンドルするのかの概観を示します。

表 11.1 FrmHandleEvent Actions
FrmHandleEvent が以下のイベントを受け取ると ... FrmHandleEvent は以下の行動を起こします。
frmEnterEvent イベントとイベントが起こったオブジェクトへのポインタを CtlHandleEvent() に送ります。オブジェクト ポインタはイベント データから取得されます。コントロールが排他的コントロール グループの一部である場合、グループで現在選択されているコントロールの選択を解除します。
frmRepeatEvent イベントとイベントが起こったオブジェクトへのポインタを CtlHandleEvent に送ります。オブジェクト ポインタはイベント データから取得されます。
frmSelectEvent コントロールがポップアップ トリガかどうかをチェックします。そうである場合、ポップアップ トリガに関連付けられたリストが、ユーザが選択を行うかそのリストの領域外をペンでタッチするまで、表示されます。選択が行われると、popSelectEvent がイベント キューに追加されます。
fldEnterEvent または fldHeightChangedEvent フィールド オブジェクトまたはテーブル オブジェクトがフォーカスされているかどうかをチェックし、イベントを適切なハンドラ(FldHandleEvent() または TblHandleEvent())に渡します。テーブル オブジェクトは、フィールド オブジェクトを持つかもしれないコンテナ オブジェクトでもあります。TblHandleEvent がフィールド イベントを受け取ると、イベントをテーブル内で保持されているフィールド オブジェクトに送ります。
frmCloseEvent フォームを消し、フォームに割り当てられていたすべてのメモリを解放します。
frmGadgetEnterEvent イベントをガゼットのコールバック関数(ガゼットが持っている場合)に送ります。FormGadgetHandlerType を参照してください。
frmGadgetMiscEvent イベントをガゼットのコールバック関数(ガゼットが持っている場合)に送ります。FormGadgetHandlerType を参照してください。
frmTitleEnterEvent ペンをペンが持ち上がるまで追跡します。フォームの領域内でペンが持ち上がる場合、frmTitleSelectEvent をイベント キューに追加します。
frmUpdateEvent フォームを再描画するために FrmDrawForm()|Palm Programmer's API Reference/11-1 を呼び出します。
keyDownEvent イベントを、フォーカスされているオブジェクトのために、ハンドラに渡します。フォーカスされているオブジェクトが無い場合、イベントは無視されます。
lstEnterEvent イベントとイベントが起きたオブジェクトへのポインタを LstHandleEvent() に渡します。オブジェクト ポインタはイベント データから取得されます。
menuCmdBarOpenEvent フィールド オブジェクトまたはテーブル オブジェクトがフォーカスされているかどうかをチェックし、イベントを適切なハンドラ(FldHandleEvent または TblHandleEvent)に渡して、通知 sysNotifyMenuCmdBarOpenEvent をブロードキャストし、それからコマンド ツールバーを表示します。
menuEvent メニュー コマンドがシステム編集メニュー コマンドの 1 つかどうかをチェックします。システムは、コマンドである取消、切取、コピー、貼付、全選択、それにキーボードを保持している標準編集メニューを提供します。FrmHandleEvent はこれらのコマンドに応答します。
penDownEvent; ペンの位置はフォーム オブジェクトの領域内 フォームによって保持されているオブジェクトのリストを、ペンがそのオブジェクトのなかの 1 つの領域内にあるかどうかを調べるために、チェックします。もしそうであれば、イベントをハンドルするために適切なハンドルが呼び出されます。例えば、ペンがコントロールの領域内であれば、CtlHandleEvent が呼び出されます。ペンがオブジェクトの領域内でない場合、イベントはフォームに無視されます。ペンがヘルプ アイコンの領域内であれば、ペンが持ち上がるまでペンを追跡し、ペンがヘルプ アイコンの領域内で持ち上がると、ヘルプ ダイアログが表示されます。
popSelectEvent ポップアップ トリガのラベルをポップアップ リストの現在の選択にセットします。
sclEnterEvent または sclRepeatEvent イベントとイベントが起きたオブジェクトへのポインタを SclHandleEvent() に渡します。
tblEnterEvent イベントとイベントが起きたオブジェクトへのポインタを TblHandleEvent に渡します。オブジェクト ポインタはイベント データから取得されます。

互換性

3.5 New Feature Set が存在する場合、FrmHandleEventfrmTitleSelectEvent, menuCmdBarOpenEvent, frmGadgetEnterEvent それに frmGadgetMiscEvent のみをハンドルします。5.0 New Feature Set が存在する場合、この関数は「システムのみが使用するもの」と見なされるべきです。アプリケーションは、それを使用するのを避けるために、アプリケーションができることをするべきです。

参照

FrmDispatchEvent()

FrmHelp 関数 ^TOP^

目的

指定されたヘルプ メッセージを、ユーザがヘルプ ダイアログ内の Done ボタンをタップするまで、表示します。

宣言されている場所

Form.h

Prototype

void FrmHelp (
	UInt16 helpMsgId
)

パラメータ

  • → helpMsgId
    • ヘルプ メッセージ文字列のリソース ID。

返り値

返り値はありません。

コメント

ヘルプ メッセージは、必要があればテキストをスクロールさせるモーダル ダイアログ(訳者注)の中に表示されます。

FrmHideObject 関数 ^TOP^

目的

指定されたオブジェクトを消し、そのオブジェクトの属性データ(usable ビット)をオブジェクトが再描画されたり、ペンに応答したりしないようにセットします。

宣言されている場所

Form.h

Prototype

void FrmHideObject (
	FormType *formP,
	UInt16 objIndex
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → objIndex
    • フォームの中にあるオブジェクトのインデックス。この値を FrmGetObjectIndex() を使って取得することができます。

返り値

返り値はありません。

互換性

OS バージョン 3.2 より前では、この関数はオブジェクト属性データの usable ビットを false にセットしません。OS バージョン 3.2 より前では、直接このビットを false にセットすることでこのバグを回避できます。

OS バージョン 3.5 より前では、この関数はリストまたはテーブルに影響を与えません。OS バージョン 3.5 では、リストを正しく操作しますが、テーブルには一切影響を与えません。OS バージョン 4.0 では、リストとテーブルの両方を正しく操作します。

3.5 New Feature Set が満たされ、かつ、オブジェクトが拡張ガゼットである場合、この関数は formGadgetEraseCmd と一緒にガゼットのコールバック関数を呼び出します。DormGadgetHandlerType() を参照してください。

参照

FrmShowObject()

FrmInitForm 関数 ^TOP^

目的

フォーム リソースを読み込み、初期化します。

宣言されている場所

Form.h

ProtoType

FormType *FrmInitForm (
	UInt16 rscID
)

パラメータ

  • → rscID
    • フォームのリソース ID。

返り値

フォーム データ構造体へのポインタを返します。

デバッグ ROM を使用しているときは、フォームがすでに初期化されている場合、FrmInitForm はエラー メッセージを表示します。

コメント

この関数はディスプレイに影響を与えません(フォームを描くためには FrmDrawForm() を使用します)し、フォームをアクティブにもしません(フォームをアクティブにするためには FrmSetActiveForm() を使用します)。

初期化された各フォームに対して、フォームが終了するときにフォーム メモリを解放するために FrmDeleteForm を呼び出す必要があります。そうする代わりに、FrmReturnForm() を呼び出すことでアクティブ フォームをアクティブでなくすることができます(訳者注: フォームの表示は消されるが、メモリは解放されない)。

参照

FrmDoDialog(), FrmDeleteForm(), FrmReturnToForm()

FrmNavDrawFocusRing 関数 ^TOP^

目的

システムにオブジェクトのフォーカス リングを描くように通知します。

NOTE:
この関数は異なる Palm OS ハンドヘルドでは異なる形で実装されます。開発者は、この関数の代わりに FrmGlueNavDrawFocusRing()|Palm OS Programmer's API Reference/80 を使用すべきです。

宣言されている場所

Form.h

Prototype

Err FrmNavDrawFocusRing (
	FormType *formP,
	UInt16 objectID,
	Int16 extraInfo,
	RectangleType *boundsInsideRingP,
	FrmNavFocusRingStyleEnum ringStyle,
	Boolean forceRestore
)

パラメータ

  • → formP
    • リングが描かれるオブジェクトを保持しているフォームへのポインタ
  • → objectID
    • フォーカス リングを描かれるオブジェクトの ID。
  • → extraInfo
    • フォーカス リングに関連付けたいすべての情報。例えば、システムはこのフィールドを、フォーカスされている組み込みリストの一時的に選択されたアイテムを保存するために使用します。リングに感づける情報が無い場合は、frmNavFocusRingNoExtraInfo を渡してください。
  • → boundsInsideRingP
  • → ringStyle
    • リングに望まれるスタイルを表す FrmNavFocusRingStyleEnum 値の 1 つ。オブジェクトに対して、デフォルト リング スタイルを望む場合は、frmNavFocusRingStyleObjectTypeDefault を渡してください。
  • → forceRestore
    • リングがすでにオブジェクトの周りに描かれている場合、リングを再描画する前にリングの背後にあるものを元に戻す(restore)べきかどうかを指定します。

返り値

フォーカス リングが成功裏に描かれた場合、errNone を返します。そうで無い場合、以下で示すエラー コードの 1 つを返します。

  • uilibErrInvalidParam
    • formP または boundsInsideRingPNULL です。
  • uilibErrInvalidFocusObject
    • objectID が使用可能のマークを付けられていないコントロールを指定しています。
  • uilibErrFormDoesNotHaveFocus
    • 指定されたフォームは現在フォーカスされていません。
  • uilibErrObjectFocusModeOff
    • 指定されたフォームはオブジェクト フォーカス モードではありません。

互換性

One-Handed Navigation Feature Set が存在する場合にのみ、実装されます。開発者は、最大の互換性を得るために、この関数と等価である Palm OS Glue Libraly -- FrmGlueNavDrawFocusRing()|Palm OS Programmer's API Reference/80 -- を使用すべきです。

参照

FrmNavGetFocusRingInfo(), FrmNavObjectTakeFocus(), FrmNavRemoveFocusRing()

FrmNavGetFocusRingInfo 関数 ^TOP^

目的

フォームがシステムに描画されるフォーカス リングを持つ場合、そのリングについての情報を取得します。

NOTE:
この関数は異なる Palm OS ハンドヘルドでは異なる形で実装されます。開発者は、この関数の代わりに FrmGlueNavGetFocusRingInfo()|Palm OS Programmer's API Reference/80 を使用すべきです。

宣言されている場所

Form.h

Prototype

Err FrmNavGetFocusRingInfo (
	const FormType *formP,
	UInt16 *objectIDP,
	Int16 *extraInfoP,
	RectangleType *boundsInsideRingP,
	FrmNavFocusRingStyleEnum *ringStyleP
)

パラメータ

  • → formP
    • リング情報が取得されるフォームへのポインタ
  • ← objectIDP
    • 関数の返り時に、システムに描かれたフォーカス リングを持つオブジェクトの ID を保持する UInt16 へのポインタを提供してください。この情報を必要としない場合は NULL を渡してください。
  • ← extraInfoP
    • 関数の返り時に、フォーカス リングに関連付けられた臨時情報を保持する Int16 へのポインタ(訳者注: 原文では UInt16 だが誤りと思われる)を提供してください。この情報を必要としない場合は NULL を渡してください。「臨時情報」は、FrmNavDrawFocusRing() が呼び出されたときに、リングに関連付けされた情報です。フォーカス リングに関連付けられた臨時情報が無い場合、*extraInfofrmNavFocusRingNoExtraInfo にセットされています。
  • ← boundsInsideRingP
    • システムに描かれるフォーカス リングの領域が書き込まれる RectangleType|Palm OS Programmer's API Reference/49 構造体へのポインタを提供してください。この情報を必要としない場合は NULL を渡してください。
  • ← ringP
    • フォーカス リングのスタイルが書き込まれる FrmNavFocusRingStyleEnum 変数へのポインタを提供してください。この情報を必要としない場合は NULL を渡してください。

返り値

フォーカス リングが成功裏に描かれた場合、errNone を返します。そうで無い場合、以下で示すエラー コードの 1 つを返します。

  • uilibErrFormDoesNotHaveFocus
    • 指定されたフォームは現在フォーカスされていません。
  • uilibErrObjectFocusModeOff
    • 指定されたフォームはオブジェクト フォーカス モードではありません。
  • uilibErrObjectNotFound
    • システムに描かれるフォーカス リングを持つオブジェクトがありません。

コメント

相互作用モードになっている組み込みリストのために、システムは一時的に選択されているアイテムを臨時情報フィールドに保存します。

互換性

One-Handed Navigation Feature Set が存在する場合にのみ、実装されます。開発者は、最大の互換性を得るために、この関数と等価である Palm OS Glue Libraly -- FrmGlueNavGetFocusRingInfo()|Palm OS Programmer's API Reference/80 -- を使用すべきです。

参照

FrmNavDrawFocusRing(), FrmNavRemoveFocusRing()

FrmNavObjectTakeFocus 関数 ^TOP^

目的

オブジェクトのために frmObjectFocusTakeEvent を発します。

NOTE:
この関数は異なる Palm OS ハンドヘルドでは異なる形で実装されます。開発者は、この関数の代わりに FrmGlueNavObjectTakeFocus()|Palm OS Programmer's API Reference/80 を使用すべきです。

宣言されている場所

Form.h

Prototype

void FrmNavObjectTakeFocus (
	const FormType *formP,
	UInt16 objID
)

パラメータ

  • → formP
    • オブジェクトを保持するフォームへのポインタ
  • → objID
    • オブジェクトの ID

返り値

返り値はありません。

互換性

One-Handed Navigation Feature Set が存在する場合にのみ、実装されます。開発者は、最大の互換性を得るために、この関数と等価である Palm OS Glue Libraly -- FrmGlueNavObjectTakeFocus()|Palm OS Programmer's API Reference/80 -- を使用すべきです。

FrmNavRemoveFocusRing 関数 ^TOP^

目的

現在フォーカスされているオブジェクトの周りからシステムに描かれるリングを削除を削除します。

NOTE:
この関数は異なる Palm OS ハンドヘルドでは異なる形で実装されます。開発者は、この関数の代わりに FrmGlueNavRemoveFocusRing()|Palm OS Programmer's API Reference/80 を使用すべきです。

宣言されている場所

Form.h

Prototype

Err FrmNavRemoveFocusRing (
	FormType *formP
)

)

パラメータ

  • → formP
    • フォーカス リングを持つオブジェクトを保持するフォームへのポインタ

返り値

フォーカス リングが成功裏に描かれた場合、errNone を返します。そうで無い場合、以下で示すエラー コードの 1 つを返します。

  • uilibErrInvalidParam
    • formPNULL です。
  • uilibErrFormDoesNotHaveFocus
    • 指定されたフォームは現在フォーカスされていません。
  • uilibErrObjectFocusModeOff
    • 指定されたフォームはオブジェクト フォーカス モードではありません。

互換性

One-Handed Navigation Feature Set が存在する場合にのみ、実装されます。開発者は、最大の互換性を得るために、この関数と等価である Palm OS Glue Libraly -- FrmGlueNavRemoveFocusRing()|Palm OS Programmer's API Reference/80 -- を使用すべきです。

参照

FrmNavDrawFocusRing(), FrmNavGetFocusRingInfo()

FrmNewBitmap 関数 ^TOP^

目的

新しいフォーム ビットマップを動的に作成します。

宣言されている場所

Form.h

Prototype

FormBitmapType *FrmNewBitmap (
	FormType **formPP,
	UInt16 ID,
	UInt16 rscID,
	Coord x,
	Coord y
)

パラメータ

  • ←→ formPP
    • 新しいビットマップがインストールされるフォームへのポインタへのポインタ。この値はハンドルではありません。つまり、古い formPP 値は、この関数が返った後では、必ずしも有効ではありません。なぜなら、フォームはメモリの中を移動させられるかもしれないからです。この関数の呼び出し後の関数呼び出しでは、常にこの関数で返される新しい formPP を使用してください。
  • → ID
    • 開発者によって指定されるビットマップの記号的な ID。慣例では、この ID はリソース ID と一致するべきです(義務ではありません)。
  • → rscID
    • ビットマップを提供するリソースを指定する数値。この値はアプリケーション スコープ内で固有の値である必要があります。
  • → x
    • ビットマップの領域の左上端の水平座標。ビットマップが現れるウィンドウから見た相対座標です。
  • → y
    • ビットマップの領域の左上端の垂直座標。ビットマップが現れるウィンドウから見た相対座標です。

返り値

新しいビットマップへのポインタを返します。呼び出しが成功しなかった場合、0 を返します。失敗する最も一般的な理由はメモリ不足です。

互換性

3.0 New Feature Set が存在する場合にのみ、実装されます。

参照

FrmRemoveObject()

FrmNewForm 関数 ^TOP^

目的

新しいフォーム オブジェクトを動的に作成します。

宣言されている場所

Form.h

Prototype

FormType *FrmNewForm (
	UInt16 formID,
	const Char *titleStrP,
	Coord x,
	Coord y,
	Coord width,
	Coord height,
	Boolean modal,
	UInt16 defaultButton,
	UInt16 helpRscID,
	UInt16 menuRscID
)

パラメータ

  • → formID
    • フォームの記号的 ID。開発者によって指定されます。慣例では、この ID はリソース ID と一致するべきです(義務ではありません)。
  • → titleStrP
    • フォームのタイトルである文字列へのポインタ。
  • → x
    • フォームの領域の左上端の水平座標。フォームが現れるウィンドウから見た相対座標です。
  • → y
    • フォームの領域の左上端の垂直座標。フォームが現れるウィンドウから見た相対座標です。
  • → width
    • フォームの幅。ピクセル数で表します。有効範囲は 1 - 160 です。
  • → height
    • フォームの高さ。ピクセル数で表します。有効範囲は 1 - 160 です。
  • → modal
    • true だと、フォームは領域外でのペン イベントを無視します。
  • → defaultButton
    • フォームのデフォルトの行動を提供するボタンの記号的 ID。開発者によって指定されます。
  • → helpRscID
    • フォームのオンライン ヘルプを提供するリソースの記号的 ID。開発者によって指定されます。モーダル ダイアログ(訳者注)はヘルプ リソースを持つことができます。
  • → menuRscID
    • フォームのメニューを提供するリソースの記号的 ID。開発者によって指定されます。

返り値

新しいフォーム オブジェクトへのポインタを返します。呼び出しが成功しなかった場合、0 を返します。失敗する最も一般的な理由はメモリ不足です。

互換性

3.0 New Feature Set が存在する場合にのみ、実装されます。

参照

FrmValidatePtr(), WinValidateHandle()|Palm OS Programmer's API Reference/59, FrmRemoveObject()

FrmNewGadget 関数 ^TOP^

目的

新しいガゼットを動的に作成し、それを指定されたフォームにインストールします。

宣言されている場所

Form.h

Prototype

FormGadgetType *FrmNewGadget (
	FormType **formPP,
	UInt16 id,
	Coord x,
	Coord y,
	Coord width,
	Coord height
)

パラメータ

  • ←→ formPP
    • 新しいガゼットがインストールされるフォームへのポインタへのポインタ。この値はハンドルではありません。つまり、古い formPP 値は、この関数が返った後では、必ずしも有効ではありません。なぜなら、フォームはメモリの中を移動させられるかもしれないからです。この関数の呼び出し後の関数呼び出しでは、常にこの関数で返される新しい formPP を使用してください。
  • → id
    • 開発者によって指定されるガゼットの記号的な ID。慣例では、この ID はリソース ID と一致するべきです(義務ではありません)。
  • → x
    • ガゼットの領域の左上端の水平座標。ガゼットが現れるウィンドウから見た相対座標です。
  • → y
    • ガゼットの領域の左上端の垂直座標。ガゼットが現れるウィンドウから見た相対座標です。
  • → width
    • ガゼットの幅。ピクセル数で表します。有効範囲は 1 - 160 です。
  • → height
    • ガゼットの高さ。ピクセル数で表します。有効範囲は 1 - 160 です。

返り値

新しいガゼット オブジェクトへのポインタを返します。呼び出しが成功しなかった場合、0 を返します。失敗する最も一般的な理由はメモリ不足です。

コメント

ガゼットはカスタム ユーザ インターフェイス オブジェクトです。追加情報については、Palm OS User Interface GuideLines を参照してください。

互換性

3.0 New Feature Set が存在する場合にのみ、実装されます。

参照

FrmRemoveObject()

FrmNewGsi 関数 ^TOP^

目的

新しいシフト指示子を動的に作成し、それを指定されたフォームにインストールします。

宣言されている場所

Form.h

Prototype

FrmGraffitiStateType *FrmNewGsi(
	FormType **formPP,
	Coord x,
	Coord y
)

パラメータ

  • ←→ formPP
    • 新しいシフト指示子がインストールされるフォームへのポインタへのポインタ。この値はハンドルではありません。つまり、古い formPP 値は、この関数が返った後では、必ずしも有効ではありません。なぜなら、フォームはメモリの中を移動させられるかもしれないからです。この関数の呼び出し後の関数呼び出しでは、常にこの関数で返される新しい formPP を使用してください。
  • → x
    • シフト指示子の領域の左上端の水平座標。シフト指示子が現れるウィンドウから見た相対座標です。
  • → y
    • シフト指示子の領域の左上端の垂直座標。シフト指示子が現れるウィンドウから見た相対座標です。

返り値

新しいシフト指示子(訳者注: 原文では Gadget となっていたが誤りと思われる)オブジェクトへのポインタを返します。呼び出しが成功しなかった場合、0 を返します。失敗する最も一般的な理由はメモリ不足です。

コメント

通常のアプリケーションでは、シフト指示子は、ユーザがシフト入力をしたときに、スクリーンの右下に描かれます。シフト指示子を通常ではない場所に描く必要がある場合、この関数を使用してください。例えば、フォーム マネージャは、シフト指示子をテキスト フィールドを持つカスタム アラート ダイアログ(FrmCustomResponseAlert())の中に描くために、この関数を使用します。

互換性

3.5 New Feature Set が存在する場合にのみ、実装されます。

参照

FrmRemoveObject()

FrmNewLabel 関数 ^TOP^

目的

新しいラベル オブジェクトを動的に作成し、それを指定されたフォームにインストールします。

宣言されている場所

Form.h

Prototype

FormLabelType *FrmNewLabel (
	FormType **formPP,
	UInt16 ID,
	const Char *textP,
	Coord x,
	Coord y,
	FontID font
)

パラメータ

  • ←→ formPP
    • 新しいラベルがインストールされるフォームへのポインタへのポインタ。この値はハンドルではありません。つまり、古い formPP 値は、この関数が返った後では、必ずしも有効ではありません。なぜなら、フォームはメモリの中を移動させられるかもしれないからです。この関数の呼び出し後の関数呼び出しでは、常にこの関数で返される新しい formPP を使用してください。
  • → ID
    • 開発者によって指定されるラベルの記号的な ID。慣例では、この ID はリソース ID と一致するべきです(義務ではありません)。
  • → textP
    • ラベル テキストを提供する文字列へのポインタ。この文字列はラベル構造体の中にコピーされます。
  • → x
    • ラベルの領域の左上端の水平座標。ラベルが現れるウィンドウから見た相対座標です。
  • → y
    • ラベルの領域の左上端の垂直座標。ラベルが現れるウィンドウから見た相対座標です。
  • → font
    • 描かれるラベル テキストで使用されるフォント。

返り値

新しいラベル オブジェクトへのポインタを返します。呼び出しが成功しなかった場合、0 を返します。失敗する最も一般的な理由はメモリ不足です。

互換性

3.0 New Feature Set が存在する場合にのみ、実装されます。

参照

CtlValidatePointer(), FrmRemoveObject()

FrmPointInTitle 関数 ^TOP^

目的

座標がフォームのタイトルの領域内であるかどうかをチェックします。

宣言されている場所

Form.h

Prototype

Boolean FrmPointInTitle (
	const FormType *formP,
	Coord x,
	Coord y
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → x, y
    • ウィンドウから見た相対的な x と y 座標。

返り値

指定された座標がフォームのタイトルの中であれば、true を返します。

互換性

2.0 New Feature Set が存在する場合にのみ、実装されます。

FrmPopupForm 関数 ^TOP^

目的

指定されたフォームのために {{goro frmLoadEvent,frmLoadEvent|Palm OS Programmer's API Reference/2}} と {{goro frmOpenEvent,frmOpenEvent|Palm OS Programmer's API Reference/2}} を待ち行列に追加します。

宣言されている場所

Form.h

Prototype

void FrmPopupForm (
	UInt16 formId
)

パラメータ

  • → formID
    • オープンするフォームのリソース ID

返り値

返り値はありません。

コメント

このルーチンは、現在のフォームがクローズされない点が FrmGotoForm() と異なります。FrmPopupForm によってオープンされたフォームをクローズするためには FrmReturnToForm() を使用します。

FrmRemoveObject 関数 ^TOP^

目的

指定されたフォームから指定されたオブジェクトを削除します。

宣言されている場所

Form.h

Prototype

Err FrmRemoveObject (
	FormType **formPP,
	UInt16 objIndex
)

パラメータ

  • ←→ formPP
    • この関数が削除するオブジェクトがあるフォームへのポインタへのポインタ。この値はハンドルではありません。つまり、古い formPP 値は、この関数が返った後では、必ずしも有効ではありません。なぜなら、フォームはメモリの中を移動させられるかもしれないからです。この関数の呼び出し後の関数呼び出しでは、常にこの関数で返される新しい formPP を使用してください。
  • → objIndex
    • 削除されるオブジェクト。フォームにインストールされたオブジェクトのリストでのインデックスで指定されます。この値を取得するために FrmGetObjectIndex() を使用することができます。

返り値

エラーが無い場合、0 を返します。

コメント

あらゆるフォーム オブジェクト(ビットマップ、コントロール、リストなど)を削除し、フォーム データ構造体内のオブジェクトに割り当てられていたメモリを解放するために、この関数を使用できます。多くのフォーム オブジェクトのためのデータ構造体は、フォーム データ構造体メモリ チャンク内に埋め込まれています。この関数はそのメモリを解放し、必要があれば、メモリの「穴」を埋めてフォーム チャンクのサイズを減らすために他のオブジェクトを移動させます。

この関数は、編集可能なフィールド オブジェクトの中の文字列に割り当てられたメモリように、オブジェクトに割り当てられるかもしれないフォーム データ構造体の外のメモリは解放しないことに注意してください。

互換性

3.0 New Feature Set が存在する場合にのみ、実装されます。

参照

FrmNewBitmap(), FrmNewForm(), FrmNewGadget(), FrmNewLabel(), CtlNewControl(), FldNewField(), LstNewList()

FrmRestoreActiveState マクロ ^TOP^

目的

アクティブなウィンドウとフォームの状態を元に戻します。

宣言されている場所

Form.h

Prototype

#define FrmRestoreActiveState (
	stateP
)

パラメータ

  • → stateP
    • 状態を保存したときに FrmSaveActiveState に渡した FormActiveStateType 構造体へのポインタ

返り値

成功時に 0 を返します。

コメント

表示されているフォームの状態を、動的に新しいモーダル フォーム(訳者注)を表示させる前の状態に戻します。状態を保存しておくために、事前に FrmSaveActiveState() を呼び出しておく必要があります。

互換性

3.0 New Feature Set が存在する場合にのみ、実装されます。

FrmReturnToForm 関数 ^TOP^

目的

現在のアクティブなフォームの消去と削除を行い、指定されたフォームをアクティブにします。

宣言されている場所

Form.h

Prototype

void FrmReturnToForm (
	UInt16 formId
)

パラメータ

  • → formID
    • 戻す(訳者注: アクティブにする)フォームのリソース ID

返り値

返り値はありません。

コメント

戻されるフォームはすでにメモリに読み込まれて初期化されていると仮定します。0 のフォーム ID を渡すと、ウィンドウ リストの中の最初のフォームを戻します。最初のフォームは最後に読み込まれたフォームです。

FrmReturnToForm は、モーダル フォーム(訳者注)のイベント ハンドラから呼び出されたとき、frmCloseEvent を生成しません。明示的に FrmReturnToForm を呼び出しているため、フォーム変数のクリーン アップを実行済みだと仮定します。

参照

FrmGotoForm(), {[goto FrmPopupForm,FrmPopupForm()}}

FrmSaveActiveState マクロ ^TOP^

目的

アクティブなウィンドウとフォームの状態を保存します。

宣言されている場所

Form.h

Prototype

#define FrmSaveActiveState (
	stateP
)

パラメータ

  • ←→ stateP

返り値

成功時に 0 を返します。

コメント

動的に新しいモーダル フォーム(訳者注)を表示する前に表示されているフォームの状態を保存するために、この関数を使用します。モーダル フォーム(訳者注)を削除した後に状態を戻すために、FrmRestoreActiveState() を呼び出します。

互換性

3.0 New Feature Set が存在する場合にのみ、実装されます。

FrmSaveAllForms 関数 ^TOP^

目的

frmSaveEvent をオープンされているすべてのフォームに送ります。

宣言されている場所

Form.h

Prototype

void FrmSaveAllForms (
	void
)

パラメータ

ありません。

返り値

返り値はありません。

参照

FrmCloseAllForms()

FrmSetActiveForm 関数 ^TOP^

目的

アクティブ フォームをセットします。すべての入力(キーとペン)はアクティブ フォームに向けられ、すべての描画もそこで行われます。

宣言されている場所

Form.h

Prototype

void FrmSetActiveForm (
	FormType *formP
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ

返り値

返り値はありません。

コメント

フォームの外側での penDownEvent は、ディスプレイ領域の内側であっても無視されます。

互換性

Palm OS 3.5 より前のリリースでは、この関数は、古いフォームのための winExitEvent のすぐ後に続けて、新しいフォームのための winEnterEvent を生成します。Palm OS 3.5 からは、FrmSetActiveFormwinEnterEvent を生成しません。winEnterEvent は、新しいアクティブ フォームが描画されるまで、起きません。

参照

FrmGetActiveForm()

FrmSetCategoryLabel 関数 ^TOP^

目的

フォームのタイトル ライン上に表示されるカテゴリ ラベルをセットします。フォームの visible 属性がセットされている場合、ラベルを再描画します。

宣言されている場所

Form.h

Prototype

void FrmSetCategoryLabel (
	const FormType *formP,
	UInt16 objIndex,
	Char *newLabel
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → objIndex
    • フォームの中にあるオブジェクトのインデックス。FrmGetObjectIndex() を使ってこの値を取得することができます。
  • → newLabel
    • 新しいカテゴリの名前へのポインタ

返り値

返り値はありません。

コメント

新しいラベル(newLabel))へのポインタはオブジェクト内に保存されます。

FrmSetControlGroupSelection 関数 ^TOP^

目的

コントロール グループの中のコントロールを選択します。

宣言されている場所

Form.h

Prototype

void FrmSetControlGroupSelection(
	const FormType *formP,
	UInt8 groupNum,
	UInt16 controlID
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → groupNum
    • コントロール グループ番号
  • → controlID
    • セットするコントロールの ID。

返り値

返り値はありません。

コメント

この関数はグループの中の他のすべてのコントロールの選択を解除します。ディスプレイは更新されます。

NOTE:
FrmGetControlGroupSelection はコントロール グループの中の選択されたオブジェクトを、FrmSetControlGroupSelection が選択されるオブジェクトをセットするために使用するオブジェクト ID ではなく、オブジェクト インデックスで返します。

参照

FrmGetControlGroupSelection()

FrmSetControlValue 関数 ^TOP^

目的

コントロールの現在値をセットします。コントロールが可視の場合、コントロールは再描画されます。

宣言されている場所

Form.h

Prototype

void FrmSetControlValue (
	const FormType *formP,
	UInt16 objIndex,
	Int16 newValue
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → objIndex
    • フォームの中にあるコントロールのインデックス。FrmGetObjectIndex() を使ってこの値を取得することができます。
  • → newValue
    • コントロールにセットする新しい値。スライダに対しては、スライダの最小値と最大値の間の値を指定します(訳者注: スライダが示す値のこと)。グラフィカル コントロール、プッシュ ボタンそれにチェック ボックスに対しては、off にする場合は 0 を、on にする場合は 0 でない値を指定します。

返り値

返り値はありません。

コメント

この関数は、グラフィカル コントロール、スライダ、プッシュ ボタンそれにチェック ボックスに対してのみ機能します。他のタイプのコントロールの値をセットした場合のこの関数の振る舞いは定義されていません。

参照

FrmGetControlValue()

FrmSetDIAPolicyAttr 関数 ^TOP^

目的

目的

フォームの動的入力エリア ポリシーをセットします。

宣言されている場所

Form.h

Prototype

Err FrmSetDIAPolicyAttr (
	FormPtr formP,
	UInt16 diaPolicy
)

パラメータ

返り値

エラーが無い場合、errNone を返します。diaPolicy パラメータが範囲外の場合、pinErrInvalidParam を返します。

コメント

アプリケーションは、frmLoadEvent または frmOpen への応答の中で、フォームが動的入力エリアをオープンまたはクローズする際に使用すべきポリシーをセットするために、この関数を呼び出します。アプリケーションがこの関数を呼び出さない場合のデフォルトのポリシーは frmDIAPolicyStayOpen であることに注意してください。これ(訳者注: デフォルトのポリシー)は過去のアプリケーションが常に適切なサイズにされることを可能にします。なぜなら、アプリケーションが実行されている間、入力エリアはトリガが使用不可の状態で常にオープンされているからです。

互換性

Pen Input Manager Feature Set が存在する場合にのみ、実装されます。

参照

PINSetInputAreaState|Palm OS Programmer's API Reference/46, FrmGetDIAPolicyAttr

FrmSetEventHandler 関数 ^TOP^

目的

指定されたフォームのためのイベント ハンドラ コールバック ルーチンを登録します。

宣言されている場所

Form.h

Prototype

void FrmSetEventHandler (
	FormType *formP,
	FormEventHandlerType *handler
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → handler

返り値

返り値はありません。

コメント

FrmDispatchEvent() は、特定のフォームのためのイベントを受け取るといつでも、このハンドラを呼び出します。

FrmSetEventHandler は、フォーム リソースが読み込まれた後に正しく呼び出されなければなりません。この関数が登録するコールバック ルーチンはイベントをアプリケーションに向けて発信するための機構です。チュートリアルでコールバック ルーチンをどのように使用するか説明しています。

FrmSetFocus 関数 ^TOP^

目的

フォームのフォーカスを指定されたオブジェクトにセットします。

宣言されている場所

Form.h

Prototype

void FrmSetFocus (
	FormType *formP,
	UInt16 fieldIndex
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → fieldIndex
    • フォームの中にあるフォーカスされるオブジェクトのインデックス。FrmGetObjectIndex() を使ってこの値を取得することができます。定数 noFocus を渡すことで、フォーカスされるオブジェクトを無くすることもできます。

返り値

返り値はありません。

コメント

フィールドまたはテーブル オブジェクトにフォーカスをセットすることができます。フォーカスがフィールド オブジェクトにセットされた場合、この関数は FldGrabFocus() を呼び出すことでフィールドの中に挿入ポイントを点灯させます。

参照

FrmGetFocus()

FrmSetGadgetData 関数 ^TOP^

目的

ガゼット オブジェクトの data フィールドのデータ値を戻します。

宣言されている場所

Form.h

Prototype

void FrmSetGadgetData (
	FormType *formP,
	UInt16 objIndex,
	const void *data
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → objIndex
    • フォームの中にあるオブジェクトのインデックス。FrmGetObjectIndex() を使ってこの値を取得することができます。
  • → data
    • アプリケーション定義値。この値はガゼット データ構造体(FormGadgetType)の data フィールドに戻されます。

返り値

返り値はありません。

コメント

ガゼット オブジェクトは、アプリケーションのために、カスタム ガゼットをフォームに貼り付ける手段を提供します。一般に、ガゼット オブジェクトの data フィールドはカスタム オブジェクトのデータ構造体へのポインタを保持します。

参照

FrmGetGadgetData(), FrmSetGadgetHandler()

FrmSetGadgetHandler 関数 ^TOP^

目的

指定されたフォーム上の指定されたガゼットのイベント ハンドラであるコールバック ルーチンを登録します。

宣言されている場所

Form.h

Prototype

void FrmSetGadgetHandler (
	FormType *formP,
	UInt16 objIndex,
	FormGadgetHandlerType *attrP
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → objIndex
    • フォームの中にあるガゼットのインデックス。FrmGetObjectIndex() を使ってこの値を取得することができます。
  • → attrP

返り値

返り値はありません。

コメント

この関数は指定されたガゼットの振る舞いを制御するアプリケーション定義関数をセットします。この関数は、ガゼットが描画される、消される、削除される必要があるとき、または、イベントをハンドルする必要があるときに呼び出されます。

互換性

3.5 New Feature Set が存在する場合にのみ、実装されます。

参照

FrmGetGadgetData(), FrmSetGadgetData()

FrmSetMenu 関数 ^TOP^

目的

フォームのメニュー バーを変更し、新しいメニューをアクティブにします。

宣言されている場所

Form.h

Prototype

void FrmSetMenu (
	FormType *formP,
	UInt16 menuRscID
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → menuRscID
    • メニューのリソース ID

返り値

返り値はありません。

互換性

2.0 New Feature Set が存在する場合にのみ、実装されます。

FrmSetNavEntry 関数 ^TOP^

目的

フォームの中にある 1 つのオブジェクトのナビゲーション情報を変更します。

Prototype

Err FrmSetNavEntry (
	FormType *formP,
	UInt16 targetObjectID,
	UInt16 afterObjectID,
	UInt16 aboveObjectID,
	UInt16 belowObjectID,
	FrmNavObjectFlagsType objectFlags
)

パラメータ

  • → formP
    • ナビゲーション順が変更されるフォームへのポインタ
  • → targetObjectID
    • 編集、追加または削除されるオブジェクトの ID
  • → afterObjectID
    • ターゲット オブジェクトの左にくるオブジェクトの ID。現在ここで指定されるオブジェクトの右にあるオブジェクトはターゲット オブジェクトの右に移動させられます。ターゲット オブジェクトをナビゲーション順の最初に位置させるには、そのオブジェクトを行の中で一番左にして、0 の ID を渡します。ターゲット オブジェクトを完全にナビゲーション順から削除するには frmInvalidObjectId の ID を渡します。
  • → aboveObjectID
    • ターゲット オブジェクトの上にくるオブジェクトの ID。ターゲット オブジェクトがフォームの最初の行にある場合、0 の ID を渡します。
  • → belowObjectID
    • ターゲット オブジェクトの下にくるオブジェクトの ID。ターゲット オブジェクトがフォームの最後の行にある場合、0 の ID を渡します。
  • → objectFlags
    • ターゲット オブジェクトのための新しいオブジェクト フラグ。FrmNavObjectFlagsType を参照してください。

返り値

操作が成功裏に完了した場合、errNoneを返します。そうでない場合はエラー コードを返します。

コメント

NOTE:
この関数はナビゲーション リソースの内容を置き換えることを意図してはいません。カスタム ナビゲーション順を持つことを必要とするフォームは常にナビゲーション リソースを敵供すべきです。この関数は、主に、動的に作成されるフォームまたはナビゲーション リソースを持つがフォームの初期化後に順番を変更するフォームのためにあります。

互換性

One-Handed Navigation Feature Set が存在する場合にのみ、実装されます。

参照

FrmGetNavEntry()

FrmSetNavOrder 関数 ^TOP^

目的

ナビゲーション順とフォームのヘッダ情報の両方またはどちらかをセットします。

宣言されている場所

Form.h

Prototype

Err FrmSetNavOrder (
	FormType *formP,
	FrmNavHeaderType *navHeaderP,
	FrmNavOrderEntryType *navOrderP
)

パラメータ

  • → formP
    • フォーカス順がセットされるフォームへのポインタ
  • → navHeaderP
    • フォームのナビゲーション情報のためのヘッダ情報を保持する FrmNavHeaderType へのポインタ
  • → navOrderP
    • フォームの新しいナビゲーション順を指定する FrmNavOrderEntryType の配列へのポインタ。配列の中のエントリの数はヘッダ パラメータの numberOfObjects フィールドと等しくなければなりません。フォームのナビゲーション順は変更したくないが、フォームのヘッダ情報のみを変更したい場合、NULL を渡します。

返り値

操作が成功裏に完了した場合、errNone を返します。そうでない場合はエラー コードを返します。

コメント

この関数は渡されたすべての情報のコピーを作成します。

現在フォーカスされているオブジェクトがナビゲーション順から削除された場合、そのオブジェクトはフォーカスされていない状態で再描画され、フォームもフォーカスされていない状態になります。

NOTE:
この関数はナビゲーション リソースの内容を置き換えることを意図してはいません。カスタム ナビゲーション順を持つことを必要とするフォームは常にナビゲーション リソースを敵供すべきです。この関数は、主に、動的に作成されるフォームまたはナビゲーション リソースを持つがフォームの初期化後に順番を変更するフォームのためにあります。

互換性

One-Handed Navigation Feature Set が存在する場合にのみ、実装されます。

参照

FrmGetNavEntry()

FrmSetNavState 関数 ^TOP^

目的

フォームのナビゲーション状態をセットします。

宣言されている場所

Form.h

Prototype

Err FrmSetNavState (
	FormType *formP,
	FrmNavStateFlagsType stateFlags
)

パラメータ

  • → formP
    • ナビゲーション状態がセットされるフォームへのポインタ
  • → stateFlags
    • 新しいナビゲーション状態を示すフラグ。状態はフォームの現在のフォーカス モードを示します。このパラメータに渡されるフラグについては、FrmNavStateFlagsType を参照してください。

返り値

操作が成功裏に完了した場合、errNone を返します。そうでない場合はエラー コードを返します。

互換性

One-Handed Navigation Feature Set が存在する場合にのみ、実装されます。

参照

FrmGetNavEntry()

FrmSetObjectBounds 関数 ^TOP^

目的

オブジェクトの領域または位置をセットします。

宣言されている場所

Form.h

Prototype

void FrmSetObjectBounds (
	FormType *formP,
	UInt16 objIndex,
	const RectangleType *bounds
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → objIndex
    • フォームの中にあるオブジェクトのインデックス。FrmGetObjectIndex() を使ってこの値を取得することができます。
  • → bounds
    • ウィンドウとの相対的な領域。以下のオブジェクトでは、この関数は領域の左上端の位置をセットするだけです: ラベル、ビットマップ、シフト指示子。

返り値

返り値はありません。

コメント

ディスプレイの更新は行いません。

互換性

2.0 New Feature Set が存在する場合にのみ、実装されます。

参照

FrmGetObjectPosition(), FrmGetObjectBounds(), FrmSetObjectPosition()

FrmSetObjectPosition 関数 ^TOP^

目的

オブジェクトの位置をセットします。

宣言されている場所

Form.h

Prototype

void FrmSetObjectPosition (
	FormType *formP,
	UInt16 objIndex,
	Coord x,
	Coord y
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → objIndex
    • フォームの中にあるオブジェクトのインデックス。FrmGetObjectIndex() を使ってこの値を取得することができます。
  • → x
    • ウィンドウとの相対的な水平座標。
  • → y
    • ウィンドウとの相対的な垂直座標。

返り値

返り値はありません。

参照

FrmGetObjectPosition(), FrmGetObjectBounds()

FrmSetTitle 関数 ^TOP^

目的

フォームのタイトルをセットします。フォームが可視の場合、新しいタイトルを描きます。

宣言されている場所

Form.h

Prototype

void FrmSetTitle (
	FormType *formP,
	Char *newTitle
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → newTitle
    • 新しいタイトル文字列へのポインタ

返り値

返り値はありません。

コメント

この関数は、フォームが可視の場合、タイトルを描きます。

この関数は newTitle で渡されたポインタを保存します。コピーは作成しません。newTitle の値はスタック ベースのオブジェクトへのポインタであってはいけません。

互換性

以前のバージョンでは、この関数は古いタイトルを消さずに新しいタイトルを再描画します。この問題は Palm OS 3.0 で解消されました。

参照

FrmGetTitle(), FrmCopyTitle(), FrmCopyLabel()

FrmShowObject 関数 ^TOP^

目的

フォーム オブジェクトを使用可能にします。フォームが可視の場合、オブジェクトを描きます。

宣言されている場所

Form.h

Prototype

void FrmShowObject (
	FormType *formP,
	UInt16 objIndex
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → objIndex
    • フォームの中にあるオブジェクトのインデックス。FrmGetObjectIndex() を使ってこの値を取得することができます。

返り値

返り値はありません。

互換性

Palm OS 3.5 より前のバージョンでは、この関数はリストとテーブルに影響を与えません。Palm OS 3.5 では、この関数はリストに対しては正しく機能しますが、テーブルに対しては影響を与えません。Palm OS 4.0 では、この関数はリストとテーブルの両方に対して正しく機能します。

3.5 New Feature Set が満たされ、かつ、オブジェクトが拡張ガゼットの場合、この関数は formGadgetDrawCmd と一緒にガゼットのコールバック関数を呼び出します。FormGadgetHandlerType() を参照してください。

参照

FrmHideObject()

FrmUpdateForm 関数 ^TOP^

目的

frmUpdateEvent を指定されたフォームに送ります。

宣言されている場所

Form.h

Prototype

void FrmUpdateForm (
	UInt16 formId,
	UInt16 updateCode
)

パラメータ

  • → formId
    • 更新するフォームのリソース ID
  • → updateCode
    • 更新に必要とされるものを示すために使用することができるアプリケーション定義コード。フォーム全体が再描画されるべきであることを示すにはコード frmRedrawUpdateCode を指定します。

返り値

返り値はありません。

コメント

この関数によって発せられる frmUpdateEvent がデフォルトのフォーム イベント ハンドラ(FrmHandleEvent())によってハンドルされる場合、updateCode パラメータは無視されます。FrmHandleEvent は常にフォームを再描画します。

カスタム イベント ハンドラによって frmUpdateEvent がハンドルされる場合、updateCode パラメータを好きなように使用することができます。例えば、このパラメータを、フォームの再描画されるべき特定の部分を示すために、使用するかもしれません。frmUpdateEvent をハンドルする場合、カスタム イベント ハンドラが true を返し、それによりデフォルトのフォーム イベント ハンドラがフォーム全体の再描画を行わないようになっていることを確認してください。

カスタム イベント ハンドラによって frmUpdateEvent がハンドルされる場合、updateCodefrmRedrawUpdateCode にセットされているイベントをハンドルして、フォーム全体を再描画するようになっていることを確認してください。このイベント(とコード)は、ディスプレイがリフレッシュされる必要があるためにフォーム全体が再描画される必要があるとき、システムによって発せられます。

FrmUpdateScrollers 関数 ^TOP^

目的

フィールドのスクロール矢印ボタンを視覚的に更新(表示または隠す)します。

宣言されている場所

Form.h

Prototype

void FrmUpdateScrollers (
	FormType *formP,
	UInt16 upIndex,
	UInt16 downIndex,
	Boolean scrollableUp,
	Boolean scrollableDown
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → upIndex
    • 上スクロールボタンのインデックス。FrmGetObjectIndex() を使ってこの値を取得することができます。
  • → downIndex
    • 下スクロールボタンのインデックス。FrmGetObjectIndex を使ってこの値を取得することができます。
  • → scrollableUp
    • 上スクロールボタンをアクティブにする(表示させる)には true をセットし、隠すには false をセットします。
  • → scrollableDown
    • 下スクロールボタンをアクティブにする(表示させる)には true をセットし、隠すには false をセットします。

返り値

返り値はありません。

コメント

この関数は、元々は、テキストを持つボタンに対して使用されるものと考えられていました。なぜなら、この関数は矢印(黒または灰、上または下のいずれか)を更新するためにシンボル フォントを使用するからです。しかしながら、この関数はさまざまなボタン タイプに対応します。テキストを持たないボタンの使用可能/使用不可の状態を取得することができ、ガゼットを使用している場合、取得した状態をカスタム スクロール ボタンの表示を変更するために使用することができます。この関数にテキストを持つボタンを渡さなかった場合、この関数はボタンの「テキスト」メンバに関するボタンの表示を更新しようとはしません。

FrmValidatePtr 関数 ^TOP^

目的

指定されたポインタが有効なフォームを参照している場合は true を返します。

宣言されている場所

Form.h

Prototype

Boolean FrmValidatePtr (
	const FormType *formP
)

パラメータ

  • → formP
    • テストされるポインタ

返り値

指定されたポインタが有効なフォーム構造体を持つオブジェクトを指す non-NULL ポインタである場合、true を返します。

コメント

この関数はデバッグ目的のみで使用されることを意図しています。リリース コードにこの関数を含めないでください。

リリース コードでウィンドウとフォームを見分けるには、この関数を使用する代わりに、WindowType|Palm OS Programmer's API Rerence/59 構造体の中のフラグ windowFlags.dialog を見てください。ウィンドウがフォームの場合、このフラグは true です。

互換性

3.0 New Feature Set が存在する場合にのみ、実装されます。

参照

ECFrmValidatePtr()

FrmVisible 関数 ^TOP^

目的

フォームが可視(描かれている)場合、true を返します。

宣言されている場所

Form.h

Prototype

Boolean FrmVisible (
	const FormType *formP
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ

返り値

フォームが可視の場合、true を返します。可視でない場合、false を返します。

参照

FrmDrawForm(), FrmEraseForm()

アプリケーション定義関数 ^TOP^

FormCheckResponseFuncType 関数 ^TOP^

目的

FrmCustomResponseAlert() のためのコールバック関数。

宣言されている場所

Form.h

Prototype

Boolean FormCheckResponseFuncType (
	Int16 button,
	Char *attempt
)

typedef FormCheckResponseFuncType
   *FormCheckResponseFuncPtr

パラメータ

  • → button
    • ユーザがタップするボタンの ID
  • → attempt
    • ユーザがダイアログの中に入力した文字列

返り値

ダイアログを終了させるべきである場合、true を返します。ダイアログを終了させるべきではない場合、false を返します。

コメント

この関数は、FrmCustomResponseAlert ルーチンの中で以下の時点で呼び出されます。

  • FrmCustomResponseAlert の開始時、この関数は frmResponseCreate のボタン ID と一緒に呼び出されます。この定数はダイアログが表示されようとしていて、関数は必要な初期化を実行すべきであるということを示します。
  • ユーザがダイアログ上のボタンをタップした時。関数は attempt 文字列を処理すべきです。文字列が有効な入力である場合、関数は true を返すべきです。有効でない場合、ユーザに文字列を再入力する機会を与えるために false を返すべきです。
  • FrmCustomResponseAlert の終了時、この関数は frmResponseQuit のボタン ID と一緒に呼び出されます。これは、コールバック関数にクリーンアップ、Japanese FEP(訳者注: font-end proccesor つまり、日本語入力システムのことと思われる)を再び使用可能にするなど、を実行する機会を与えます。

互換性

3.5 New Feature Set が存在する場合にのみ、実装されます。

FormEventHandlerType 関数 ^TOP^

目的

フォームのためのイベント ハンドラ コールバック ルーチン。

宣言されている場所

Form.h

Prototype

Boolean FormEventHandlerType (
	EventType *eventP
)

typedef FormEventHandlerType *FormEventHandlerPtr

パラメータ

返り値

このルーチンがイベントをハンドルした場合は true を返さなくてはなりません。そうでない場合は false を返さなくてはなりません。

コメント

FrmDispatchEvent() は、フォームのためのイベントを受け取るといつでも、このハンドラを呼び出します。

このコールバック ルーチンは、アプリケーションの中にある特定のフォームにイベントを発信するための機構です。コールバックはルーチン FrmSetEventHandler() によって登録されます。

FormGadgetHandlerType 関数 ^TOP^

目的

拡張ガゼットのためのイベント ハンドラ コールバック。

宣言されている場所

Form.h

Prototype

Boolean (
	FormGadgetHandlerType
)(
	struct FormGadgetTypeInCallback *gadgetP,
	UInt16 cmd,
	void *paramP
)

パラメータ

  • → gadgetP
    • ガゼット構造体へのポインタ。FormGadgetType を参照してください。
  • → cmd
    • ハンドラがとるべき行動を指定する定数。この定数は以下に示すものの 1 つです。
  • formGadgetDeleteCmd
    • ガゼットが削除されているところで、ガゼットは割り当てられていたメモリのクリーンアップまたは他のクリーンアップ タスクを実行しなければならないということを示すために、FrmDeleteForm() によって送られます。
  • formGadgetDrawCmd
    • ガゼットは描画または再描画を行わなければならないということを示すために、FrmDrawForm() または FrmShowObject() によって送られます。
  • formGadgetEraseCmd
    • ガゼットは消されようとしているということを示すために、FrmHideObject() によって送られます。FrmEraseObjectbisibleusable フラグをクリアします。コールバックが false を返した場合、FrmEraseObject は、ガゼットの領域を消すために、さらに WinEraseRectangle を呼び出します。
  • formGadgetHandleEventCmd
    • ガゼット イベントが受け取られたということを示すために、FrmHandleEvent() によって送られます。paramP パラメータは EventType 構造体へのポインタを保持しています。
  • → paramP
    • cmdformGadgetHandleEventCmd である場合を除いて NULL です。除外されたケースでは、このパラメータはイベントを保持している EventType 構造体へのポインタを保持しています。

返り値

イベントが成功裏にハンドルされた場合、true を返します。そうでない場合、false を返します。

コメント

この関数が、formGadgetDrawCmd への応答の中で、描画を行う場合、この関数はガゼットの visible 属性フラグをセットすべきです。(gadgetP->attr.visible = true)このフラグは、ガゼットがスクリーン上に現れるということを示します。visible フラグをセットしない場合、ガゼットは、FrmHideObject() が呼び出されたとき、消されません。(FrmHideObject は、オブジェクトの visible フラグが false の場合、すぐに返ります。)

関数が formGadgetEraseCmd を受け取った場合、paramP は以下の 2 つのイベントのうちの 1 つを指しているということに注意してください: frmGadgetEnterEvent または frmGadgetMiscEventfrmGadgetEnterEvent は、ガゼットの領域内で penDownEvent が起きたときに、渡されます。この関数はペンを追跡し、必要なハイライトを行うべきです。frmGadgetMiscEvent がシステムによって送られることはありません。アプリケーションが、拡張ガゼットにデータを送る必要があるときに、frmGadgetMiscEvent を使用することがあるかもしれません。そのようなケースでは、イベントは selector(符号無し整数)と dataP(データへのポインタ)フィールドのどちらかまたは両方を持ちます。

互換性

3.5 New Feature Set が存在する場合にのみ、実装されます。

参照

FrmSetGadgetHandler()


訳者注: モーダル ダイアログとは、そのダイアログ ボックスが表示されている間はダイアログ以外の操作を受け付けなくするダイアログです。

※訳者は古い Palm デバイスしか所有していないため、ナビゲーション関係の記述についてはあやふやな部分が多いです。

← 11 章のページ 1 へ ↑ 11 章のトップへ

← 10 章に戻る ↑トップへ 12 章に進む →