17Th
Developer Camp

【S4】テクニカルセッション「現役ヘルプデスクが教える
Delphi活用のポイント」

株式会社ミガロ. RAD事業部
課長
吉原 泰介

1

アジェンダ• ミガロ.について
VCL
VCLforforthetheWEBでWebサービス連携
WEBでWebサービス連携■VCL for the WEBでWebサービス連携
補足資料1

XMLデータバインディングの使い方

バージョンアップの移行ポイント
バージョンアップの移行ポイント■バージョンアップの事前調査とバージョン選定■バージョンアップ時によくある変更点
補足資料2 旧DelphiをWindows7へインストールする
2ミガロ.について
株式会社ミガロ. －A 100% IBM i Company－
会社情報
会社情報
所在地：本社 大阪市浪速区湊町2-1-57
所在地：本社 大阪市浪速区湊町2-1-57
難波サンケイビル13F
難波サンケイビル13F
東京事業所 東京都港区麻布台1-4-3
東京事業所 東京都港区麻布台1-4-3
エグゼクティブタワー麻布台11F
エグゼクティブタワー麻布台11F
事業内容
事業内容
IBM i 向けのソフトウェア・ツール販売および技術サポート
IBM i 向けのソフトウェア・ツール販売および技術サポート【開発ツール】【バックアップ/災害対策ソフト】【開発ツール】【バックアップ/災害対策ソフト】
・Delphi/400
・Maxava HA・Delphi/400
・Maxava HA・JC/400
・PlateSpin Forge
・JC/400
・PlateSpin Forge【アプリケーション･ライフサイクル・マネージメント】【アプリケーション･ライフサイクル・マネージメント】
・MKS
・MKS

• Delphi/400• DelphiをIBM i (AS/400)に完全対応させたミドルウェア• 国内約650社、全世界約5,000社の導入実績

3

17Th
Developer Camp

1

VCL for the WEBでWebサービス連携

4

VCL for the WEBでWebサービス連携
Webサービス連携実装例（郵便番号検索）
Webサービス連携実装例（郵便番号検索）①郵便番号を入力②Webサービスより前方一致の住所リストを取得
5

VCL for the WEBでWebサービス連携
今回利用する郵便番号検索Webサービス
グルーブテクノロジー社提供Webサービス
http://groovetechnology.co.jp/webservice/zipsearch/index.html
仕様やインターフェースの詳細が公開されています。

•

3桁以上の郵便番号をHTTPを使って渡すとXMLの形で前方一致対象のデータを返却してくれます。
サービス利用を明示する必要があるなど

Webサービスを利用場合、提供元利用規約をよく確認してください。
6

VCL for the WEBでWebサービス連携
郵便番号検索サービス連携の仕組み•

郵便番号(TIWEdit)が入力されてExitする際にOnAysncExitイベントでWebサービスを利用して、結果をTIWListBoxにセットします。
556の郵便番号
情報をリクエスト

TIdHTTPコンポーネントでリクエスト

結果
XML

結果はTXMLDocumentで受け取り
XMLデータバインディングで生成するクラスで処理する

Webサービス（REST）

7

VCL for the WEBでWebサービス連携
XMLデータバインディングで取得XMLのクラスを自動生成•

XMLデータバインディングで生成したユニットを、利用するプログラムで[ファイル|ユニットを使う]から指定するか、usesに追記します。

使い方の詳細は補足資料を参照ください。
8

VCL for the WEBでWebサービス連携
郵便番号検索サービスより受け取れるXMLデータ•

この郵便番号検索サービスでは次のような形でXMLが返却されます。
データは生成されたソースのクラスで簡単に処理できます。
フィールド
address
officezipcodeprefecture
city
town
office_namestreetprefecture_yomi
city_yomi
town_yomi
office_name_yomi

