Palm Programmer's Laboratory

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

Palm OS Programmer's API Reference/20

← 19 章に戻る ↑トップへ 21 章に進む →

20 テーブル

この章では、ヘッダ ファイル Table.h で宣言されているテーブル API について説明します。以下に挙げたものについて説明します。

テーブルについての追加情報は Palm OS Programmer's Companion, vol. I「テーブル」を参照してください。

テーブル データ構造体 ^TOP^

TableAttrType 構造体 ^TOP^

目的

TableAttrType ビット フィールドはテーブルの可視特性を定義します。

WARNING!!!
PalmSource 社(訳者注: 現 ACCESS 社)は TableAttrType 構造体の下位互換をサポートしません。この構造体のメンバに直接アクセスしてはいけません。そのようなコード将来のバージョンでは機能しないかもしれません。以下の情報はデバッグ目的でのみ使用してください。

Prototype

typedef struct {
	UInt16 visible:1;
	UInt16 editable:1;
	UInt16 editing:1;
	UInt16 selected:1;
	UInt16 hasScrollBar:1;
	UInt16 reserved:11;
} TableAttrType;

フィールド

  • visible
    • セットされている場合、テーブルはスクリーン上に描かれます。このフィールドの値は、TblDrawTable() でセットし、TblEraseTable() でクリアします。
  • editable
    • セットされている場合、ユーザはテーブルを変更できます。テーブル リソースを作成したときに、この値を指定してください。
  • editing
    • セットされている場合、テーブルは編集モードになっています。ユーザがテキスト アイテムを編集している間、テーブルは編集モードになります。このフィールドの値は TblEditing() によって返されます。
  • selected
    • セットされている場合、現在のアイテム(TableTypecurrentRowcurrentColumn フィールドによって特定されます)は選択されています。この値を調べるには TblGetSelection() を使用してください。
  • hasScrollBar
    • セットされている場合、テーブルはスクロール バーを持ちます。この属性はプログラム上でのみセットできるということに注意してください。TblHasScrollBar() を参照してください。

TableColumnAttrType 構造体 ^TOP^

目的

TableColumnAttrType 構造体はテーブルの列を定義します。

WARNING!!!
PalmSource 社(訳者注: 現 ACCESS 社)は TableColumnAttrType 構造体の下位互換をサポートしません。この構造体のメンバに直接アクセスしてはいけません。そのようなコード将来のバージョンでは機能しないかもしれません。以下の情報はデバッグ目的でのみ使用してください。

Prototype

typedef struct {
	Coord width;
	UInt16 reserved1 : 5;
	UInt16 masked : 1;
	UInt16 editIndicator : 1;
	UInt16 usable : 1;
	UInt16 reserved2 : 8;
	Coord spacing;
	TableDrawItemFuncPtr drawCallback;
	TableLoadDataFuncPtr loadDataCallback;
	TableSaveDataFuncPtr saveDataCallback;
} TableColumnAttrType;

コードは TableColumnAttrType 構造体を実体のないものとして扱うべきです。以下の説明で指定される関数を使って、各値を調べ、セットしてください。構造体メンバの値を直接変更しようとしてはいけません。

フィールド

  • width
  • reserved1
    • 将来使用するために予約されています。
  • masked
    • true で アイテムの行の masked 属性も true の場合、そのテーブル セルはスクリーン上に描かれます、しかし、そのセルが保持している情報を(訳者注: 視覚的に)あいまいにするために陰影がつけられます(訳者注: 黒っぽく表示されるということ)。TblSetColumnMasked() を参照してください。
  • editIndecator
    • セットされている場合、編集モード中に選択された列のアイテムはハイライトされます。false の場合、列のアイテムはハイライトされません。デフォルトでは、テキスト フィールド アイテムは編集モード中にハイライトされますが、他のすべてのアイテムはハイライトされません。デフォルトを TblSetColumnEditIndicator() で上書きすることができます。
  • usable
    • false の場合、列はアプリケーションの現在のインターフェイスの一部とは見なされず、スクリーン上にも表示されません。TblSetColumnUsable() を参照してください。
  • reserved2
    • 将来使用するために予約されています。
  • spacing
  • drawCallback
  • loadDataCallback
  • saveDataCallback
    • 列のデータを保存するための関数へのポインタ。あるテーブル セルから他のテーブル セルへとフォーカスが移動したときと、テーブルが完全にフォーカスを失ったときに呼び出されます。TblSetSaveDataProcedure() を参照してください。

互換性

3.5 New Feature Set が存在する場合にのみ、masked フィールドが定義されます。

TableItemPtr Typedef ^TOP^

目的

TableItemPtrTableItemType を指します。

Prototype

typedef TableItemType *TableItemPtr;

TableItemType 構造体 ^TOP^

目的

TableItemType 構造体は、テーブルのアイテムまたはセルを定義します。

WARNING!!!
PalmSource 社(訳者注: 現 ACCESS 社)は TableItemType 構造体の下位互換をサポートしません。この構造体のメンバに直接アクセスしてはいけません。そのようなコード将来のバージョンでは機能しないかもしれません。以下の情報はデバッグ目的でのみ使用してください。

Prototype

typedef struct {
	TableItemStyleType itemType;
	FontID fontID;
	Int16 intValue;
	Char *ptr;
} TableItemType;

コードは TableItemType 構造体を実体のないものとして扱うべきです。以下の説明で指定される関数を使って、各値を調べ、セットしてください。構造体メンバの値を直接変更しようとしてはいけません。

NOTE
テーブル アイテムは、明示的に解放する必要のあるメモリを作成することはありません。テーブル マネージャは、テーブル アイテムに対するすべてのメモリ割り当てと割り当て解除をハンドルします。明示的に解放しなければならない唯一のメモリは、編集可能なテキスト フィールドに表示されるテキストを保持しているメモリ ハンドルです。(TableLoadDataFuncType() を参照してください。)

フィールド

  • itemType
    • コントロール、テキスト ラベルなどのアイテムの型。TblSetItemStyle() がこの値をセットします。この構造体の残りのフィールドが使用されるか、使用されないかは、itemType 次第です。表 20.1 を参照してください。
  • fontID
    • アイテムのテキストを表示するのに使用されるフォントの ID。TblGetItemFont()TblSetItemFont() がこの値を調べ、セットします。
  • intValue
  • ptr
    • アイテムのテキストへのポインタ。TblGetItemPtr()TblSetItemPtr() がこの値を調べ、セットします。
    • すべてのテキスト アイテムの最大サイズは tableMaxTextItemSize です。

以下の表は、itemType フィールドの取り得る値を示し、各型がどのように描かれるのか説明し、各 itemType に対して他のどのフィールドが使用されるのか説明し、それらのフィールドの設定に関する追加の説明を行います。特に、fontID フィールドはしばしば使用されないことに注意してください。代わりに、いくつかのアイテムは標準フォントで表示されます。これらのことは、この表の最後の列に記述されています。

表 20.1 TableItemType フィールド
ItemType Description 使用される TableItemType フィールド
checkboxTableItem チェックボックス コントロール intValue
customTableItem アプリケーション定義セル。アイテムの高さは 11 ピクセルで固定です。 ありません。カスタム アイテムは実装されたカスタム描画関数を使用して描かれます。TableDrawItemFuncType() を参照してください。必要があれば、intValueptr フィールドにデータを保存することができます。
dateTableItem 月/日形式の編集不可の日付、または、日付の値が -1 の場合はダッシュ「―」。日付が過去のものであれば、感嘆符が後に続きます。 intValue
intValue フィールドは DateType にキャスト可能な値であるべきです。DateType は現在のところ 16 ビットの数として定義されています。yyyyyyymmmmddddd。最初の 7 ビットは1904年からのオフセットとして与えられる年、次の 4 ビットは月、次の 5 ビットは日です。日付はいつでも現在のフォントで描かれます。
labelTableItem 編集不可のテキスト ptr
ラベルはシステムのデフォルト フォントで最後に「:」を付けて表示されます。「:」を付けたくない場合は、customTableItem または tallCustomTableItem を使用してください。
numericTableItem 編集不可の数 intValue
システムのデフォルト ボールド フォントで表示される数。
popupTriggerTableItem ポップアップ トリガ付きのリスト intValue
ptr
intValue は表示されるリスト アイテムのインデックスです。ptr はリストへのポインタです。リストはシステムのデフォルト フォントで表示されます。
tallCustomTableItem アプリケーション定義セル。アイテムの高さはそのアイテムが位置する行の高さと等しくなります。このテーブル アイテム型は Palm OS 4.0 で追加され、4.0 New Feature Set が定義されている場合にのみサポートされます。 ありません。カスタム アイテムは実装されたカスタム描画関数を使って描かれます。TableDrawItemFuncType() を参照してください。必要があれば、intValueptr フィールドにデータを保存することができます。
textTableItem 編集可能なテキスト フィールド fontID
ptr
このアイテム型に対して、テキストをテーブル セルに読み込むための TableLoadDataFuncType() コールバック関数を実装し、フィールドが解放される前にデータを保存するための TableSaveDataFuncType() コールバック関数を実装してください。
textWithNoteTableItem 編集可能なテキスト フィールドとテキストの右側に表示されるノート アイコン fontID
ptr
このアイテム型に対して、テキストをテーブル セルに読み込むための TableLoadDataFuncType() コールバック関数を実装し、フィールドが解放される前にデータを保存するための TableSaveDataFuncType() コールバック関数を実装してください。
timeTableItem 実装されていません
narrowTextTableItem セルの右側に予約された間隔を持つ編集可能なテキスト fontID
ptr
intValue
intValue はセルの右側に予約される間隔のピクセル数です。このアイテム型に対して、セルの右側に予約された間隔を描くための TableLoadDataFuncType() コールバック関数、テキストをテーブル セルに読み込むための TableLoadDataFuncType() コールバック関数、フィールドが解放される前にデータを保存するための TableSaveDataFuncType() コールバック関数を実装してください。

