Delphi に最新版の IntraWeb (VCL for the Web) をインストールする

# はじめに
IntraWeb は、Web サーバー アプリケーションの構築を簡略化するツールです。 IntraWeb を使用すれば、フォームを使用して、従来の GUI アプリケーションと同じ方法で Web サーバー アプリケーションを作成できます。 すべてのビジネス ロジックを Delphi 言語で記述できます。IntraWeb は必要に応じて自動的にプログラム要素をスクリプトまたは HTML に変換します。

 - [IntraWeb（VCL for the Web）の利用：インデックス (DocWiki)](http://docwiki.embarcadero.com/RADStudio/ja/IntraWeb（VCL_for_the_Web）の利用：インデックス)

IntraWeb は Professional Edition 以上の SKU にバンドルされている [Atozed](https://www.atozed.com) 製のツールです。

|機能| Personal| Standard| Ultimate |
|:-:|:-:|:-:|:-:|
|サービスとして動作|×|〇|〇|
|同時接続数制限|5|-|-|
|セッションタイムアウト制限|あり|あり|なし|

Delphi の SKU によって、バンドルされている IntraWeb の SKU も異なります。Professional には IntraWeb Personal が、Enterprise 以上の SKU には IntraWeb Standard がバンドルされています。Ultimate は €399 くらいで購入できます。

:::note warn
IntraWeb は 10.4 Sydney 以降、Embarcadero 製品にバンドルされなくなりました。

Atozed からのダウンロード可能なバンドル版は 10.4 Sydney でも利用可能ですが、10.4 Sydney 用のライセンスを取得する方法がないため、評価版として動作するようです。

:::

 - [IntraWeb の機能一覧 (Atozed)](https://www.atozed.com/intraweb/features/)
 - [IntraWeb の購入 (Atozed)](https://www.atozed.com/intraweb/buy/)


# 概要

## 何故アップデートするのか？
**バンドルされているものが "かなり" 古いから**です。例えば 10.2 Tokyo にバンドルされているのは IntraWeb XIV (14.0.0) ですが、この記事執筆時点 (2018/03/31) の IntraWeb XIV の最新版は 14.2.7 です。

バンドル版には[様々なバグ](https://www.atozed.com/category/iw/iw-history/iw-history-14/)があるのですが、何故エンバカさんがその時点の最新版をバンドルしないのか？...その理由は不明ですが、そういうものだと思っていれば精神衛生上よろしいかと思います。

なお、有償の製品版は 2024/07/01 時点で IntraWeb 15.x が最新版となっており、IntraWeb 17 がベータ版となっています。

## アップデート手順
アップデートの手順は [Atozed のサイトにも記述がある](https://www.atozed.com/intraweb/bundled/)のですが、ちょっとわかりにくいので補足してみます。

### ユーザー登録

まずはユーザー登録を行います。

1.[http://app.atozed.com/](http://app.atozed.com/) に行く

2.メールアドレスを入力する。

|![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/712b62a4-b1ac-7517-1df8-853354a1b216.png)|
|:-----------------|

3.新規ユーザーの場合には [Next] をクリックする

|![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/57da9186-f54e-3989-c90e-3c4ef4014e89.png)|
|:-----------------|

4.ユーザー情報を入力する (住所氏名等は英語表記で)。

|![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/b6b80b4b-df82-1ab3-b5ee-01ed8e02668c.png)|
|:-----------------|

5.ユーザー登録される。**Instant Login URL** を控えておくといい。

|![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/3397a306-a51e-9784-485b-560bac9fb31b.png)|
|:-----------------|

6.**Registered IDEs** の [Edit] をクリック

|![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/a5338e11-6316-8fdf-2e93-c335e5f55b99.png)|
|:-----------------|

7.持っている製品にすべてチェックを入れ [SAVE] ボタンを押す

|![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/6c8e8f40-b15b-ed62-6ed5-bbd73efde87a.png)|
|:-----------------|

8.続けて製品登録を行う。**Products** の [IntraWeb] をクリック

|![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/385e8956-e500-05fe-dbe0-cca14f10397f.png)|
|:-----------------|

9.**Free Licenses** の [Request Bundled License] をクリック

|![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/a10aeef5-b452-71a1-028b-dcf1230a93dd.png)|
|:-----------------|

10.**Product / IDE / Version** で手持ちの製品を選択する。

|![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/87206cfa-3a14-bc4c-44fc-cb395068a8aa.png)|
|:-----------------|

11.[download the utility] をクリックし、**IDE ハッシュ文字列** ジェネレーター ([IWKeyRequest.exe](http://downloads.atozed.com/intraweb/KeyRequest.zip)) をダウンロードする。アーカイバによっては何故か 0 バイトで解凍される事があるが、Windows 10 標準の機能で正しく解凍できる。

|![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/c2ec99ce-e46c-df9f-5839-37ef31ad1797.png)|
|:-----------------|

12.IWKeyRequest.exe を実行する。製品を選択し [Generate] ボタンを押すと IDE ハッシュ文字列が生成される。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/cdb6f4a0-fe88-f6ed-5756-5181d9794a73.png)

13.生成された IDE ハッシュ文字列を先程のページの **IDE Hash String** に貼り付けて [Request] ボタンを押す。

|![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/19b75ac5-8437-505b-12c9-fecc5a1464ed.png)|
|:-----------------|

14.これを 10. から**持っている製品分繰り返す**。
 
15."Instant Login URL" へアクセスし、**Products** の [IntraWeb] をクリック。

|![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/385e8956-e500-05fe-dbe0-cca14f10397f.png)|
|:-----------------|

16.**IntraWeb** の [My Keys] をクリックする。

|![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/192d0686-68b1-3632-0427-a9981a7a26ff.png)|
|:-----------------|

17.ライセンスキーが表示される。

|![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/ebc11dcf-27a0-575a-8086-4500cee52d42.png)|
|:-----------------|

ライセンスキーはメールでも届いている。

なお、Delphi 2007 は IntraWeb 9、Delphi 2009 / 2010 では IntraWeb 10 のライセンスが入手できますが、この際には IDE ハッシュ文字列の入力は不要です。



### 最新版の IntraWeb (VCL for the Web) をインストールする

1.[ダウンロードページ](https://www.atozed.com/intraweb/download/v14/) から 最新版を DL する。バージョンによっては事前にアップデータや HotFix をインストールしておく必要がある。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/5b5be35e-3b97-85c6-88ee-546603f28110.png)

2.ダウンロードしたインストーラを実行する。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/c741c89c-4210-7922-6155-0cca42bf048b.png)

3.途中でライセンスキーを要求されるので、とりあえず最新版 (10.2 Tokyo) のライセンスを入れる。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/2bdd880e-3ac6-aa07-766e-45440880cd0a.png)

4.完了したら、二つともチェックを入れてそれぞれのツールを起動する。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/f6f12997-6772-339a-2ccc-919945702f77.png)

### IntraWeb Bundled Removal Tool (IWBundledRemovalTool.exe)

このツールは `C:\Users\\<アカウント名>\AppData\Roaming\IntraWeb XIV\Tools\BundledRemoval` に格納されています。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/c378d7dc-729d-0e4d-2be5-d2707fd5367a.png)

このツールを使ってバンドル版を事前に削除しないと IDE の起動時にパッケージがカブるだけではなく、**ライブラリがバッティングする**ため、パッケージだけ [コンポーネント | パッケージのインストール] で削除しても、プロジェクトをコンパイルするとエラーになってしまいます。

**"Delete IntraWeb package..." のチェックボックスにはチェックを入れます。** チェックを入れないとバンドル版のライブラリのみ削除され、パッケージが残ったままとなり、IDE 起動時にエラーになります。

### IntraWeb License Registration (LicenseRegistration.exe)

このツールは `C:\Users\\<アカウント名>\AppData\Roaming\IntraWeb XIV\` に格納されています。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/f1038d10-d640-52e0-a5ec-76042bde6693.png)

インストーラで入力できなかった最新版以外のライセンスはこのツールを使って登録します。

### IDE の起動

IntraWeb 14 の最新バージョンが表示され、起動時にパッケージの重複エラーが出なければ OK です。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/f89fa4d7-1f5a-ef6e-3259-a3c69a152aa3.png)


パッケージの重複エラーが出る場合には、エラーダイアログで [はい] を押して IDE をそのまま起動します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/8eb2321b-a07a-90d4-509b-5b36aad9dc5e.png)


IDE が起動したら [コンポーネント | パッケージのインストール] で、パッケージ (\*.bpl) のパスが C:\Users\<アカウント名>\AppData\… になっている方のパッケージにチェックを入れ、パッケージのパスが Delphi インストールパス以下になっているバンドル版のパッケージを [削除] ボタンで削除してください。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/c37abaf3-c015-7e62-c389-2aeeba1ce292.png)

古い Delphi はバンドル版のパッケージ名が IntraWeb ではなく **VCL for the Web** になっているので探しにくいかもしれません。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/fa281ea0-7702-dcc9-eb27-5eb710ea5fc4.png)


### サンプルアプリケーションでの確認

1.[ファイル | 新規作成 | その他...] で **IntraWeb Application** を選択

![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/95f9b195-a817-682f-84ac-3be6b53b5603.png)


2.プロジェクトパスは適当に。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/3b34eafc-1caf-d814-fa4f-f62939176050.png)

3.Unit1 のフォームデザイナに **IW～** で始まるコンポーネントを貼り付ける。

|![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/5766ddda-ff90-d120-3144-ea6ab6bb533d.png)|
|:-----------------|

4.コンパイルして実行。いつもの奴が出るのでアクセスを許可。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/8002e54e-ddb2-e0c3-5473-ad009e8aade6.png)

5.ちゃんとバージョンが最新版になっている。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/490f12f4-94dc-1c36-93db-c4a3340493a3.png)


6.IE のボタンを押すと...

![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/eda96751-3964-602c-35f3-4631d5ef5119.png)

7.IE で Web サーバーへアクセスできる。バンドル版だと IE11 でアクセスしようとするとエラーになると思う。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/21785/9a02b33a-3435-1dcc-09cf-33f880c31a53.png)


# おわりに

こんな感じで最新版の IntraWeb がインストールできます。

IntraWeb は使用例や情報も少なく、込み入った実装になると [WebBroker](http://docwiki.embarcadero.com/RADStudio/ja/WebBroker_%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E4%BD%9C%E6%88%90) の方が潰しがきいたりもするのですが、ちょっとした連携ツールを作るのには便利な時もあります。

[Delphi 10.2.3 では Professional 版のみでモバイル開発できるようになった](https://community.embarcadero.com/article/16618-delphi-c-builder-10-2-3-professional-mobile-pack)ので、スマホとの連携ツールを作るのに重宝するかもしれませんね。

**See Also:**

 - [IntraWeb (Atozed)](http://www.atozed.com/IntraWeb/)
 - [IntraWeb (Facebook)](https://www.facebook.com/pg/AtozedIntraWeb/posts/?ref=page_internal)
 - [IntraWeb（VCL for the Web）の利用：インデックス (DocWiki)](http://docwiki.embarcadero.com/RADStudio/ja/IntraWeb（VCL_for_the_Web）の利用：インデックス)
 - [Delphi+IntraWeb+FastReportによるWeb、モバイル、タブレットアプリ開発 1/2 (Youtube)](https://www.youtube.com/watch?v=FF6dEafLqTE)
 -  [Delphi+IntraWeb+FastReportによるWeb、モバイル、タブレットアプリ開発 2/2 (Youtube)](https://www.youtube.com/watch?v=5EcYYJZHebM)
 - [Webアプリケーション開発の基礎 1/2 (Youtube)](https://www.youtube.com/watch?v=n0rPrKesLJE)
 - [Webアプリケーション開発の基礎 2/2 (Youtube)](https://www.youtube.com/watch?v=5JirbOpGlV4)
 - [IntraWeb (VCL for Web) でのWebサイト作成 (Delphi XE3) (NAVER まとめ)](https://matome.naver.jp/odai/2138665323379895901)