CMNロゴ

ICpx::cpxGetBBSDetailItem Method


フォルダプロパティの「掲示板情報」の掲示板詳細項目を設定します。

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;



ICpx