TablePtr Typedef ^TOP^

目的

TabelPtr は、TableType へのポインタを定義します。

Prototype

typedef TableType *TablePtr;

テーブルのポインタを引数としてすべてのテーブル関数に渡します。以下に示す方法で、FrmGetObjectPtr() 関数を用いてテーブルのポインタを取得できます。

tblPtr = FrmGetObjectPtr(frm, 
	FrmGetObjectIndex(frm, tblID));

tblID は、テーブル作成時に割り当てられたリソース ID です。

TableRowAttrType 構造体 ^TOP^

目的

TableRowAttrType 構造体はテーブルの行を定義します。

WARNING!!!
PalmSource 社(訳者注: 現 ACCESS 社)は TableRowAttrType 構造体の下位互換をサポートしません。この構造体のメンバに直接アクセスしてはいけません。そのようなコード将来のバージョンでは機能しないかもしれません。以下の情報はデバッグ目的でのみ使用してください。

Prototype

typedef struct {
	UInt16 id;
	Coord height;
	UInt32 data;
	UInt16 reserved1 : 7;
	UInt16 usable : 1;
	UInt16 reserved2 : 4;
	UInt16 masked : 1;
	UInt16 invalid : 1;
	UInt16 staticHeight : 1;
	UInt16 selectable : 1;
	UInt16 reserved3;
} TableRowAttrType;

コードは TableRowAttrType 構造体を実体のないものとして扱うべきです。以下の説明で指定される関数を使って、各値を調べ、セットしてください。構造体メンバの値を直接変更しようとしてはいけません。

フィールド

  • id
  • height
  • data
    • この行に保存するすべてのアプリケーション特有の値。例えば、予定表と ToDo アプリケーションはこのフィールドを、このテーブルの行に表示されるデータベース レコードの固有 ID を保存するのに、使用しています。TblFindRowData(), TblGetRowData(), それに TblSetRowData() を参照してください。
  • reserved1
    • 将来使用するために予約されています。
  • usable
    • false の場合、行はアプリケーションの現在のインターフェイスの一部と見なされず、スクリーンにも表示されません。スクロールして行がスクリーンの外に出てしますと、usablefalse にセットされます。TblRowUsable()TblSetRowUsable() を参照してください。関数 TblGetLastUsableRow() はスクリーン上の最下段に表示される行を返します。
  • masked
    • true で アイテムの列の maskedtrue の場合、テーブル セルはスクリーンに表示されますが、そのセルが保持している情報をぼかすために陰影(訳者注: 黒っぽくする)が付けられます。TblSetRowMasked()TblRowMasked() を参照してください。
  • reserved2
    • 将来使用するために予約されています。
  • invalid
  • staticHeight
    • 行の高さを変更できない場合、true、そうでない場合、false です。false の場合、このテーブル行にあるテキスト フィールドは必要に合わせて複数行に動的にリサイズされます。TblSetRowStaticHeight() を参照してください。
  • selectable
  • reserved3
    • 将来使用するために予約されています。

互換性

3.5 New Feature Set が存在する場合にのみ、masked フィールドが定義されます。

TableType 構造体 ^TOP^

目的

TableType 構造体はテーブルを表します。

WARNING!!!
PalmSource 社(訳者注: 現 ACCESS 社)は TableType 構造体の下位互換をサポートしません。この構造体のメンバに直接アクセスしてはいけません。そのようなコード将来のバージョンでは機能しないかもしれません。以下の情報はデバッグ目的でのみ使用してください。

Prototype

typedef struct TableType {
	UInt16 id;
	RectangleType bounds;
	TableAttrType attr;
	Int16 numColumns;
	Int16 numRows;
	Int16 currentRow;
	Int16 currentColumn;
	Int16 topRow;
	TableColumnAttrType *columnAttrs;
	TableRowAttrType *rowAttrs;
	TableItemPtr items;
	FieldType currentField;
} TableType;

コードは TableType 構造体を実体のないものとして扱うべきです。以下の説明で指定される関数を使って、各値を調べ、セットしてください。構造体メンバの値を直接変更しようとしてはいけません。

フィールド

  • id
    • テーブル リソースの作成時に指定される ID 値。この ID は tblEnterEvent のイベント データの一部として含まれます。
  • bounds
  • attr
    • テーブルの属性。TableAttrType を参照してください。
  • numColumns
    • テーブル オブジェクトによって表示される列数。テーブル リソースの作成時に列数を指定し、その後、この値を変更することはできません。TblGetNumberOfColumns() でこの値にアクセスします。
  • numRows
    • テーブル オブジェクトの可視行の最大数。テーブル リソース作成時にこの値を指定し、その後、この値を変更することはできません。しかしながら、テーブルに新しい行を追加することで、テーブルの総行数を変更することはでき、さらに、テーブル セルのテキスト フィールドが動的にリサイズされることで、現在の可視行数が変更されることさえありえます。関数 TblGetNumberOfRows() がこのフィールドの値を返します。
  • currentRow
    • 現在選択されているテーブル セルの行インデックス。行は最上段から最下段まで、0 から数えられます。TblGetSelection()TblSetSelection()currentRow の値を調べ、セットします。
  • currentColumn
    • 現在選択されているテーブル セルの列インデックス。列は左から右まで、0 から数えられます。TableAttrTypeselectedtrue の場合、このテーブル セルはハイライトされます。selectedfalse の場合、テーブルがセルを現在選択されているアイテムだと見なしても、そのセルはハイライトされません。TblGetSelection()TblSetSelection()currentColumn の値を調べ、セットします。
  • topRow
    • テーブル オブジェクトの最初の可視行・TblGetTopRow() でこの値にアクセスします。
  • columnAttrs
  • rowAttrs
    • ID、高さ、使用可能かどうか、選択可能かどうか、有効かどうかなどの各行の属性の配列。TableRowAttrType を参照してください。
  • items
    • アイテムの型、フォント ID、整数値、文字列へのポインタなどの各アイテム(各セル)の属性の配列。TableItemType を参照してください。
  • currentField
    • ユーザが現在編集しているフィールド オブジェクト。関数 TblGetCurrentField() がこのアイテムの値を調べます。

テーブル定数 ^TOP^

定数 説明
tableDefaultColumnSpacing 1 使用されません。
tableNoteIndicatorHeight 11 textWithNoteTableItem 型のテーブル アイテムのためのノート指示子の高さをピクセル単位で。
tableNoteIndicatorWidth 7 textWithNoteTableItem 型のテーブル アイテムのためのノート指示子の幅をピクセル単位で。
tableMaxTextItemSize 255 テーブル セルの編集可能なテキスト フィールドの最大長
tblUnusableRow 0xffff テーブルのすべての行が使用可能ではない場合に TblGetLastUsableRow() によって返される値。この値は、バージョン 3.5 以降でのみ使用可能です。

テーブル リソース ^TOP^

テーブル リソース(tTBL)はスクリーン上のテーブルを表します。詳細は、Palm OS User Interface Guidelines を参照してください。

テーブル関数 ^TOP^

TblDrawTable 関数 ^TOP

目的

テーブルを描きます。

宣言されている場所

Table.h

Prototype

void TblDrawTable (
	TableType *tableP
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)

返り値

返り値はありません。

コメント

この関数は、フォームがテーブル オブジェクトを含む場合に、FrmDrawForm() の一部として呼び出されます。

この関数は、描く前にすべての行を有効であるとマークし(訳者注: TableRowAttrTypeinvalidfalse にするという意味)、テーブル全体を描きます。テーブル セルの各型がどのように描かれるのかについての追加情報を説明している TableItemType 構造体を参照してください。