説明
住所の郵便番号の情報です。zipcode, prefecture, city, town, prefecture_yomi, city_yomi,
town_yomiが設定されます。
事業所の個別郵便番号の情報です。zipcode, prefecture, city, town, street, office_name,office_name_yomiが設定されます。
郵便番号が、「9999999」の形式で設定されます。
都道府県名が設定されます。
市区町村名が設定されます。
町域名が設定されます。
大口事業所等名が設定されます。
大口事業所等名の小字名、丁目、番地等が設定されます。
都道府県名のよみ（カタカナ）が設定されます。
市区町村名のよみ（カタカナ）が設定されます。
町域名のよみ（カタカナ）が設定されます。
大口事業所等名のよみ（カタカナ）が設定されます。

9

VCL for the WEBでWebサービス連携
郵便番号検索サービスのリクエストURL•

今回利用する郵便番号検索サービス はURLにパラメータを付与してアクセス
するとXMLの形で結果を得ることができます。

556の郵便番号を検索する場合は次のようなURLになります。
共通アドレス部分

http://groovetechnology.co.jp/ZipSearchService/v1/zipsearch? format=xml&ie=UTF8&oe=UTF8&zipcode=556?以降がパラメータ部分
Format:返却形式
Ie:インプット文字コード
oe:アウトプット文字コード

zipcodeというパラメータで郵便番号を指定。ここにIWEditの入力値をセットする。
10

VCL for the WEBでWebサービス連携
住所データ取得（ソース）
procedure TfrmWebSample2Input.edtMCYUBNAsyncExit(Sender: TObject;
EventParams: TStringList);var
i: Integer;
URI: String;
RootNode: IXMLGroovewebserviceType; //XMLデータバインディングで取り込んだクラス
begin// リクエストするURLをセット
URI := 'http://groovetechnology.co.jp/ZipSearchService/v1/zipsearch?'+ 'format=xml&ie=UTF-8&oe=UTF-8&zipcode=' + iedtMCYUBN.Text;// レスポンスとして戻されたXMLを処理する
リクエストURL編集
XMLDocument1.XML.Text := IdHTTP1.Get(URI);
RootNode := Getgroovewebservice(XMLDocument1);
lstMCYUBN.Items.Clear; // 住所リストをクリア
ソース内コンポーネント名// 受け取ったXMLデータから住所リストを作成■郵便番号入力
for i := 0 to RootNode.Address.Count - 1 do
iedtMCYUBN：TIWEdit
lstMCYUBN.Items.Add(Format('%d : %s%s%s',■住所リスト表示[RootNode.Address.Items[i].Zipcode,//郵便番号
lstMCYUBN：TIWListbox
RootNode.Address.Items[i].Prefecture, //都道府県名■処理用
RootNode.Address.Items[i].City,//市町村名XMLDocument1：TXMLDocument
RootNode.Address.Items[i].Town]));//町域名
IdHTTP1：TIdHTTP// 住所リストが1件でもあれば先頭データを選択状態に
if lstMCYUBN.Items.Count > 0 then11
lstMCYUBN.ItemIndex := 0;end;

VCL for the WEBでWebサービス連携
カスタマイズ例①ダブルクリックすると画面項目にセット②住所からさらにWebサービスを利用して地図情報を表示など

12

VCL for the WEBでWebサービス連携
Client/Server型のアプリケーションで利用•

Client/Server型のアプリケーションでもデータバインディングで取り込んだ
ソースとTIdHttp、TXmlDocumentで実装の方法はほぼ同じです。

Webサービスを利用場合、提供元利用規約をよく確認してください。
13

VCL for the WEBでWebサービス連携
Webサービス連携実装例（グラフ表示）
Webサービス連携実装例（グラフ表示）

14

VCL for the WEBでWebサービス連携
今回利用するグラフ生成Webサービス
GoogleのWebサービスの1つGoogle Chart API を利用する
http://code.google.com/intl/ja/apis/chart/index.html
インターフェースパラメータ仕様やサンプルなどが公開されています。

