Lesson 8 ユーザー・インタフェイス再び

3. 相互作用

ダイアログを作成することは、どちらかと言えば単純です (ページに配置できるコントロールのタイプはもっと沢山ありますが)。 本当に面白いのは、ダイアログ同士を相互作用させることです。 SampleCustomUI3 では、第二のダイアログを追加して、ユーザーがインストールのプロセスをキャンセルすることが出来るようにします。

CancelDlg

この目的を達するためには、ダイアログそのものが必要です。 ダイアログは二つのプッシュ・ボタンを持ちますが、用語の違いに気を付けて下さい。 このようなダイアログ・ボックスは二つの出力を持ち得ます。 すなわち、ダイアログが言う通りにするのを キャンセル するか、オーケー するかです。 このダイアログでの質問は違う言い方になります。 キャンセルするダイアログをキャンセルするという事は、インストールを続けることに賛成するということです。 従って、第一の、デフォルトのボタン (いいえ というテキストを持ったボタン) を、キャンセル・ボタンと呼びます。

<Dialog Id="CancelDlg" Width="260" Height="85"
    Title="[ProductName] [Setup]" NoMinimize="yes">
  <Control Id="No" Type="PushButton"
      X="132" Y="57" Width="56" Height="17"
      Default="yes" Cancel="yes" Text="[ButtonText_No]">
    <Publish Event="EndDialog" Value="Return">1</Publish>
  </Control>

ユーザーがこのボタンをクリックすると、Return の値を持った EndDialog イベントが発生します。 その名前が示すように、このイベントは単純にダイアログを終了して、元の操作を再開します。 Publish タグは、条件式として、1 という数値を持っています。 1 は常に真と評価されます(0 は偽と評価されます)ので、イベントは無条件に発行されます。

第二の、はい というテキストを持ったボタンは、同じ EndDialog イベントを発生させますが、Exit という別の値を伴います。 この値は、インストールの操作全体を中止するために使われます。

<Control Id="Yes" Type="PushButton"
      X="72" Y="57" Width="56" Height="17" Text="[ButtonText_Yes]">
    <Publish Event="EndDialog" Value="Exit">1</Publish>
  </Control>

残りは簡単です。テキストとアイコンです。Binary タグを追加してパッケージにアイコンを入れることを忘れないで下さい。

<Control Id="Text" Type="Text"
      X="48" Y="15" Width="194" Height="30">
    <Text>[ProductName] のインストールを中止してよろしいですか?</Text>
  </Control>

  <Control Id="Icon" Type="Icon"
      X="15" Y="15" Width="24" Height="24" ToolTip="情報アイコン"
      FixedSize="yes" IconSize="32" Text="[InfoIcon]" />
</Dialog>

<Binary Id="info" SourceFile="Binary\Info.ico" />

InstallDlg ダイアログにも、いくらか修正が必要です。 Install ボタンを左へ移動して、Cancel ボタンを置く場所を作りました。 この Cancel ボタンが、起動するダイアログの名前を指定して、SpawnDialog イベントを発生させます。 前のレッスンで既に述べたように、SpawnDialog は新しい子ダイアログを開始しますが、 現在のダイアログは削除せず、ユーザーがその第二のダイアログを終了すると動作を続行します。

<Control Id="Cancel" Type="PushButton"
      X="304" Y="243" Width="56" Height="17"
      Cancel="yes" Text="[ButtonText_Cancel]">
    <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
  </Control>

↑ 先頭  |  • 目次  |  « 前へ  |  次へ »  |  ∗ 原文

Table of Contents

1 始めよう

  1. ソフトウェア・パッケージ
  2. 中に入るファイル
  3. 使用に供する
  4. 便利な追加機能
  5. どこにインストールするか
  6. 条件付きインストール
  7. ファイルだけでなく
  8. 削除時の孤児化

2 ユーザー・インタフェイス

  1. 最初のステップ
  2. カスタムの設定
  3. UI の魔法
  4. 英語はわかりますか
  5. チェーンの新しい環
  6. 地域化を考える

3 イベントとアクション

  1. 列に並んで
  2. 追加のアクション
  3. 本に書かれていないこと
  4. コントロールをコントロールせよ
  5. マネージする方法
  6. 後の段階で

4 アップグレードとモジュラー化

  1. 古いのを探す
  2. 自分自身を置き換える
  3. パッチワーク
  4. 断片
  5. 融合するもの

5 Net と .NET

  1. .NET の枠組み
  2. ブートストラップ
  3. インターネットを起動する
  4. ウェブ・ディレクトリ
  5. サービスの提供

6 COM、式の構文、その他

  1. 違う色のコンポーネント
  2. 式の構文
  3. 書式指定文字列
  4. DDE 接続
  5. ディレクトリの作成
  6. 複数メディアのインストーラ
  7. プログラムの追加と削除の項目
  8. 新顔のユーザー
  9. 環境に優しく
  10. XML
  11. COM+ アプリケーション
  12. バージョンごとに

7 SQL

  1. データベースを作成する

8 ユーザー・インタフェイス再び

  1. 一つだけのダイアログ
  2. チューニング・アップ
  3. 相互作用
  4. カスタマイズがいっぱい
  5. これが進捗ですか
  6. よく出来ました
  7. 法律用語
  8. 順番外
  9. 英語はわかりませんか

9 トランスフォーム

  1. インストーラを変形する

10 標準ライブラリ

  1. カスタム・アクションとユーザー・インタフェイス
  2. お静かに願います