編集可能なテキスト フィールド(textTableItem, textWithNoteTableItem, または narrowTextTableItem)を持つセルを描くとき、この関数はテキストをテーブル セルに読み込むために TableLoadDataFuncType() コールバック関数を使用します。テキスト フィールドは TableLoadDataFuncType(訳者注: 原文では TableLoadDataFunc だが、誤りであろう)が返すテキスト ハンドルを保有しません。つまり、コードはテーブルに読み込んだメモリを解放する責任があるということです。

narrowTextTableItem セル、customTableItem セル、または tallCustomTableItem セルを描くとき、この関数はテキストの後に余分のピクセルを描くため、またはセル全体を描くために TableDrawItemFuncType() コールバック関数を使用します。

カラー対応のシステムでは、テーブルはいつでもフィールド背景色と同じ色で描かれます。

ユーザがプライベート レコードをマスクするためにセキュリティ設定をしている場合、プライベート データベース レコードを保持するテーブル セルは、それらが保持する情報をぼかすために、陰影付き(黒っぽくする)のセルとして描かれます。TblSetRowMasked()TblSetColumnMasked() を適切に呼び出すことで、テーブルにどのセルがマスクされるのかを明確に指示しなくてはなりません。

互換性

カラー対応とプライベート レコードのマスクは Palm OS バージョン 3.5 以降でのみサポートされます。

3.5 よりも前のバージョンでは、この関数は、テーブル セルを描く前に、テーブル セルを消しませんでした。以前のリリースでは、特にテーブル全体が変更される場合には、この関数の呼び出し前に、TblEraseTable() を呼び出すべきと考えられていました。白い背景の上に描く視覚効果がより好ましいと考えられていたかもしれない頃のことです。

参照

TblEraseTable(), TblRedrawTable(), TblSetCustomDrawProcedure()

TblEditing 関数 ^TOP^

目的

テーブルが編集モードかどうかをチェックします。

宣言されている場所

Table.h

Prototype

Boolean TblEditing (
	const TableType *tableP
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)

返り値

テーブルが編集モードであれば true を返します。そうでなければ false を返します。

コメント

ユーザがテキスト アイテムを編集している間、テーブルは編集モードです。より特別な場合としては、編集可能なテーブル セル(textTableItem, textWithNoteTableItem, または narrowTextTableItem)上で tblEnterEvent が発生したとき、または、TblFrabFocus() が呼び出されるとき、テーブルは編集モードです。

ユーザがペンを textWithNoteTableItem 中のノート上にペンを移動させたとき、または、テーブルがフォーカスを解放した(TblReleaseFocus())とき、テーブルは編集モードから抜け出します。

TblEraseTable 関数 ^TOP^

目的

テーブル オブジェクトを消去します。

宣言されている場所

Table.h

Prototype

void TblEraseTable (
	TableType *tableP
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)

返り値

返り値はありません。

コメント

この関数はテーブルの visibleselected 属性を false にセットします。この関数はテーブル行を無効化しません。

参照

TblDrawTable(), TblSetCustomDrawProcedure(), TblRedrawTable()

TblFindRowData 関数 ^TOP^

目的

指定されたデータ値を保持している行数を返します。

宣言されている場所

Table.h

Prototype

