Syntax
BOOL cpxGetBBSDetailItem( int idxItem, TExtInfoDetail& ExtInfoDetail );
Parameters
- idxItem
[in] 項目インデックス
最初の項目は 0 です。- ExtDetailItem
[out] フォルダプロパティ[詳細]情報
以下の各項目を設定します。
idItemKind 項目種別
指定できる値は以下の通りです。
IK_STRING // 文字列 IK_TEXT // テキスト入力 IK_TEXTB // テキスト入力(ボタン付き/直接入力可) IK_TEXTR // テキスト入力(リードオンリー) IK_TEXTRB // テキスト入力(ボタン付き/直接入力不可) IK_PW // パスワード入力 IK_CHECKBOX // チェックボックス IK_RADIO // ラジオボタン IK_FILER // ファイル選択 (参照) IK_FILEW // ファイル選択 (作成) IK_COLOR // 色選択 IK_INDENTR // 右にインデント IK_INDENTL // インデントを戻す szItemKey 項目キー (128byte未満)
項目を識別するキーを半角英数字で指定します。
通常は OPT_**** という名前にします。
項目種別が IK_RADIO の場合には、同じグループのキーの後ろに'='に続けて選択肢番号を指定します。
OPT_R01=1
OPT_R01=2
OPT_R02=1
OPT_R02=2
この例ではOPT_R01=1とOPT_R01=2、OPT_R02=1とOPT_R02=2がそれぞれグループとなります。
項目種別が IK_STRING、IK_INDENTR、IK_INDENTL の場合は指定する必要はありません。szTitle 項目名 (304byte未満)
項目に表示する文字列を指定します。
項目種別が IK_INDENTR、IK_INDENTL の場合は指定する必要はありません。szDefValue 初期値 (4096byte未満)
項目の初期値を指定します。
項目種別が IK_CHECKBOX、IK_RADIO の場合に選択状態にするには '1' とします。
項目種別が IK_STRING、IK_INDENTR、IK_INDENTL の場合は指定する必要はありません。
Return Value
値を設定した場合はTRUEを戻し、設定する項目がない場合にはFALSEを戻します。
Remarks
idxItemで指定された位置の項目についてTExtInfoDetailの各メンバに値を設定します。
詳細設定項目がない場合にはFALSEを戻すのみです。
ICpxの他のメソッドとは独立したインスタンスでコールされます。
Example
C++
typedef struct { int idItemKind; // 項目種別 char *pszItemKey; // キー char *pszString; // 表示文字列 char *pszDefValue; // 初期値 } tDetail; static tDetail Detail[] = { IK_STRING, "", "文字列A", "", IK_TEXT, "OPT_T01", "テキスト入力", "初期値1", IK_TEXTR, "OPT_T02", "テキスト", "", IK_TEXTB, "OPT_T03", "テキスト入力", "", IK_PW, "OPT_PW", "パスワード", "", IK_CHECKBOX, "OPT_C01", "チェックボックス", "1", IK_INDENTR, "", "", "", IK_STRING, "", "文字列B", "", IK_RADIO, "OPT_R01=1", "選択肢1", "", IK_RADIO, "OPT_R01=2", "選択肢2", "1", IK_RADIO, "OPT_R01=3", "選択肢3", "", IK_INDENTL, "", "", "", IK_FILER, "OPT_F01", "ファイル選択(参照)", "", IK_FILEW, "OPT_F02", "ファイル選択(作成)", "", IK_COLOR, "OPT_COLOR", "色", "" }; BOOL __stdcall MyCpx::cpxGetBBSDetailItem (int idxItem, TExtInfoDetail& ExtInfoDetail) { int cItem = sizeof (Detail) / sizeof (tDetail); if (idxItem < cItem) { ExtInfoDetail.idItemKind = Detail[idxItem].idItemKind; strcpy (ExtInfoDetail.szItemKey, Detail[idxItem].pszItemKey); strcpy (ExtInfoDetail.szTitle, Detail[idxItem].pszString); strcpy (ExtInfoDetail.szDefValue, Detail[idxItem].pszDefValue); return TRUE; } return FALSE; }Delphi
type TDetail = record idItemKind: Integer; // 項目種別 pszItemKey: PChar; // キー pszString: PChar; // 表示文字列 pszDefValue: PChar; // 初期値 (IK_CHECKBOX/IK_RADIOの選択は"1") end; const Detail: array[0..14] of TDetail = ( (idItemKind:IK_STRING; pszItemKey:''; pszString:'文字列'; pszDefValue:''), (idItemKind:IK_TEXT; pszItemKey:'OPT_T01'; pszString:'テキスト入力'; pszDefValue:'初期値1'), (idItemKind:IK_TEXTR; pszItemKey:'OPT_T02'; pszString:'テキスト'; pszDefValue:''), (idItemKind:IK_TEXTB; pszItemKey:'OPT_T03'; pszString:'テキスト入力'; pszDefValue:''), (idItemKind:IK_PW; pszItemKey:'OPT_PW'; pszString:'パスワード'; pszDefValue:''), (idItemKind:IK_CHECKBOX; pszItemKey:'OPT_C01'; pszString:'チェックボックス'; pszDefValue:'1'), (idItemKind:IK_INDENTR; pszItemKey:''; pszString:''; pszDefValue:''), (idItemKind:IK_STRING; pszItemKey:''; pszString:'文字列'; pszDefValue:''), (idItemKind:IK_RADIO; pszItemKey:'OPT_R01=1'; pszString:'選択肢1'; pszDefValue:''), (idItemKind:IK_RADIO; pszItemKey:'OPT_R01=2'; pszString:'選択肢2'; pszDefValue:'1'), (idItemKind:IK_RADIO; pszItemKey:'OPT_R01=3'; pszString:'選択肢3'; pszDefValue:''), (idItemKind:IK_INDENTL; pszItemKey:''; pszString:''; pszDefValue:''), (idItemKind:IK_FILER; pszItemKey:'OPT_F01'; pszString:'ファイル選択(参照)'; pszDefValue:''), (idItemKind:IK_FILEW; pszItemKey:'OPT_F02'; pszString:'ファイル選択(作成)'; pszDefValue:''), (idItemKind:IK_COLOR; pszItemKey:'OPT_COLOR'; pszString:'色'; pszDefValue:'')); function TMyCpx.cpxGetBBSDetailItem (idxItem: Integer; var ExtInfoDetail: TExtInfoDetail): LongBool; stdcall var cItem: Integer; begin cItem := Trunc (sizeof (Detail) / sizeof (TDetail)); if (idxItem < cItem) then begin ExtInfoDetail.idItemKind := Detail[idxItem].idItemKind; StrCopy (ExtInfoDetail.szItemKey, Detail[idxItem].pszItemKey); StrCopy (ExtInfoDetail.szTitle, Detail[idxItem].pszString); StrCopy (ExtInfoDetail.szDefValue, Detail[idxItem].pszDefValue); Result := TRUE; end else Result := FALSE; end;