タブベースのダイアログの作成

以下の例はタブベースのXファンクションダイアログの作り方を示しています。event1関数はタブが変更されたことをキャッチします。

  1. F10を押してXファンクションビルダを開きます。Xファンクション編集ボックスに「tabdlg」と入力して、Xファンクションの名前にします。
  2. 変数パネルでxをクリックして名前をstr1に変更します。データの種類stringに変更します。オプション文字列をG:-Tab Oneに変更します。パネルの灰色の部分を右クリックして3つの変数を追加し、以下のようにそれらの変数のプロパティを変更します。保存をクリックしてXファンクションを保存します。
  3. Tabdlg.png

  4. Xファンクションをコードビルダで開き、先頭に以下のコードを追加します。
    #include <event_utils.h>
            
    

    TabDialog_event1に以下のコードを入力します。

    //タブ変更のコード
    if ( GETNE_ON_ACTIVE_TAB_CHANGE == nEventID )
    {
            int nLastTabIndex = -1;
            if ( !trGetN.GetAttribute(STR_LAST_TAB_INDEX_ATTRIB, nLastTabIndex) )
                    nLastTabIndex = -1;
            printf("TabChanged: Old=%d, New=%d\n", nLastTabIndex, nRow);
            trGetN.SetAttribute(STR_LAST_TAB_INDEX_ATTRIB, nRow);
    }
    

    TabDialog_before_executeに以下のコードを入力します。

    if ( is_xf_startup(nGetNDialog, dwCntrl) )
    {
            STATS_GETN_GROUPED_SUBNODES_AS_TABS; //タブでブランチを表示する
            GETN_ENABLE_TABCHANGE_EVENT(trGetN, true); //タブ変更のイベントを有効にする
    }
    
  5. Ocguide XF Compile Button.PNGボタンをクリックします。
  6. コマンドウィンドウでtabdlg -dを実行してダイアログを開きます。タブの切り替えでイベントが発生し、"TabChanged: Old=-1, New=2"のようなメッセージが表示されます。