Webサービスを利用場合、提供元利用規約をよく確認してください。

15

VCL for the WEBでWebサービス連携
Google Chart API でのグラフ生成•

今回グラフに使用するGoogle Chart API はURLにパラメータを付与してアクセスすると簡単に結果を得ることができます。
次のようなURLでアクセスすると
http://chart.apis.google.com/chart?cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World

パラメータ通りのグラフが作成できます。

16

VCL for the WEBでWebサービス連携
Google Chart APIのリクエストURL•

リクエストURLの構造例＜パラメータと値＞
・共通アドレス：http://chart.apis.google.com/chart?
・サイズ：chs=500x200
・割合：chd=t:60,40
・グラフの種類：cht=p3
・ラベル：chl=Hello|World

呼び出し構造は共通アドレス?(パラメータ1)&(パラメータn)･･･
呼び出しアドレスに続いてパラメータを付け足していく
17

VCL for the WEBでWebサービス連携
Google Chart APIのリクエストURL•

パラメータでグラフの種類を変える。
cht(グラフの種類）が違うと
http://chart.apis.google.com/chart?chs=300x300&chd=t:30,20,60,80&cht=lc

http://chart.apis.google.com/chart?chs=300x300&chd=t:30,20,60,80&cht=bvs

18

VCL for the WEBでWebサービス連携
Google Chart APIサービス連携の仕組み•

Delphi側でグラフに表示したいデータやグラフの種類に基づいたパラメータでURLを作成してTIWURLWindowコンポーネントで表示する。

データでURLを編集して表示

データ表示：TIWDBGrid
データ移動：TIWDBNavigator
19

VCL for the WEBでWebサービス連携
BarChart（棒グラフ）のパラメータ•

今回使用するBarChart（棒グラフ）のパラメータは次の通り■タイトル(エンコード文字-UTF8)
chtt=%E7%A8%9A%E3%80%80%E5%86%85■グラフの種類（棒グラフ） ■Xラベル
cht=bvg
chxl=0:|2001|2002|2003|・・・・
■サイズ
■Y目盛
chs=300x300
chxr=1,0,2000■色■最小/最大値
chco=76A4FB
chds=0,2000■ラベル表示■データ
chxt=x,y
chd=t:1100,1200,1300,・・・・※他にも使用できるパラメータは多数あります。

20

VCL for the WEBでWebサービス連携
グラフURLの作成手続き実装（ソース）//グラフURL作成手続き
ソース内コンポーネント名
procedure TSampleChartfrm.CrtChart;■TIWDBGrid表示データセット
var
ClientDataSet1：TClientDataSet//パラメータ編集用■フィールドsURL,sChxl,sChxt,sChs,sChds,sChxr,sCht,sChco,sChd,sChtt: String; 地区：地区名
begin
200X年：年度毎降水量//共通URL■グラフ表示sURL := 'http://chart.apis.google.com/chart';
IWURLWindow1 ：TIWURLWindow//タイトルsChtt := '?chtt=' + HttpEncode(UtF8Encode(ClientDataSet1.FieldByName('地区').AsString));//グラフ種類
タイトルはデータ（ここでは地区というフィールド）sCht := '&cht=bvg';//サイズ
からセットする。
sChs := '&chs=300x300';
ChartのタイトルはUTF8なので//色
UTF8EncodeしてからHttpEncodeで
sChco := '&chco=76A4FB';“旭 川”なら %E7%A8%9A%E3%80%80%E5%86%85//表示ラベル
sChxt := '&chxt=x,y';のようにセットされる。
//xラベルsChxl := '&chxl=0:|2001|2002|2003|2004|2005|2006|2007|2008';//y目盛
21
sChxr := '&chxr=1,0,2000';VCL for the WEBでWebサービス連携
グラフURLの作成手続き実装（ソース）
データはデータセットよりカンマ編集で結合してセットする。
（ここでは200X年という8フィールド固定）
フィールドではなく、レコードなどで数が可変ならラベルとあわせてループロジックで編集する。

//データ域sChds := '&chds=0,2000';//データ
sChd := '&chd=t:'+ ClientDataSet1.FieldByName('2001年').AsString + ','+ ClientDataSet1.FieldByName('2002年').AsString + ','+ ClientDataSet1.FieldByName('2003年').AsString + ','+ ClientDataSet1.FieldByName('2004年').AsString + ','+ ClientDataSet1.FieldByName('2005年').AsString + ','+ ClientDataSet1.FieldByName('2006年').AsString + ','+ ClientDataSet1.FieldByName('2007年').AsString + ','+ ClientDataSet1.FieldByName('2008年').AsString;//URLを結合して設定
IWURLWindow1.URI := sURL + sChtt + sCht + sChs + sChco + sChxt + sChxl + sChxr + sChds + sChd;
end;

22

VCL for the WEBでWebサービス連携
初期処理、データ移動時に手続き呼出（ソース）//初期処理procedure TSampleChartfrm.IWAppFormCreate(Sender: TObject);
begin//データOpen
ClientDataSet1.Open;//グラフ作成
CrtChart;
end;//データセットのAfterScrollイベントでデータ移動時にグラフ更新
procedure TSampleChartfrm.ClientDataSet1AfterScroll(DataSet: TDataSet);
begin//グラフ作成
CrtChart;
end;

23

VCL for the WEBでWebサービス連携
Client/Server型のアプリケーションで利用•

Client/Server型のアプリケーションでもTIWURLWindowの代わりに
TWebBrowserコンポーネントを経由して表示すれば使うこともできます。

Webサービスを利用場合、提供元利用規約をよく確認してください。
24

17Th
Developer Camp

補足資料1
XMLデータバインディングの使い方

25

XMLデータバインディングの使い方

補足情報

XMLデータバインディングの利用①•

プロジェクトを開いたまま[ファイル|新規作成|その他]から
XMLカテゴリでXMLデータバインディングを選択

26

XMLデータバインディングの使い方

補足情報

XMLデータバインディングの利用②•

Webサービスで返却されるXMLサンプルを保存しておき、XMLを指定。
（スキーマファイルがある場合はスキーマファイルで可能）

27

XMLデータバインディングの使い方

補足情報

XMLデータバインディングの利用③•解析結果に従いコードがプレビューされるので、ウィザードを進めて完了するとソースコードが生成されます。

28

XMLデータバインディングの使い方

補足情報

XMLデータバインディングの利用④•

Delphiのソースが生成されたら、利用したいプログラムで[ファイル|ユニットを使う]から指定するか、usesに追記します。

生成されたソース

29

17Th
Developer Camp

2

バージョンアップの移行ポイント30

バージョンアップの移行ポイント• バージョンアップの事前調査とバージョン選定• バージョンアップ時によくある変更点• バージョンアップ関連情報31

バージョンアップの移行ポイント
バージョンアップの事前調査• 確認すべき注意ポイント– コンポーネント、サードパーティ、ミドルウェア製品• 使用しているコンポーネントや製品がバージョンアップに対応しているか。
※ソース付属のみになっているコンポーネントもあるので注意。
• フリーコンポーネントであればソースがあるか。
• 代替コンポーネントや製品はあるか。

– レポートツール• QuickReportを使用している場合、新しいバージョンでは付属しない。
RaveReports 等別製品へ代替移行するか。正式製品版を購入するか。

– データベース• BDE、DBexpress、ADO・・手法切替が必要か。
→ 手法を切替えるなら規模/工数。
• DBのバージョンも含め、適切なドライバが存在するか。
32

バージョンアップの移行ポイント
バージョンアップのバージョン選定• Delphiバージョンによる違い
De lph iバージ ョン
W in do ws3 . 1
W in do wsNT 3 . 5 1
W in do ws9 5
W in do wsNT 4
W in do ws9 8
W in do wsM e
動作環境
W in do ws2 0 0 0
W in do wsXP
W in do wsSe r ve r 2 0 0 3
W in do wsSe r ve r 2 0 0 8
W in do ws Vist a
W in do ws 7
文字コード
BDE
データベース ADO
dbExpr e ss
Qu ic kRe po r t
帳票ツール
Rave Re po r t s
インストーラ In st allSh ie ld作成ツール In st allAwar e

1
〇
Ansi
〇
-

2
〇
〇
〇
Ansi
〇
〇
〇
-

3
〇
〇
〇
〇
Ansi
〇
〇
〇
-

4
〇
〇
〇
Ansi
〇
〇
〇
-

5
〇
〇
〇
Ansi
〇
〇
〇
〇
-

6
〇
〇
〇
〇
Ansi
〇
〇
〇
〇
〇
-

7
〇
〇
〇
Ansi
△
〇
〇
〇
〇
〇
-

2005
〇
〇
〇
Ansi
△
〇
〇
〇
〇
-

2006
2007
2009
2010
XE
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
Ansi
Ansi Unicode Unicode Unicode
△
△
△
△
△
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
無償DL 無償DL
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇

※SP等の詳細情報は割愛
33

バージョンアップの移行ポイント
バージョンアップのバージョン選定
ポイント• Delphi2007以前とDelphi2009以降がバージョンの大きな境界線- AnsiからUnicodeへ変更されているので、リコンパイルだけでは難しい。
ポイント• Delphi2007がAnsi版の最終バージョン- 移行作業に工数がかけられず、Unicodeに対応する必要性がないのであれば
旧アプリケーションはDelphi2007でバージョンを止めるのも選択肢。
Delphi2009以降で無理なAnsi加工対応より◎
ポイント• Delphi2006以前から最新版へのバージョンアップする場合①一度Delphi2007にバージョンアップ
②最新版へバージョンアップ
の段階バージョンアップを推奨- バージョン移行と文字コードの問題を混在させると・・余計に大変になる場合も多い。
34

バージョンアップの移行ポイント
バージョンアップのバージョン選定• Delphi2007を持っていない場合、最新のDelphiXEを購入すると入手することが可能です。
（Delphi7 ,Delphi2007, Delphi2009, Delphi2010のダウンロード＋ シリアルを入手できます。製品入手は180日間以内）

旧バージョンのライセンスの取得方法について
http://edn.embarcadero.com/article/40874■注意バージョンアップでXEを入手した場合は、既に所持している旧バージョンのシリアルを新たに入手することはできません。
35

バージョンアップの移行ポイント
バージョンアップのバージョン選定
ポイント• BDEを使用している場合、変更するか継続するか。
BDEを継続する場合
メリット•

変更の工数がかからない。

•

製品的な開発、サポートが終了しているので、使用する場合は開発者の自己責任が伴う。
リモートデータベースに対するSQLリンクドライバは付属していない。
（製品外で提供されるドライバは提供元次第）

デメリット

•

36

バージョンアップの移行ポイント
バージョンアップのバージョン選定
ポイント• BDEを使用している場合、変更するか継続するか。
dbExpress等に変更する場合
メリット
•
•

製品サポートの範囲で開発できる。（BDEより将来性が○）配布環境でBDE自体のインストールが不要になる。
（特にVistaや7でのUACの考慮が手間になる）•

プログラムの作りや規模によっては膨大な工数がかかる。
※双方向データセットの動作については、ClientDataSetを経由すればBDEのデータセットに近い動作は可能。

デメリット

37

バージョンアップの移行ポイント
バージョンアップのバージョン選定
ポイント• BDEを使用している場合、変更するか継続するか。
BDE から dbExpressに変更する一例
BDE

dbExpress

TDataBaseコンポーネント
TTableコンポーネント

TDataSourceコンポーネント
TDBGridコンポーネント

TSQLConnectionコンポーネント
TSQLQuery(Table) コンポーネント
TDataSetProviderコンポーネント
TClientDataSetコンポーネント
TDataSourceコンポーネント
TDBGridコンポーネント■Borland Database EngineアプリケーションのdbExpressへの移行
http://www.borland.com/resources/jp/pdf/products/delphi/delphi_bde_to_dbexpress_jp.pdf
38

バージョンアップの移行ポイント

バージョンアップ時によくある変更点（よくある問合せ）

39

バージョンアップの移行ポイント
バージョンアップ時によくある変更点（～Delphi5からVerUp）• ユニット再編
Delphi6の段階でCLX対応のために、ソースコードの再編が行われました。このポイントをまたぐバージョンアップを行う場合、uses節の修正がよ
く必要になります。
uses節の初期状態（Delphi5）
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

uses節の初期状態（Delphi7）
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;

新しいユニットの追加

40

バージョンアップの移行ポイント
バージョンアップ時によくある変更点（～Delphi5からVerUp）• 設計用コードの分離
Delphi6からコンポーネントのソースコードで設計時と実行時のコードを明確に分離しなければならなくなりました。同時にデザインインターフェー
スユニットのユニット名も変更されました。
対象
uses節にDsgnIntfを含むDelphi5以前のコンポーネントソースコード

対処法
uses節のDsgnIntf をDesignIntfへ変更し、DesignEditors, VCLEditors,
RTLConstsを追加し、パッケージのrequiresリストにdesignideを追加

41

バージョンアップの移行ポイント
バージョンアップ時によくある変更点（～Delphi6からVerUp）• SQLClientDataSetコンポーネント
Delphi6にはdbExpressのコンポーネントでSQLClientDataSetがありま
すが、これはDelphi7以降では推奨されておらず、デフォルト組み込まれていません。
対象
SQLClientDataSetを使用しているプログラム

対処法
SQLClientDataSetは次のコンポーネントに分けて置き換え
SqlQuery + DataSetProvider + ClientDataSet（ SQLClientDataSetは元々これらのコンポーネントをセットにしたようなコンポーネント。SimpleDataSetに近い）

ソースはDemos関連のフォルダに互換用に格納されています。
..¥Demos¥Db¥SQLClientDataset ※バージョンよって若干異なります
バージョンによってコンパイルするために自身でソース修正が必要（非推奨）42バージョンアップの移行ポイント
バージョンアップ時によくある変更点（～Delphi7からVerUp）• フォームの初期表示
統合開発環境内でのフォームの表示方法が変更され、フォームの初期表示される位置が変更されました。
Delphi7以前のPositionプロパティ

設計時の大きさ・
位置に表示【poDesigned】
フォームは設計時と同じ画面上の位置、高さ、幅で表示

Delphi2005以降のPositionプロパティ【poDefaultPosOnly】
フォームは設計時にフォームを作成したサイズで表示されるが、画面上の位置はオペレーティングシステムが選択

設計時の大きさだが、位置はＯＳが自動的に変更表示

Positionプロパティのデフォルト値のままではフォーム情報(dfm)に保存されません。
そのため、Delphi7以前でデフォルト値で作成したプログラムを
43
Delphi2005以降で扱うと、デフォルト値が変わってしまうので注意が必要です。

バージョンアップの移行ポイント
バージョンアップ時によくある変更点（～Delphi7からVerUp）• Fontプロパティのデフォルト値
Fontプロパティのデフォルト値が変更されたため、フォントを指定していない場合は見た目が異なります。
Delphi7以前のFontプロパティ
フォント名：MS P ゴシック
フォントサイズ：９
CharSet： SHIFTJIS_CHARSET
Delphi2005以降のFontプロパティ
フォント名：Tahoma
フォントサイズ：８
CharSet： DEFAULT_CHARSET
Delphi7以前で作成したプロパティ値が設計画面で引き継がれたコンポーネントはフォーム情報(dfm)に値が保存されているので問題ありません。ソース上で動的に作成しているコンポーネントは明示的な指定などをしていない場合、注意が必要です。

44

バージョンアップの移行ポイント
バージョンアップ時によくある変更点（～Delphi7からVerUp）• IntraWebプロジェクトは再作成を推奨
Delphi7で作成したIntraWebのプログラムは、Delphi2005以降に付属するIntraWebのバージョンとはかなり大きな差異があります。
構成やロジックがかなり違うため修正するよりも新規に再作成がお勧め。
Delphi7付属IntraWebの基本構成
Delphi2005以降の付属IntraWeb(VCL for the WEB)の基本構成
プロジェクトのファイル構成自体も異なるので修正してバージョンアップするのは難しい。
旧プロジェクトをバージョンアップでコンパイルすると、根本的に必要なユニットの不足や構造の違いが原因でエラーとなります。
45

バージョンアップの移行ポイント
バージョンアップ時によくある変更点（～Delphi2006からVerUp）• Transparentプロパティのデフォルト値
Transparentプロパティのデフォルト値が変更されたため、デフォルト値を使用している場合、意図せず透過表示になります。
Delphi2006までのTransparentプロパティ
Delphi2007からのTransparentプロパティ

False
True

例：Labelコンポーネント
Delphi2006まではデフォルト値がFalse

Delphi2007からはデフォルト値がTrue

Falseに設定すれば本来の表示になりますTransparentプロパティのデフォルト値のままではフォーム情報(dfm)に保存されません。
そのため、Delphi2006以前でデフォルト値で作成したプログラムをDelphi2007以降で扱うと、デフォルト値が変わってしまうので注意が必要です。

46

バージョンアップの移行ポイント
バージョンアップ時によくある変更点（～Delphi2007からVerUp）• IWTemplateProcessorHTML
IntraWeb(VCL for the WEB)でIWTemplateProcessorHTMLを使用
してhtmlテンプレートを読み込んでいる場合、htmlの保存形式やhtml内のCharSetの設定をUTF-8に変更しておく必要があります。
Delphi2007まで
読み込めていてもDelphi2009～では全く読み込めない対処法（読み込むhtml）
htmlファイル自体を文字コードUTF-8で保存

htmlソース内のCharSet
をUTF-8に変更
47

バージョンアップの移行ポイント
バージョンアップ関連情報
バージョン移行/新機能/文字コード関連で役立つ情報URL■Delphi 7以降の IDEの新機能
http://edn.embarcadero.com/jp/article/34361■ Delphi 2009 ではじめるUnicode アプリケーション
http://conferences.embarcadero.com/jp/article/images/39112/a6.pdf■ Delphi 7ユーザと初心者のためのDelphi 2010入門
http://edn.embarcadero.com/article/images/40483/1C.pdf■ Delphi での文字コードのハンドリングについて
http://edn.embarcadero.com/article/images/40483/1E.pdf■旧Delphiで作成されたアプリケーションを Delphi 2010 に移行するには
http://edn.embarcadero.com/article/images/40857/a3.pdf■ SJIS からUnicode へ！ マイグレーションテクニック
http://edn.embarcadero.com/article/images/40857/a4.pdf
48

17Th
Developer Camp

補足資料2
旧DelphiをWindows7
へインストールする

49

旧DelphiをWindows7へインストールする• Windows 7へインストールする場合

エラー

素直にProgram FilesにインストールするとUACの関係で色々エラー原因になります。

50

旧DelphiをWindows7へインストールする• Windows 7へインストールする場合
対処法①インストール用のフォルダを作成する。
例）C:¥Delphi

例）
Windows7でDelphi7を実行※正式な動作保障はありません。

②インストール時に①フォルダを指定する。
UACに関わるフォルダは使わない。

インストールフォルダを指定
51