Boolean TblFindRowData (
	const TableType *tableP,
	UInt32 data,
	Int16 *rowP
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → data
    • 探す行データ
  • ← rowP
    • 行数へのポインタ(返り値)

返り値

一致するものがあれば、true を返します。そうでない場合は、false を返します。

コメント

この関数は指定されたデータを保持している属性を持つ行を探します。データは TblSetRowData() でセットされたアプリケーション特有のデータのいずれかです。

参照

TblGetRowData(), TblFindRowID(), TableRowAttrType

TblFindRowID 関数 ^TOP^

目的

指定された ID を持つ行の数を返します。

宣言されている場所

Table.h

Prototype

Boolean TblFindRowID (
	const TableType *tableP,
	UInt16 id,
	Int16 *rowP
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → id
    • 探す行 ID
  • ← rowP
    • 行数へのポインタ(返り値)

返り値

一致するものがあれば、true を返します。そうでない場合は、false を返します。

参照

TblSetRowID(), TblFindRowData(), TableRowAttrType

TblGetBounds 関数 ^TOP^

目的

テーブルの領域を返します。

宣言されている場所

Table.h

Prototype

void TblGetBounds (
	const TableType *tableP,
	RectangleType *rP
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • ← rP
    • 返される領域を収めている RectangleType 構造体

返り値

返り値はありません。rP パラメータが領域を保持しています。

参照

TblGetItemBounds()

TblGetColumnSpacing 関数 ^TOP^

目的

指定された列の後の間隔を返します。

宣言されている場所

Table.h

Prototype

Coord TblGetColumnSpacing(
	const TableType *tableP,
	Int16 column
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → column
    • 列番号(0 ベース)

返り値

列の後の間隔をピクセル単位で返します。

この関数は、column パラメータが無効な場合、致命的なエラー メッセージを表示するかもしれません。

参照

TblGetColumnWidth(), TblSetColumnSpacing(), TblSetColumnUsable()

TblGetColumnWidth 関数 ^TOP^

目的

指定された列の幅を返します。

宣言されている場所

Table.h

Prototype

Coord TblGetColumnWidth (
	const TableType *tableP,
	Int16 column
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → column
    • 列番号(0 ベース)

返り値

列の幅をピクセル単位で返します。

この関数は、column パラメータが無効な場合、致命的なエラー メッセージを表示するかもしれません。

参照

TblGetColumnSpacing(), TblSetColumnWidth(), TblSetColumnUsable()

TblGetCurrentField 関数 ^TOP^

目的

ユーザが現在テキスト アイテムを編集している場所である FieldType へのポインタを返します。

宣言されている場所

Table.h

Prototype

FieldPtr TblGetCurrentField(
	const TableType *tableP
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)

返り値

現在選択されているフィールドへのポインタを返します。テーブルが編集モードではない場合、false を返します。

参照

TblGetSelection()

TblGetItemBounds 関数 ^TOP^

目的

テーブルにあるアイテムの領域を返します。

宣言されている場所

Table.h

Prototype

void TblGetItemBounds (
	const TableType *tableP,
	Int16 row,
	Int16 column,
	RectangleType *rP
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • アイテムの行番号(0 ベース)
  • → column
    • アイテムの列番号(0 ベース)
  • ← rP
    • アイテムの領域を保持している構造体へのポインタ

返り値

返り値はありません。rP に領域を保存します。この関数は、row または column パラメータがスクリーン上に表示されていない行または列を指定すると、致命的な例外を引き起こすかもしれません。

TblGetItemFont 関数 ^TOP^

目的

テーブル アイテムを表示するのに使用されるフォントを返します。

宣言されている場所

Table.h

Prototype

FontID TblGetItemFont (
	const TableType *tableP,
	Int16 row,
	Int16 column
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • アイテムの行番号(0 ベース)
  • → column
    • アイテムの列番号(0 ベース)

返り値

rowcolumn で指示されたテーブル アイテムのために使用されているフォントの ID を返します。この関数は、row または column パラメータがスクリーン上に表示されていない行または列を指定した場合、致命的なエラー メッセージを表示するかもしれません。

コメント

この関数は、指定されたテーブル アイテムの fontID フィールドに保存されている値を返します。テーブル アイテムの特定の型のみが、表示されるときに、 fontID フィールドで指定されるフォントを使用します。TableItemType でテーブル アイテムの各型を表示するために使用されるフォントの指定について説明されています。

互換性

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

参照

TblSetItemFont()

TblGetItemInt 関数 ^TOP^

目的

テーブル アイテムに保存されている整数値を返します。

宣言されている場所

Table.h

Prototype

Int16 TblGetItemInt (
	const TableType *tableP,
	Int16 row,
	Int16 column
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • アイテムの行番号(0 ベース)
  • → column
    • アイテムの列番号(0 ベース)

返り値

整数値を返します。この関数は、row または column パラメータがスクリーン上に表示されていない行または列を指定した場合、致命的なエラー メッセージを表示するかもしれません。

コメント

この関数は、指定されたテーブル アイテムの intValue フィールドに保存されている値を返します。テーブル アイテムの特定の型は、intValue フィールドに保存されている値を表示し、他の型は ptr フィールドが指す値を表示します。
詳細は、TableItemType を参照してください。テーブル アイテムに intValue がセットされていない場合、この関数は 0 を返します。

参照

TblSetItemInt(), TblGetItemPtr()

TblGetItemPtr 関数 ^TOP^

目的

テーブル アイテムに保存されているポインタ値を返します。

宣言されている場所

Table.h

Prototype

void *TblGetItemPtr (
	const TableType *tableP,
	Int16 row,
	Int16 column
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • アイテムの行番号(0 ベース)
  • → column
    • アイテムの列番号(0 ベース)

返り値

アイテムのポインタ値を返します。アイテムがポインタ値を持たない場合は、NULL を返します。この関数は、row または column パラメータが無効な場合、致命的なエラー メッセージを表示するかもしれません。

コメント

この関数は、指定されたテーブル アイテムの ptr フィールドに保存されている値を返します。テーブル アイテムの特定の型は、ptr フィールドが指す値を表示し、他の型は intValue フィールドに保存されている値を表示します。詳細は、TableItemType を参照してください。アプリケーションの中には、intValue を使う型に対してさえ、とにかく ptr フィールドの値をセットするものがあるかもしれません。この関数は常に ptr に保存されている値を返します。

互換性

3.5 New Feature Set が存在する場合にのみ、実装されます。それより前のバージョンでは、この関数を以下のコードを使って実装できます。

return tableP->items[row * tableP->numColumns +
  column].ptr; 

参照

TblSetItemPtr()

TblGetLastUsableRow ^TOP^

目的

使用可能(可視)なテーブルにある最後の行を返します。

宣言されている場所

Table.h

Prototype

Int16 TblGetLastUsableRow(
	const TableType *tableP
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)

返り値

行インデックス(0 ベース)を返します。使用可能な行が無い場合、tblUnusableRow を返します。

参照

TblGetRowData(), TblGetRowID()

TblGetNumberOfColumns 関数 ^TOP^

目的

テーブルにある列の数を返します。

宣言されている場所

Table.h

Prototype

Int16 TblGetNumberOfColumns(
	const TableType *tableP
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)

返り値

この関数はテーブルにある列の数を返します。

互換性

4.0 New Feature Set が存在する場合にのみ、実装されます。それより前のバージョンの Palm OS のためのコードでこの関数を使用するには、PalmOSGlue ライブラリにリンクして TblGlueNumberOfColumns を呼び出してください。追加情報は、80 章 「PalmOSGlue ライブラリ」|Palm OS Programmer's API Reference/80 を参照してください。

参照

TblGetTopRow(), TblSetSelection()

TblGetNumberOfRows 関数 ^TOP^

目的

テーブルにある行の数を返します。

宣言されている場所

Table.h

Prototype

Int16 TblGetNumberOfRows(
	const TableType *tableP
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)

返り値

指定されたテーブル中の可視行の最大数を返します。

コメント

例えもし、テーブルに行を追加したり、行を削除しても、この関数で返される値は変化しないことに注意してください。この関数で返される値は、スクリーン上に一度に表示することができる行の最大数を示します。テーブル リソース作成時にこの値はセットされます。

TblGetRowData 関数 ^TOP^

目的

指定された行のデータ値を返します。

宣言されている場所

Table.h

Prototype

UInt32 TblGetRowData (
	const TableType *tableP,
	Int16 row
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 行番号(0 ベース)

返り値

指定された行に対して保存されたアプリケーション特有のデータ(が、もしあれば)を返します。アプリケーション特有の値が無い場合、0 を返します。

この関数は、row パラメータが無効の場合、致命的なエラー メッセージを表示するかもしれません。

参照

TblFindRowData(), TblSetRowData(), TableRowAttrType

TblGetRowHeight 関数 ^TOP^

目的

指定された行の高さを返します。

宣言されている場所

Table.h

Prototype

Coord TblGetRowHeight (
	const TableType *tableP,
	Int16 row
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 行番号(0 ベース)

返り値

ピクセル単位での高さを返します。この関数は、row パラメータが無効の場合、致命的なエラー メッセージを表示するかもしれません。

参照

TblGetItemBounds(), TblSetRowHeight()

TblGetRowID 関数 ^TOP^

目的

指定された行の ID 値を返します。

Prototype

UInt16 TblGetRowID (
	const TableType *tableP,
	Int16 row
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 行番号(0 ベース)

返り値

テーブルにある行の ID 値を返します。

この関数は、row パラメータが無効の場合、致命的なエラー メッセージを表示するかもしれません。

参照

TblGetRowData(), TblSetRowID(), TblFindRowID(), TableRowAttrType

TblGetSelection 関数 ^TOP^

目的

現在選択されているテーブル アイテムの行と列を返します。

宣言されている場所

Table.h

Prototype

Boolean TblGetSelection (
	const TableType *tableP,
	Int16 *rowP,
	Int16 *columnP
)
  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • ← rowP
    • 現在選択されているアイテムの行と列のインデックス(0 ベース)

返り値

アイテムがハイライトされている場合、true を返します。そうでない場合、false を返します。

参照

TblSetRowSelectable()

TblGetTopRow 関数 ^TOP^

目的

テーブルの可視行で最上段にある行を返します。

宣言されている場所

Table.h

Prototype

Int16 TblGetTopRow(
	const TableType *tableP
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)

返り値

この関数は、テーブルにある最上段の可視行を返します。

互換性

4.0 New Feature Set が存在する場合にのみ、実装されます。それより前のバージョンの Palm OS のためのコードでこの関数を使用するには、PalmOSGlue ライブラリにリンクして TblGlueGetToRow を呼び出してください。追加情報は、80 章 「PalmOSGlue ライブラリ」|Palm OS Programmer's API Reference/80 を参照してください。

参照

TblGetNumberOfColumns(), TblSetSelection()

TblGrabFocus 関数 ^TOP^

目的

テーブルを編集モードにします。

宣言されている場所

Table.h

Prototype

void TblGrabFocus (
	TableType *tableP,
	Int16 row,
	Int16 column
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 編集される現在の行(0 ベース)
  • → column
    • 編集される現在の列(0 ベース)

返り値

返り値はありません。この関数は、テーブルがすでにフォーカスされている場合、または、row または column パラメータが無効の場合、致命的なエラー メッセージを表示するかもしれません。

コメント

この関数はテーブルを編集モードにし、渡された行と列にあるアイテムを現在のアイテムにします。この関数に渡される座標には、編集可能なフィールドが存在していなくてはなりません。

この関数を呼び出す前に、FrmSetFocus() を呼び出さなくてはなりません。FrmSetFocus は、以前フォーカスされていたオブジェクトからフォーカスを解放し、フォームの内部構造体をセットします。TblGrabFocus を呼び出した後に、フィールドに挿入ポイントを表示するために FldGrabFocus() を呼び出さなくてはなりません。(フィールドへのポインタを取得するために TblGetCurrentField() を使用できます。)

例えば、以下に示すアドレス帳アプリケーションの関数は、テーブルにある編集可能なフィールドにフォーカスをセットします。

static void EditViewRestoreEditState () {
  Int16      row;
  FormPtr    frm;
  TablePtr   table;
  FieldPtr   fld;
 
  if (CurrentFieldIndex == noFieldIndex) 
    return;
 
  // Find the row that the current field is in.
  table = GetObjectPtr (EditTable);
  if ( ! TblFindRowID (table, 
    CurrentFieldIndex, &row) )
    return;
 
  frm = FrmGetActiveForm ();
  FrmSetFocus (frm, FrmGetObjectIndex (frm, 
    EditTable));
  TblGrabFocus (table, row, editDataColumn);
  
  // Restore the insertion point position.
  fld = TblGetCurrentField (table);
  FldSetInsPtPosition (fld, EditFieldPosition);
  FldGrabFocus (fld);
}

参照

TblReleaseFocus()

TblHandleEvent 関数 ^TOP^

目的

テーブルのイベントをハンドルします。

宣言されている場所

Table.h

Prototype

Boolean TblHandleEvent (
	TableType *tableP,
	EventType *event
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → event
    • ハンドルされるイベント

返り値

イベントがハンドルされれば true を返します。そうでない場合は false を返します。

コメント

テーブルが編集可能なテーブルでない場合、false を返します。

テーブルが編集可能な場合、この関数は、keyDownEvent, fldEnterEvent, menuCmdBarOpenEvent のいずれかを現在選択されているフィールドに渡します。
fldHeightChangeEvent が起きた場合、この関数は指定されたフィールドの高さを、イベントの指示に合わせて、変更します。リサイズされているフィールドがスクリーンより下へスクロールしようとするなら、代わりにテーブルがそのフィールドより上の行をスクリーンより上へスクロールさせます。そうでなければ、テーブルは下方向へスクロールされ、現在の行より下にある行は必要に合わせてスクリーンより下へスクロールされます。

fldHeightChangeEvent は、動的にサイズが変更されるフィールドに対してのみハンドルされるということに注意してください。追加情報は、FieldAttrTypeFldMakeFullyVisible() を参照してください。

penDownEvent が起こると、テーブルはフォーカスが変更されるかどうかをチェックします。変更される場合で、かつ、ユーザがイベント前にテーブルのテキスト フィールドを編集していた場合、テーブルは TableSaveDataFuncType() コールバック関数を使ってテーブル セルのデータを保存し、それから選択された新しい行と列を持つ tblEnterEvent をキューに追加します。

tblEnterEvent が起こると、この関数はペンが持ち上げられるまでペンを追跡します。ペンが接触し始めたアイテムの領域内でペンが持ち上げられる場合、tblSelectEvent がイベント キューに追加されます。そうでない場合、tblExitEvent がイベント キューに追加されます。

TblHasScrollBar 関数 ^TOP^

目的

テーブルの hasScrollBar 属性をセットします。(TableAttrType を参照してください。)

宣言されている場所

Table.h

Prototype

void TblHasScrollBar (
	TableType *tableP,
	Boolean hasScrollBar
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → hasScrollBar
    • 属性をセットする場合は true、セットを解除する場合は false

返り値

返り値はありません。

コメント

アプリケーション自身がテーブルをスクロールさせ、スクロール値を追跡し続けなければなりません。テーブルのためのスクロール バー値をセットする例として、メモ帳アプリケーションの ListViewUpdateScrollers 関数(MemoMain.c)を参照してください。

互換性

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

TblInsertRow 関数 ^TOP^

目的

テーブルの指定された行の前に行を挿入します。

宣言されている場所

Table.h

Prototype

void TblInsertRow (
	TableType *tableP,
	Int16 row
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 挿入する行(0 ベース)

返り値

返り値はありません。

コメント

テーブルの行数は、スクリーン上に表示される行の最大数になります。複数行のテキスト フィールドとは異なり、利用可能なスクリーンよりも大きなテーブルという概念はまったくありません。そのため、この関数はテーブルの行数を増やすことはしません。

テーブルの行の総数とスクリーン上に表示される行の数を追跡し続ける代わりに、テーブルは現在表示されていないすべての行に false の値の usable を付加します。(TableRowAttrType を参照してください。)

新たに挿入された行は、無効で、利用不可で、マスクされていません。新たに挿入された行を表示するには、その行が値を表示することを確認した後に TblSetRowUsable() を呼び出し、それから、テーブルがすでに描かれている場合は TblRedrawTable() を呼び出します。

参照

TblRemoveRow(), TblSetRowUsable(), TblSetRowSelectable()

TblMarkRowInvalid 関数 ^TOP^

目的

行に無効であるというマークを付けます。(訳者注: TableRowAttrTypeinvalidtrue にします。)

宣言されている場所

Table.h

Prototype

void TblMarkRowInvalid (
	TableType *tableP,
	Int16 row
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 行番号(0 ベース)

返り値

返り値はありません。

コメント

この関数を呼び出した後、無効のマークを付けられたすべての行を再描画するために TblRedrawTable() を呼び出してください。

この関数は、row パラメータが無効な場合、致命的なエラー メッセージを表示するかもしれません。

参照

TblRemoveRow(), TblSetRowUsable(), TblSetRowSelectable(), TblMarkTableInvalid(), TblRowInvalid(), TableRowAttrType

TblMarkTableInvalid 関数 ^TOP^

目的

テーブルのすべての行に無効であるというマークを付けます。

宣言されている場所

Table.h

Prototype

void TblMarkTableInvalid (
	TableType *tableP
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)

返り値

返り値はありません。

コメント

この関数を呼び出した後、すべての行を再描画するために TblRedrawTable() を呼び出さなくてはなりません。

参照

TblEraseTable(), TblRedrawTable(), TableRowAttrType

TblRedrawTable 関数 ^TOP^

目的

テーブルの無効であるというマークを付けられた行を再描画します。

宣言されている場所

Table.h

Prototype

void TblRedrawTable (
	TableType *tableP
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)

返り値

返り値はありません。

コメント

この関数はテーブルにある無効な行を描きます。テーブル セルの各型がどのように描かれるのかについての追加情報は、TableItemType 構造体の説明を参照してください。

編集可能なテキスト フィールド(textTableItem, textWithNoteTableItem, それに narrowTextTableItem)を持つセルと描くとき、この関数は、テキストをテーブル セルに読み込むために、TableLoadDataFuncType() コールバック関数を使用します。テキスト フィールドは、TableLoadDataFuncType (訳者注: 原文では TableLoadDataFunc となっていたが誤りと思われる)が返すテキスト ハンドルを保持しません。つまり、コードにテーブルに読み込んだメモリを解放する責任があるということです。

narrowTextTableItem セル、customTableItem セル、それに tallCustomTableItem セルを描くとき、この関数は、テキストの後に余分のピクセルを描くため、またはセル全体を描くために、TableDrawItemFuncType() コールバック関数を使用します。

カラー対応のシステムでは、テーブルはいつもフィールド背景色と同じ色を使って描かれます。

ユーザがプライベート レコードをマスクするためにセキュリティ設定をしている場合、プライベート データベース レコードを保持するテーブル セルは、それらが保持する情報をぼかすために、陰影付き(黒っぽくする)のセルとして描かれます。TblSetRowMasked()TblSetColumnMasked() を適切に呼び出すことで、テーブルにどのセルがマスクされるのかを明確に指示しなくてはなりません。

互換性

カラー対応とプライベート レコードのマスクは Palm OS バージョン 3.5 以降でのみサポートされます。

参照

TblMarkTableInvalid(), TblMarkRowInvalid(), TblDrawTable()

TblReleaseFocus ^TOP^

目的

フォーカスを解放します。

宣言されている場所

Table.h

Prototype

void TblReleaseFocus (
	TableType *tableP
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)

返り値

返り値はありません。

コメント

通常、このセルを直接呼び出すことはありません。その代わり、noFocus のオブジェクト インデックスに対する FrmSetFocus() の呼び出しが、フォームにテーブルがフォーカスを失ったことを通知します。フォーム コードは、通知に対応して、TblReleaseFocus を呼び出します。

現在のアイテムがテキスト フィールドである場合、現在選択されているフィールドにあるテキストを保存するために TableSaveDataFuncType() コールバック関数が呼び出され、編集用に割り当てられていたメモリが解放され、挿入ポイントが消されます。

フォーカスが編集可能なテキスト フィールドにあり、かつ、フィールドがカスタム描画関数(TableDrawItemFuncType())を使用している場合、FldReleseFocus() を呼び出さなくてはならないかもしれないというこのにも注意してください。

参照

TblGrabFocus()

TblRemoveRow 関数 ^TOP^

目的

指定された行をテーブルから削除します。

宣言されている場所

Table.h

Prototype

void TblRemoveRow (
	TableType *tableP,
	Int16 row
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 削除する行(0 ベース)

返り値

返り値はありません。この関数は、指定された行が無効な場合、致命的なエラー メッセージを表示するかもしれません。

コメント

テーブルにある行の数は減少しません。その代わり、この行は現在の位置からテーブルの最後に移動させられ、使用不可のマークを付けられます。そのため、テーブルが再描画されたときに、この行は表示されません。

この関数はディスプレイを視覚的に更新しません。ディスプレイを更新するために、TblRedrawTable() を呼び出してください。

参照

TblInsertRow(), TblSetRowUsable(), TblSetRowSelectable(), TblMarkRowInvalid()

TblRowInvalid 関数 ^TOP^

目的

行が無効かどうかを返します。

宣言されている場所

Table.h

Prototype

Boolean TblRowInvalid (
	const TableType *tableP,
	Int16 row
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 行番号(0 ベース)

返り値

行が無効であれば true を、有効であれば false を返します。この関数は、row パラメータが無効な場合、致命的なエラー メッセージを表示するかもしれません。

コメント

無効な行は再描画される必要があります。再描画するためには TblRedrawTable() を使用してください。

TblRowMasked 関数 ^TOP^

目的

行がマスクされているかどうかを返します。

宣言されている場所

Table.h

Prototype

Boolean TblRowMasked (
	const TableType *tableP,
	Int16 row
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 行番号(0 ベース)

返り値

行がマスクされている場合は true を、マスクされていない場合は false を返します。

コメント

行がプライベート データベース レコードを保持していて、かつ、ユーザがプライベート レコードのディスプレイ設定を「マスクする」にセットしている場合、コードがその行にマスクをかけるべきです。マスクされたセルは陰影を付けて(黒っぽく)表示されます。

テーブル セルは、その行と列の両方がマスクされない限りはマスクされないことに注意してください。これは、その行にあるプライベート情報ではないアイテムを可視(マスクされていない状態)にするためです。例えば、予定表アプリケーションはプライベートなアポイントメント(約束)の時間を表示しますが、その内容は表示しません。

互換性

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

参照

TblSetRowMasked(), TblSetColumnMasked(), TableRowAttrType, SecSelectViewStatus()

TblRowSelectable 関数 ^TOP^

目的

指定された行が選択可能かどうかを返します。

宣言されている場所

Table.h

Prototype

Boolean TblRowSelectable(
	const TableType *tableP,
	Int16 row
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 行番号(0 ベース)

返り値

行が選択可能な場合は true を、そうでない場合は false を返します。

コメント

選択可能ではない行は、ペンが接触しても、ハイライトされません。

参照

TableRowAttrType

TblRowUsable 関数 ^TOP^

目的

指定された行が使用可能かどうかを返します。

宣言されている場所

Table.h

Prototype

Boolean TblRowUsable (
	const TableType *tableP,
	Int16 row
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 行番号(0 ベース)

返り値

行が使用可能な場合は true を、そうでない場合は false を返します。

この関数は、row パラメータが無効の場合、致命的なエラー メッセージを表示するかもしれません。

コメント

使用可能ではない行は表示されません。

参照

TblRowSelectable(), TblGetLastUsableRow(), TblSetRowUsable()

TblSelectItem 関数 ^TOP^

目的

指定されたアイテムを選択(ハイライト)します。すでに選択されたアイテムがある場合、そのアイテムはハイライトされなくなります。

宣言されている場所

Table.h

Prototype

void TblSelectItem (
	TableType *tableP,
	Int16 row,
	Int16 column
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 行番号(0 ベース)
  • → column
    • 選択されたアイテムの列番号(0 ベース)

返り値

返り値はありません。

この関数は、column または row パラメータがスクリーン上にないアイテムを指す場合、致命的なエラー メッセージを表示するかもしれません。

コメント

row がマスクされたプライベート データベース レコードを保持している場合、そのアイテムは選択されないままになります。

この関数は行全体をハイライトすることはできません。ハイライトできるのは行の 1 つのセルのみであり、いつも、以前に選択されていたテーブル セルのハイライトを取り消します。行全体を選択したい場合、単一列のテーブルを作成するか、自身で選択を行うコードを書いてください。

選択されたアイテムが複数行のテキスト フィールド、または、非標準の高さのテキスト フィールドである場合、この関数は上から 11 ピクセルのみをハイライトします。より大きな範囲をハイライトしたい場合、自身で選択を行うコードを書かなくてはなりません。

参照

TblRowSelectable(), TblGetItemBounds(), TblGetItemInt()

TblSetBounds 関数 ^TOP^

目的

テーブルの領域をセットします。

宣言されている場所

Table.h

Prototype

void TblSetBounds (
	TableType *tableP,
	const RectangleType *rP
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → rP
    • テーブルの領域を指定する RectangleType 構造体へのポインタ

返り値

返り値はありません。

互換性

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

TblSetColumnEditIndicator 関数 ^TOP^

目的

テーブルが編集モードに入るとき列をハイライトするかどうかを制御する列属性をセットします。

宣言されている場所

Table.h

Prototype

void TblSetColumnEditIndicator(
	TableType *tableP,
	Int16 column,
	Boolean editIndicator
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → column
    • 列番号(0 ベース)
  • → editIndicator
    • ハイライトするには true、ハイライトしないなら false

返り値

返り値はありません。

コメント

編集指示子(原文: edit indicator)は、列が選択されたとき、その列にあるアイテムをハイライトするかどうかを制御します。デフォルトでは、テキスト フィールド アイテムの editIndicator 値は false で、他のすべてのテーブル アイテム型の editIndicator 値は true です。

テーブルが描かれるとき、左端から連続する、編集指示子がセットされたアイテムのみがハイライトされて描かれます。つまり、列 1, 2 それに 4 の編集指示子が true で、列 3 の編集指示子が false の場合、列 1, 2 にあるアイテムのみが選択されたときにハイライトされて描かれます。列 4 はハイライトされずに描かれます。

互換性

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

参照

TableColumnAttrType

TblSetColumnMasked 関数 ^TOP^

目的

列にマスクをかけるかどうかをセットします。

宣言されている場所

Table.h

Prototype

void TblSetColumnMasked (
	TableType *tableP,
	Int16 column,
	Boolean masked
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → column
    • 列番号(0 ベース)
  • → masked
    • 列にマスクをかけるには true、そうでないなら false

返り値

返り値はありません。

コメント

マスクされたセルは陰影付きで(黒っぽく)表示されます。列がプライベート データベース レコードからの情報を保持していて、かつ、ユーザがプライベート レコードのディスプレイ設定を「マスクする」にセットしている場合、列の内容を隠すべきであるなら、列にマスクをセットすべきです。

テーブル セルは、その行と列の両方がマスクされない限り、マスクされません。これは、その行にあるプライベート情報ではないアイテムを可視(マスクされていない状態)にするためです。例えば、予定表アプリケーションはプライベートなアポイントメント(約束)の時間を表示しますが、その内容は表示しません。

列の数は一定であるため、最初にテーブルをセットアップするときに、各列に対してこの関数を一度だけ呼び出す必要があります。行のマスク属性は、テーブル セルの内容が実際に陰影付きで表示されるのかどうかを決定します。

互換性

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

参照

TblRowMasked(), TblSetRowMasked(), TableColumnAttrType, SecSelectViewStatus()

TblSetColumnSpacing 関数 ^TOP^

目的

指定された column の後の間隔をセットします。

宣言されている場所

Table.h

Prototype

void TblSetColumnSpacing (
	TableType *tableP,
	Int16 column,
	Coord spacing
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → column
    • 列番号(0 ベース)
  • → spacing
    • 列の後の間隔をピクセル単位で指定します。

返り値

返り値はありません。

この関数は、column パラメータが無効である場合、致命的なエラー メッセージを表示するかもしれません。

参照

TblSetColumnUsable(), TableColumnAttrType

TblSetColumnUsable 関数 ^TOP^

目的

テーブルにある列を使用可能、または、使用不可にセットします。

宣言されている場所

Table.h

Prototype

void TblSetColumnUsable (
	TableType *tableP,
	Int16 column,
	Boolean usable
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → column
    • 列番号(0 ベース)
  • → usable
    • 使用可能であれば true、使用不可であれば false

返り値

返り値はありません。

この関数は、column パラメータが無効である場合、致命的なエラー メッセージを表示するかもしれません。

コメント

使用不可の列は表示されません。

参照

TblMarkRowInvalid(), TableColumnAttrType

TblSetColumnWidth 関数 ^TOP^

目的

指定された列の幅をセットします。

宣言されている場所

Table.h

Prototype

void TblSetColumnWidth (
	TableType *tableP,
	Int16 column,
	Coord width
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → column
    • 列番号(0 ベース)
  • → width
    • 列の幅(ピクセル単位)

返り値

返り値はありません。

この関数は、column パラメータが無効である場合、致命的なエラー メッセージを表示するかもしれません。

参照

TblGetColumnWidth(), TableColumnAttrType

TblSetCustomDrawProcedure 関数 ^TOP^

目的

指定された列のためのカスタム描画コールバック プロシージャをセットします。

宣言されている場所

Table.h

Prototype

void TblSetCustomDrawProcedure (
	TableType *tableP,
	Int16 column,
	TableDrawItemFuncPtr drawCallback
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → column
    • 列番号(0 ベース)
  • → drawCallback
    • コールバック関数

返り値

返り値はありません。

コメント

カスタム描画コールバック関数は、TableItemStyleTypecustomTableItem または tallCustomTableItem であるテーブル アイテムを描くために使用されます。追加情報は、TableItemType での説明を参照してください。

この関数は、column パラメータが無効である場合、致命的なエラー メッセージを表示するかもしれません。

参照

TableDrawItemFuncType(), TblDrawTable(), TableColumnAttrType

TblSetItemFont 関数 ^TOP^

目的

テーブル アイテムを表示するために使用されるフォントをセットします。

宣言されている場所

Table.h

Prototype

void TblSetItemFont (
	TableType *tableP,
	Int16 row,
	Int16 column,
	FontID fontID
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • アイテムの行番号(0 ベース)
  • → column
    • アイテムの列番号(0 ベース)
  • → fontID
    • 使用されるフォントの ID

返り値

返り値はありません。

コメント

この関数は、指定されたテーブル アイテムの fontID フィールドに保存される値をセットします。テーブル アイテムのある特定の型のみが、表示されるときに、fontID フィールドで指定されたフォントを使用します。TableItemType で、テーブル アイテムの各型を表示するために使用されるフォントについて、説明しています。

この関数は、row または column パラメータがスクリーン上に表示されない行または列を指定している場合、致命的なエラー メッセージを表示するかもしれません。

互換性

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

参照

TblGetItemFont()

TblSetItemInt 関数 ^TOP^

目的

指定されたアイテムの整数値をセットします。

宣言されている場所

Table.h

Prototype

void TblSetItemInt (
	TableType *tableP,
	Int16 row,
	Int16 column,
	Int16 value
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • アイテムの行番号(0 ベース)
  • → column
    • アイテムの列番号(0 ベース)
  • → value
    • 何バイトかの値(整数)

返り値

返り値はありません。

この関数は、row または column パラメータが無効である場合、致命的なエラー メッセージを表示するかもしれません。

コメント

通常、最初にテーブルをセットアップして初期化するときに、各テーブル セルの値をセットするためにこの関数を使用します。

この関数は、指定されたテーブル アイテムの intValue フィールドに保存される値をセットします。テーブル アイテムのある特定の型は、intValue に保存された値を表示し、他の型は ptr フィールドによって指される値を表示します。詳細は、TableItemType での説明を参照してください。ptr の値を表示するアイテムの intValue をセットしても、エラーにはなりません。アプリケーションは intValue フィールドにどんな値でも保存することができます。しかしながら、そのようなことをしても、そのようなテーブル セル(訳者注 : ptr を表示するセルということか?)によって表示される値に対して、無意味であるということに気づいてください。

参照

TblGetItemInt(), TblSetItemPtr()

TblSetItemPtr 関数 ^TOP^

目的

アイテムに指定されたポインタの値をセットします。

宣言されている場所

Table.h

Prototype

void TblSetItemPtr (
	TableType *tableP,
	Int16 row,
	Int16 column,
	void *value
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • アイテムの行番号(0 ベース)
  • → column
    • アイテムの列番号(0 ベース)
  • → value
    • テーブル アイテムに表示するためのデータへのポインタ

返り値

返り値はありません。

この関数は、row または column パラメータが無効である場合、致命的なエラー メッセージを表示するかもしれません。

コメント

この関数は、指定されたテーブル アイテムの ptr フィールドに保存される値をセットします。テーブル アイテムのある特定の型は、ptr よって指される値を表示し、他の型は intValue フィールドに保存されている値を表示します。詳細は、TableItemType での説明を参照してください。intValue の値を表示するアイテムの ptr をセットしても、エラーにはなりません。アプリケーションは ptr フィールドにどんな値でも保存することができます。しかしながら、そのようなことをしても、そのようなテーブル セル(訳者注 : intValue を表示するセルということか?)によって表示される値に対して、無意味であるということに気づいてください。

参照

TblGetItemPtr(), TblSetItemInt()

TblSetItemStyle 関数 ^TOP^

目的

アイテムの表示するための型(例えば、テキスト、数値、日付など)をセットします。

宣言されている場所

Table.h

Prototype

void TblSetItemStyle (
	TableType *tableP,
	Int16 row,
	Int16 column,
	TableItemStyleType type
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • アイテムの行番号(0 ベース)
  • → column
    • アイテムの列番号(0 ベース)
  • → type
    • 編集可能なテキスト フィールドやチェック ボックスといったアイテムの型。取り得る値については TableItemType を参照してください。

返り値

返り値はありません。

この関数は、row または column パラメータが無効である場合、致命的なエラー メッセージを表示するかもしれません。

コメント

通常、最初にテーブルをセットアップして初期化するときに、この関数を使用します。アイテムの型を動的に変更するわけではありません。

この関数に続いて、テーブル アイテムによって表示される値をセットするために TblSetItemInt() または TblSetItemPtr() のどちらかを呼び出します。指定したテーブル アイテムの型次第で、これらの関数のどちらかを呼び出すべきです。詳細については、TableItemType にある表を参照してください。あるテーブル列は常に同じ型のアイテムを保持しているということにも注意してください。例えば、以下のようなコードを使ってテーブルを初期化するかもしれません。

for (row = 0; row < rowsInTable; row++) {
  TblSetItemStyle (table, row, completedColumn, 
    checkboxTableItem);
  TblSetItemStyle (table, row, priorityColumn, 
    numericTableItem);
  TblSetItemStyle (table, row, descColumn, 
    textTableItem);
  TblSetItemStyle (table, row, dueDateColumn, 
    customTableItem);
  TblSetItemStyle (table, row, categoryColumn,
    customTableItem);
}

参照

TblSetCustomDrawProcedure()

TblSetLoadDataProcedure 関数 ^TOP^

目的

指定された列に対して、データを読み込むためにコールバック プロシージャをセットします。

宣言されている場所

Table.h

Prototype

void TblSetLoadDataProcedure (
	TableType *tableP,
	Int16 column,
	TableLoadDataFuncPtr loadDataCallback
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → column
    • アイテムの列番号(0 ベース)
  • → loadDataCallback

返り値

返り値はありません。

コメント

コールバック プロシージャは、テーブル アイテムのデータ値を読み込むために使用されます。コールバック関数を書くにあたっての追加情報は、TableLoadDataFuncType() を参照してください。

通常、最初にテーブルをセットアップして初期化するときに、この関数を使用します。

参照

TblSetCustomDrawProcedure()

TblSetRowData 関数 ^TOP^

目的

指定された行のデータ値をセットします。データ値は、アプリケーション特有の値を保持するための場所です。

宣言されている場所

Table.h

Prototype

void TblSetRowData (
	TableType *tableP,
	Int16 row,
	UInt32 data
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 行番号(0 ベース)
  • → data
    • この行に保存するアプリケーション特有の値。例えば、予定表と ToDo アプリケーションは、このフィールドをこの行によって表示されるデータベース レコードの固有 ID を保存するために使用しています。

返り値

返り値はありません。

この関数は、row パラメータが無効である場合、致命的なエラー メッセージを表示するかもしれません。

参照

TblGetRowData(), TblFindRowData()

TblSetRowHeight 関数 ^TOP^

目的

指定された行の高さをセットします。

宣言されている場所

Table.h

Prototype

void TblSetRowHeight (
	TableType *tableP,
	Int16 row,
	Coord height
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 行番号(0 ベース)
  • → height
    • 新しい高さをピクセル単位で

返り値

返り値はありません。

この関数は、row パラメータが無効である場合、致命的なエラー メッセージを表示するかもしれません。

参照

TblGetRowHeight(), TblSetRowStaticHeight()

TblSetRowID 関数 ^TOP^

目的

指定された行の ID 値をセットします。

宣言されている場所

Table.h

Prototype

void TblSetRowID (
	TableType *tableP,
	Int16 row,
	UInt16 id
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 行番号(0 ベース)
  • → id
    • 行を特定するための ID

返り値

返り値はありません。

この関数は、row パラメータが無効である場合、致命的なエラー メッセージを表示するかもしれません。

参照

TblGetRowID(), TblFindRowID(), TableRowAttrType

TblSetRowMasked 関数 ^TOP^

目的

テーブルにある行にマスクをかける、または、マスクを解除します。

宣言されている場所

Table.h

Prototype

void TblSetRowMasked (
	TableType *tableP,
	Int16 row,
	Boolean masked
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 行番号(0 ベース)
  • → masked
    • 行にマスクをかけるには true、そうでない場合は false

返り値

返り値はありません。

コメント

マスクされたセルは陰影付きで(黒っぽく)表示されます。テーブルを描画または再描画する前にこの関数を呼び出すべきです。テーブル行がプライベート データベース レコードを保持していて、かつ、ユーザがプライベート レコードのディスプレイ設定を「マスクする」にセットしている場合、行に対してこの関数を呼び出すべきです。以下に例を挙げます。

UInt16 attr;
privateRecordViewEnum privateRecordStatus; 
Boolean masked;
 
privateRecordStatus = (privateRecordViewEnum)
  PrefGetPreference(prefShowPrivateRecords);
....
DmRecordInfo (ToDoDB, recordNum, &attr, NULL, 
  NULL);
masked = ((attr & dmRecAttrSecret) && 
  (privateRecordStatus == maskPrivateRecords));
TblSetRowMasked(tableP, row, masked);

テーブル セルは、その行と列の両方がマスクされない限り、マスクされないことに注意してください。これは、その行にあるプライベート情報ではないアイテムを可視(マスクされていない状態)にするためです。例えば、予定表アプリケーションはプライベートなアポイントメント(約束)の時間を表示しますが、その内容は表示しません。

互換性

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

参照

TblRowMasked(), TblSetColumnMasked(), TableRowAttrType, SecSelectViewStatus()

TblSetRowSelectable 関数 ^TOP^

目的

テーブルにある行を選択可能または選択不可にします。

宣言されている場所

Table.h

Prototype

void TblSetRowSelectable (
	TableType *tableP,
	Int16 row,
	Boolean selectable
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 行番号(0 ベース)
  • → selectable
    • true または false

返り値

返り値はありません。

この関数は、row パラメータが無効である場合、致命的なエラー メッセージを表示するかもしれません。

コメント

選択不可の行は、ペンが接触しても、ハイライトされません。

参照

TblRowSelectable(), TblSetRowUsable(), TableRowAttrType

TblSetRowStaticHeight 関数 ^TOP^

目的

行の静的な高さ属性をセットします。

宣言されている場所

Table.h

Prototype

void TblSetRowStaticHeight (
	TableType *tableP,
	Int16 row,
	Boolean staticHeight
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 行番号(0 ベース)
  • → staticHeight
    • 静的な高さをセットするなら true、セットしない(解除する)場合は false

返り値

返り値はありません。

この関数は、row パラメータが無効である場合、致命的なエラー メッセージを表示するかもしれません。

コメント

静的な高さ属性がセットされた行は、テキスト アイテムにテキストが追加されても、テキストが削除されても、行の高さを拡張したり、縮めたりしません。

互換性

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

TblSetRowUsable 関数 ^TOP^

目的

テーブルにある行を使用可能または使用不可にします。

宣言されている場所

Table.h

Prototype

void TblSetRowUsable (
	TableType *tableP,
	Int16 row,
	Boolean usable
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 行番号(0 ベース)
  • → usable
    • true または false

返り値

返り値はありません。

この関数は、row パラメータが無効である場合、致命的なエラー メッセージを表示するかもしれません。

参照

TblRowUsable(), TblSetRowSelectable()

TblSetSaveDataProcedure 関数 ^TOP^

目的

指定された列のデータを保存するためのコールバック プロシージャをセットします。

宣言されている場所

Table.h

Prototype

void TblSetSaveDataProcedure (
	TableType *tableP,
	Int16 column,
	TableSaveDataFuncPtr saveDataCallback
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → column
    • 列番号(0 ベース)
  • → saveDataCallback

返り値

返り値はありません。

この関数は、column パラメータが無効である場合、致命的なエラー メッセージを表示するかもしれません。

コメント

テーブル オブジェクトがテキスト オブジェクトのデータを保存する必要があると決定したとき、コールバック プロシージャが呼び出されます。

参照

TblSetCustomDrawProcedure()

TblSetSelection 関数 ^TOP^

目的

テーブル アイテムをセットします。

宣言されている場所

Table.h

Prototype

void TblSetSelection (
	TableType *tableP,
	Int16 row,
	Int16 column
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 行番号(0 ベース)
  • → column
    • 列番号(0 ベース)

返り値

返り値はありません。

コメント

この関数は、rowcolumn 引数で指定されたテーブル アイテムを現在の選択として、セットします。この関数の呼び出し後に、UI を更新するために TblDrawTable() が呼び出されなくてはなりません。

互換性

4.0 New Feature Set が存在する場合にのみ、実装されます。それより前のバージョンの Palm OS のためのコードでこの関数を使用するには、PalmOSGlue ライブラリにリンクして TblGlueSetSelection を呼び出してください。追加情報は、80 章 「PalmOSGlue ライブラリ」|Palm OS Programmer's API Reference/80 を参照してください。

参照

TblGetNumberOfColumns(), TblGetTopRow()

TblUnhighlightSelection 関数 ^TOP^

目的

テーブルの現在選択されているアイテムのハイライトを消します。

宣言されている場所

Table.h

Prototype

void TblUnhighlightSelection (
	TableType *tableP
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)

返り値

返り値はありません。

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

TableDrawItemFuncType 関数 ^TOP^

目的

カスタム テーブル アイテムを描きます。

宣言されている場所

Table.h

Prototype

void TableDrawItemFuncType (
	void *tableP,
	Int16 row,
	Int16 column,
	RectangleType *bounds
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 描画するアイテムの行番号(0 ベース)
  • → column
    • 描画するアイテムの列番号(0 ベース)
  • → bounds
    • アイテムが描画されるスクリーンの領域

返り値

返り値はありません。

コメント

この関数は TblDrawTable()TblRedrawTable() の中で呼び出されます。

テーブルが customTableItem または tallCustomTableItem (のアイテム全体を描くために)または narrowTextTableItem (テキストとテーブル セルの右端の間の間隔の中で要求されたものを描くため)型のアイテムを保持しているとき、カスタム描画関数を実装します。

テーブルにある情報のいずれかの型を組み込むために、カスタム描画関数を実装するかもしれません。事前に定義されているアイテムが描かれることを好まないのであれば、代わりに、customTableItem または tallCustomTableItem を使用することを好むかもしれません。例えば、テーブルにある日付を組み込みたいが、年を月や日と同様に表示したいのなら、カスタム描画関数を実装すべきです。

参照

TblSetCustomDrawProcedure(), TableItemType

TableLoadDataFuncType 関数 ^TOP^

目的

列にデータを読み込みます。

宣言されている場所

Table.h

Prototype

Err TableLoadDataFuncType (
	void *tableP,
	Int16 row,
	Int16 column,
	Boolean editable,
	MemHandle *dataH,
	Int16 *dataOffset,
	Int16 *dataSize,
	FieldPtr fld
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 読み込むアイテムの行番号(0 ベース)
  • → column
    • 読み込むアイテムの列番号(0 ベース)
  • → editable
    • true の場合、テーブルは現在編集されている最中です。false の場合、テーブルは再描画されている最中ですが、必ずしも編集されている最中ではありません。
  • ← dataH
    • nullで終了している文字列を保持しているブロックのロックされていないハンドル
  • ← dataOffset
    • ブロックの開始点からテキスト文字列の開始点までのオフセット
  • ← dataSize
    • テキスト文字列に割り当てられたサイズ。文字列の長さではありません。
  • → fld
    • このテーブル セルにあるテキスト フィールドへのポインタ

返り値

成功時には 0 を、失敗時にはエラーを返します。

コメント

この関数は 2 つのケースで呼び出されます: テキスト フィールド アイテムが描画されている最中(TblDrawTable() または TblRedrawTable())と、テキスト フィールド アイテムが選択されている最中(TblHandleEvent()tblEnterEvent をハンドルしている最中)です。アイテムが選択されようとしているときにこの関数がエラー(0 以外の値のいずれか)を返す場合、アイテムは選択されず、テーブルの editing 属性は false にセットされます。

FldSetText() に渡されるものと同じ dataH, dataOffset, それに dataSize が返されます。すなわち、テーブル セルのテキスト フィールドがデータベース レコードにあるテキストを指すようにするためにこの関数を使用でき、それにより、テキスト フィールド ルーチンを使って文字列を直接編集することができます。そうするために、データベース レコードへのハンドルを dataH に収めて、レコードの開始点から文字列の開始点までのオフセットを dataOffset に収めて、さらに文字列に割り当てられたサイズを dataSize に収めて返します。

この関数で返されるハンドルは、メモリ チャンクの中の dataOffset バイトから始まる null で終了する文字列を保持していると仮定されます。文字列の長さは、0 から dataSize バイトまでの間になります。

FldSetText と同様に、コードには dataH パラメータに関連するメモリを解放する責任があります。TableSaveDataFuncType() 関数の呼び出しの中でそうする(訳者注: メモリを解放する)ことができますが、それはすでに編集されたセルに対して呼び出した場合のみです。編集不可のテキスト セル、または、編集可能だが一度も選択されなかったテキスト セルの場合は、フォームがクローズされるときにメモリを解放してください。

この関数に渡される fld ポインタは、テーブル コードによってデフォルト値を持つようすでに初期化されています。フィールドの属性を上書きしたい場合(例えば、アンダーライン モードを変更したい場合)は、この関数の中でそうすることができます。

参照

TblDrawTable(), TblHandleEvent(), TableLoadDataFuncType()

TableSaveDataFuncType 関数 ^TOP^

目的

テキスト フィールドに関連するデータを保存します。

宣言されている場所

Table.h

Prototype

Boolean TableSaveDataFuncType (
	void *tableP,
	Int16 row,
	Int16 column
)

パラメータ

  • → tableP
    • テーブル オブジェクトへのポインタ。(TableType を参照してください。)
  • → row
    • 保存する(訳者注: 原文では to load となっていたが、誤りと思われる)アイテムの行番号(0 ベース)
  • → column
    • 保存する(同上)アイテムの列番号(0 ベース)

返り値

テーブルが再描画されるべきなら true を、テーブルを再描画する必要がなければ false を返します。

コメント

テーブル セルにある現在選択されているテキスト フィールドに関連付けられたメモリを解放する前に、この関数が呼び出されます。このメモリが解放される前に特別なクリーンアップをする必要がある場合に、この関数を実装します。

この関数は、現在選択されている編集可能なテキスト フィールドがフォーカスを解放しようとしているときにのみ、呼び出されます。このフィールドへのポインタを調べるために、TblGetCurrentField() を使用できます。それ(訳者注: TblGetCurrentField)が返すのは現在選択されているフィールドのみで、テーブルにある他のすべてのフィールドは返されません。

テーブル マネージャがすでにテキスト フィールドからメモリ ハンドルの関連付けを解いてしまっているために、データに関連付けられたメモリは、フィールドが解放されるときに、解放されないということに注意してください。テーブル マネージャはさらに FldCompactText() をも呼び出します。

ダイナミック ヒープにある文字列を指す TableLoadDataFuncType() コールバック関数の中で返されるテキスト ハンドルの場合、そのハンドルを保存または解放するためにこのコールバック関数を実装すべきです。ハンドルを取得するために、FldGetTextHandle() を使用できます。

この関数が true を返す場合、TblRedrawTable() が呼び出されます。返る前に、再描画する必要があるすべてのテーブル行に無効のマークを付けるべきです。

参照

TblSetSaveDataProcedure()

← 19 章に戻る ↑トップへ 21 章に進む →