ダイアログにカスタムボタンを追加する
X-Function, Add Custom Button on Dialog
ダイアログにカスタムボタンを追加する
次のサンプルは2つのカスタムボタンを追加する方法を示します。この例では、Xファンクションダイアログにリセットボタンと適用ボタンを追加し、event1関数も使用してどのボタンがクリックされたか見極めます。
- F10を押してXファンクションビルダを開きます。Xファンクション編集ボックスに「CustomButton」と入力して、Xファンクションの名前にします。
- ボタンをクリックしてツリービューパネルに切り替え、GetNダイアログカスタムボタン編集ボックスに「Reset|Apply」と入力します。保存をクリックしてXファンクションを保存します。
- コードビルダでXファンクションを開きます。そして、次のコードをCustomButton_event1関数に入力し、ボタンをクリックします。
Xファンクション:event1
if( nEventID == GETNE_ON_CUSTOM_BUTTON1 )
{
out_str("Reset click");
//return PEVENT_GETN_RET_TO_CLOSE; // ダイアログを閉じる
//return PEVENT_GETN_RET_FORCE_UPDATE; //強制更新
}
if( nEventID == GETNE_ON_APPLY )
{
out_str("Apply click");
}
if( nEventID == GETNE_ON_OK )
{
out_str("OK click");
}
- コマンドウィンドウでCustomButton -d を実行し、このXファンクションのダイアログを開きます。 4つのボタン、Reset、適用、OK、キャンセルを確認できます。
- Resetボタンをクリックするとコマンドウィンドウに 「Reset click」と表示されます。適用ボタンをクリックすると「Apply click」とコマンドウィンドウに表示され、キャンセルボタンは閉じるボタンに代わります。OKをクリックすると「OK click」が表示され、ダイアログが閉じます。
Note: 詳細は、Origin Cヘルプの GETN_CUSTOM_BUTTON を参照してください。
グラフプレビューGetNダイアログでプレビューボタンを表示する
Xファンクションの枠組みは、グラフプレビューGetNダイアログのプレビューを表示するボタンと自動プレビューチェックボックスをサポートしています。これらの2つのコントロールは自動的にプレビューを更新する(自動プレビューチェックを付ける必要があります)か手動でプレビューを更新(プレビューボタンをクリック)します。
次の手順でこれら2つのコントロールをどのように追加するか示します。
プレビューボタンを追加するには以下の5つの手順を実行します。
- F10を押してXファンクションビルダを開きます。Xファンクション編集ボックスに「PreviewButtons」と入力して、Xファンクションの名前にします。
- 変数表で以下のように変数を設定してOKをクリックして、このXファンクションを保存します。
Name: gp
Label: Graph
Input/Output: Input
Data Type: string
Control: ...Graph
- コマンドPreviewButtons -d を実行してXファンクションダイアログを開きます。 今回は2つのボタン、OKとキャンセルしかありません。キャンセルをクリックしてダイアログを閉じます。
- Xファンクションビルダではボタンをクリックしてツリービューパネルへ移動し、使用のコンテクスト→メニュー→自動GetNダイアログで「プレビュー付きGetNGraphBox」を選択してから「プレビューボタンを表示」にチェックをつけます。このXファンクションを保存します。
- PreviewButtons -d を実行してダイアログを再度開きます。すると、今度は2つのコントロール、自動プレビューチェックボックスとプレビューボタンが追加表示されている事がわかります。
以下の手順は、gp変数の選択によってダイアログのプレビューグラフが自動更新されるか示します。 GetN Graph Preview ダイアログについての詳細は、GetNダイアログでグラフプレビューを作成を確認してください。
- このXファンクションをコードビルダで開きます。以下のコードをコピーしてGetNGraphPreview_OnChange関数に貼り付けてください。
//GetNGraphPreview_OnUpdateGraphを呼び出してグラフを更新するビットを含める
if( !(dwUpdateGraph & UPDATE_GRAPH_CHANGED) )
dwUpdateGraph |= UPDATE_GRAPH_CHANGED;
- 以下のコードをGetNGraphPreview_OnUpdateGraph 関数にコピーします。
string strGraph = trGetN.gp.strVal;
GraphPage gpSource(strGraph);
GraphPage gpDest(pgTemp);
page_clone(gpSource, gpDest);
- ボタンをクリックします。コマンドウィンドウでPreviewButtons -d を実行しダイアログを開きます。
- ダイアログでグラフ名をグラフコントロールに入力するか、ボタンをクリックして開くグラフブラウザダイアログでグラフを1つ選択します。自動プレビューチェックボックスにチェックを付けるか、プレビューボタンをクリックします。すると、指定したグラフがプレビューパネルに表示されます。以下の画像を確認してください。