2011年12月30日

Microsoft OOB Update 2011/12

Microsoftの定例外のセキュリティアップデートがリリースされています。
MS11-100

2011年12月28日

IDE Fix Pack 4.6.1リリース

Andreas HausladenさんIDE Fix Pack 2009/2010/XE/XE2がアップデートされてVersion 4.6.1になっています。このバージョンではバグフィックス2件のみで機能的な追加変更は含まれていないとのことです。

IDE Fix Pack 4.6.1 – bugfix release | Andy’s Blog and Tools

2011年12月20日

RAD Studio/Delphi/C++Builder XE2 Update 3 Hotfix 2

RAD Studio/Delphi/C++Builder XE2 Update 3のHotfix 2(Ent/Arc/Ult SKUのみ)がリリースされています。
  • QC101807 Update 3適用後にAndroid用モバイルコネクタのDSRESTSSLFactory.javaが不足する
という問題を修正するものです。

28672 HotFix 2 for Delphi, C++Builder and RAD Studio XE2
C++Builder XE2/Delphi XE2/RAD Studio XE2 向け Hotfix 2
Hotfix 2 for C++Builder XE2, Delphi XE2 and RAD Studio XE2 is now available

2011年12月19日

FastReport 4 VCL日本語版

Delphi/C++Builder XE2ではFastReport 4 RAD Editionが標準でバンドルされるようになりましたが、先週のデベロッパーTVでもちょっと話が出ていた製品版の日本語版が2012/01/13に発売されるようです。

レポーティングソリューション FastReport VCL | 製品概要
リオスe-Shop/商品一覧ページ

エージーテックさんのページでは1月中旬以降正式リリースとなっていますが、リオスe-Shopさんでは2012/01/13発売と日付まで出ています。またリオスe-Shopさんでは2011/11/21から

キャンペーン期間中にご成約いただきますと、まずは英語版をお送りし、日本語版販売時に優先して、日本語版をお送りします。
(同じライセンス番号で動作しますので、日本語か英語のどちらかでご利用できます)
という「先行販売割引キャンペーン」(42,000円)をやっています。ちなみにこれはEnterprise Edition/Single license相当(Fast Reports Inc.から直接買えば349.00USD=27,000JPY)ですので、日本語に翻訳されていることに15,000円出せるかどうか、ということになるのかと。実際に仕事で使うなら許容範囲でしょうか。

2012/01/16追記: FastReport VCLの日本語版がリオスe-Shopで販売開始になっています。

レポーティングソリューション FastReport VCL | 製品概要
リオスe-Shop/商品一覧ページ

2012/01/18追記: 製品版のFastReportをインストールするためにバンドル版をアンインストールするとコンポーネントの登録が全て削除されるという不具合(QC102274)が報告されており、Team Japanに詳細と対応策が解説されています。

Team Japan » Delphi/C++Builder/RAD Studio XE2のUpdate3 で FastReportをアンインストールすると..

2011年12月16日

IDE Fix Pack 4.6リリース

Andreas HausladenさんIDE Fix Pack 2009/2010/XE/XE2がアップデートされてVersion 4.6になっています。

IDE Fix Pack 4.6 (supports XE2 Update 3) | Andy’s Blog and Tools

Delphi/C++Builder XE2 Update 3

かねてからの噂どおりDelphi/C++Builder XE2のUpdate 3がリリースされています。

28670 Update 3 for Delphi, C++Builder and RAD Studio XE2
Update 3 for Delphi XE2, C++Builder XE2 and RAD Studio XE2
XE2 Update 3 のリリース ノート - RAD Studio XE2 (en)
Delphi XE2/C++Builder XE2 Update 3 における不具合修正リスト (en)

Update 3ではTButtonのModalResultプロパティで使用するいくつかの値の定義が変更されています。またコンパイラ内の一部の構造体の変更に伴いAndreas HausladenさんIDE Fix Pack 2009/2010/XE/XE2 4.5が動作しなくなっています(既に4.6がリリースされています)。

TButtonのModalResultプロパティで使用する値の件はUpdate 3のリリースノートに明記されただけで、実際にはXE2 RTMにおける変更のようです(QC100283)。まずTButto.ModalResultの型はTModalResultですが、TModalResultは列挙型ではなく単に
  TModalResult = Low(Integer) .. High(Integer);

と実質的にIntegerであり、それぞれの値(mr...)は該当するボタンのID(ID_...)と同値で、XEおよびそれ以前ではControls.pasで、XE2ではSystem.UITypes.pasで定義されています。Update 3のリリースノートからリンクしているBob SwartさんのXE2 values of mrAll, mrNoToAll, mrYesToAll and mrCloseというアーティクルで詳しく考察されていますが、XEではmrCloseがmr...の最後(mrYesToAllの次)になるように定義されているのに対し、XE2ではmrHelp、mrTryAgain、mrContinueと共にmrNoの次になるように移動し、その後にmrAll、mrNoToAll、mrYesToAllとmrYesToAllが最後になるように定義が変更されています。さらにTModalResultは列挙型でないためdfm上は数値として記録されているため、XEまでのコード(フォームデータ)でModalResultにmrAll、mrNoToAll、mrYesToAll、mrClose(8~11)と設定していたものをXE2に取り込むとmrClose、mrHelp、mrTryAgain、mrContinueに変化してしまう、ということになります(あるいはソースを共用している場合は逆のことも起きます)。基本的にbreaking changeということであり、個別に対策するしかないのですが、上記のBob Swartさんのアーティクルにはこの問題を指摘してくれるScanDFMというツールがリンクされています。

2012/02/10追記: ModalResultの定義値の変更の件を補足しました。高橋さん、情報ありがとうございます。

2011年12月14日

2011年12月7日

Asphyre Sphinx 2

Delphi/C++Builder上で2D/3Dグラフィックスを扱うライブラリとして以前取り上げたAsphyre Sphinxですが、メジャーバージョンアップした2.0.0がリリースされています。

Asphyre Sphinx 2

Delphi XE2 Update 1に対応しており、Windows x86/x64およびMacOS X/iOS上のDirectX 7/DirectX 9/DirectX 10/DirectX 10.1/DirectX 11/OpenGLをサポートしています。ライセンスは以前と同じくMPL 1.1です。

またVer1も最新版は1.1.0となっており、Delphi 2006/Turbo Delphi/Delphi 2007に加えてDelphi XEにも対応しています。

Asphyre Sphinx

元ねたは2ちゃんねるのくだすれDelphi(超初心者用)その53の902

2011年12月1日

dbExpressのODBCドライバでPostgreSQLに接続

オープンソースのRDBとして日本では人気のPostgreSQL (日本PostgreSQLユーザ会)ですが、世界的に見るとあまり重要視されておらず、dbExpressでも以前からMySQLはサポートされています(Ent/Ult/Arc SKUのみ)がPostgreSQLは予定すらない、という状況でした。しかしDelphi XE2では(これもEnt/Ult/Arc SKUのみですが)dbExpressのODBCドライバが新しく追加されました。このdbExpressのODBCドライバを経由してPostgreSQLに接続する方法についてラテンアメリカ・カリブ地域担当プロダクトラインマネージャ・リードエバンジェリストのAndreano Lanusseさんが解説しています。興味深い。とりあえずメモ。

Connecting to PostgreSQL through dbExpress ODBC driver | Andreano Lanusse Blog | Technology and Software Development | C++Builder

ODBCデータソースアドミニストレータ(odbcad32.exe)でPostgreSQLのODBCドライバを指定したデータソースを作成しておいて、dbExpressのSQLConnectionのDriverNameに'ODBC'を、ParamsのDatabaseにそのデータソース名(DSN)を指定することで、Delphi/C++Builder-dbExpress-dbExpress ODBCドライバ-ODBC-PostgreSQL ODBCドライバ-PostgreSQLサーバという形で接続できる、ということのようです。なおx64環境ではODBCデータソースアドミニストレータ(odbcad32.exe)もx86、x64の両方が存在するので、クライアントのターゲットプラットフォームによって使い分ける必要があります。

日本語だと第20回 エンバカデロ・デベロッパーキャンプの【B4】 Delphi/C++Builderテクニカルセッション 「dbExpressとマルチプラットフォーム開発」プレゼンテーション資料あたりが参考になります。

2012/02/10追記: デベロッパーキャンプのプレゼンテーション資料のリンクを追記しました。高橋さん、情報ありがとうございます(遅くなりましたが)。

2011年11月30日

[書籍]プログラミングC# 第6版

MARUZEN&ジュンク堂書店 渋谷店Programming C# 4.0の翻訳である

プログラミングC# 第6版 (amazon)/Ian Griffiths、Matthew Adams、Jesse Liberty著/鈴木幸敏、首藤一幸、株式会社情報技研訳/オライリージャパン/ISBN978-4-87311-517-7/5,040円

を購入。

2011年11月28日

JVCL 3.45リリース

JVCL(JEDI Visual Component Library)がアップデートされてVersion 3.45(JCL Version 2.3.1)になっています。

JEDI VCL for Delphi - Browse /JVCL 3/JVCL 3.45 at SourceForge.net

またAndreas HausladenさんがコマンドラインコンパイラDCC32/DCC64が付属していないDelphi/C++Builder XE2 Starter SKUのためのコンパイル済バイナリのインストーラをCodeCentralにアップロードしています(上記のリリースバージョンそのものではなく、JCLはsvn revision 3634、JVCLはsvn revision 13184から作成したものとのことです)。

28636 Jedi Code Library 2.4.0.4198r3634 BinaryInstaller for XE2
28637 Jedi Visual Component Library 3.45r13184 BinaryInstaller for XE2

元ねたはUpdated JCL and JVCL Binary Installers for XE2 | Andy’s Blog and Tools

2011年11月22日

DORM (Delphi ORM)

Delphi XEの新機能の新しい(拡張された)RTTIと属性の利用方法として考えられるもののひとつとしてORM(Object-relational mapping)があります。新しいRTTIでクラスの持つプロパティと型情報を参照してデータベースとのマッピングに利用し、属性で個別の細かい制御を行う、というアイデアはわりと一般的なものかもしれません。実験的な実装はいくつかあるようですが、一応実用に耐えるレベルのもの、となるといまのところDaniele TetiさんによるDORM (Delphi ORM)ぐらいでしょうか。

DORM, the Delphi ORM

Delphi XE/XE2で使用可能で、対応データベースはいまのところdbExpress経由のFirebird (2.1+)またはInterBase (2009+)です。ライセンスはApache License 2.0 (en)となっています。

先日のITDevCon 2011のDaniele Tetiさんのセッションのプレゼンテーション資料

DORM, the Delphi ORM

が参考になります。

元ねたはwhile true do; » Blog Archive » dorm, “The Delphi ORM”, officially published at ITDevCon

2011年11月15日

AppWave評価ガイドビデオ

YouTubeのEmbarcaderoTechJapanチャンネルにAppWave評価ガイドのビデオがアップロードされています。興味深い。とりあえずメモ。

AppWave評価ガイド #1 - AppWaveのインストール - YouTube
AppWave評価ガイド #2 - AppWaveブラウザを使う - YouTube
AppWave評価ガイド #3 - AppWaveを管理する - YouTube
AppWave評価ガイド #4 - AppWaveアプリを作成する - YouTube
AppWave評価ガイド #5 - 既存のDelphiアプリケーションをアプリ化する - YouTube

ただしAppWaveを使用するとDelphi 2007の登録情報が破損するという情報がありますので、注意が必要です。以下tweetを引用。

http://twitter.com/#!/Tokcyu3/status/101190890642608128
AppWaveを使うとなにかのタイミングでDelphi2007の登録情報が飛んじゃうみたい。今のところ2回再登録した。ぐむむぅ…

http://twitter.com/#!/ht_deko/status/134647986130137089
先日 Delphi 2007 の再登録が必要になってしまった件は これが原因か。そういや確かに触ったよ AppWave。 RT @Tokcyu3 AppWaveを使うとなにかのタイミングでDelphi2007の登録情報が飛んじゃうみたい。今のところ2回再登録した。ぐむむぅ…

2011/11/18追記: Delphi 2007との相性の問題がQC101120として登録されています。

2011年11月11日

Generic collections library (delphi-coll)

Delphi 2009の新機能の一つにジェネリクスがあります。このジェネリクス機能を簡単に利用するためのジェネリクスクラスとして、Delphiには標準でGenerics.Collectionsユニットにが用意されています。しかしC++のSTL(Standard Template Library)のコンテナや.NET Frameworkのジェネリックコレクションに比べると必ずしも十分とはいえません。これを補うものとしてCiobanu AlexandruさんによるGeneric collections library (delphi-coll)というライブラリがあります。

delphi-coll - Generic collections library for Delphi 2010 and XE - Google Project Hosting

ライセンスは修正BSD (en)となっています。

delphi-collにはList、Queue、Stack、Set、Dictionary、Bag、MultiMap、BidiDictionary、BidiMapの各基本ジェネリクスクラスと、これらに対するObject、Linked、Sortedやその組み合わせなどにより修飾された多数のバリエーションがあります。詳細は

CollectionDetails - delphi-coll

を参照してください。またDelphi標準のジェネリクスクラスとの違いについては

DifferencesFromGenericsCollections - delphi-coll

に記述されています。なおdelphi-collをDelphi XE2で使用する場合は最新版(1.2)をSVNでチェックアウトする必要があるようです。またDelphi XE2 Update 2のコンパイラの変更により、一部のコードがエラーになる、という情報もありますので注意が必要です。

2011年11月10日

Prism XE2 Update 2

Prism XE2 Update 2がリリースされています。

28623 Embarcadero Prism XE2 Update 2 (October 2011 Release)
Embarcadero Prism XE2 Update 2 is now available
Embarcadero Prism XE2 Update 2 が公開されました

クラスヘルパ

クラスヘルパはDelphi 2007で導入された新機能で、クラスを継承することなく拡張するためのものです(Delphi 2007 HandbookにはDelphi 2007でDelphi 2006とのバイナリレベルでの互換性を確保するために導入された、とあります)。当初はクラスにしか適用できませんでしたが、Delphi 2010以降ではレコード型に対しても(レコードヘルパとして)適用することができます。しかしヘルパで定義したメソッドではpublicメンバにしかアクセスできないため、ある種のシンタックスシュガーのように考えればよいと思っていました。DelphiデベロッパチームシニアソフトウェアデベロッパのMat DeLongさんのこのアーティクルを読むまでは。

Mat DeLong : Gaining access to private fields of a class

これによると、private/protectedメンバであっても"Self."で修飾することでアクセスできる、と書かれています。なんですと?ということでDelphi 2007以降の各バージョンで確認してみました。
  • Delphi 2007: "Self."の有無に関わらずpublicのみアクセス可能
  • Delphi 2009: "Self."とすることでprivateはアクセスできるがなぜかprotectedはアクセス不可
  • Delphi 2010/XE/XE2: "Self."とすることでprivate/protectedもアクセス可能
Delphi 2010以降であればこの方法でより突っ込んだことができそうです。

またクラス ヘルパとレコード ヘルパ(Delphi)には

ただし、ソース コードの任意の場所で適用されるヘルパの数は、0 または 1 つだけです。
とあり、ひとつのクラスに複数のヘルパを適用することはできないのですが、ヘルパの構文として

type
  identifierName = class|record helper [(ancestor list)] for TypeIdentifierName
    memberList
  end;
とあり、継承したクラスヘルパを作成することで実質的に複数のヘルパを適用することができます。
type
  TFooHelper = class helper for TFoo
  public
    procedure Bar1;
  end;

  TFooHelperEx = class helper (TFooHelper) for TFoo
  public
    procedure Bar2;
  end;

var
  Foo: TFoo;
begin
  ...
  Foo.Bar1;  // TFooHelper.Bar1
  Foo.Bar2;  // TFooHelperEx.Bar2
  ...

こんな感じです。

2011年11月9日

RAD Studio/Delphi/C++Builder XE2 Update 2 Hotfix 1

RAD Studio/Delphi/C++Builder XE2 Update 2のHotfix 1がリリースされています。
  • QC100661 Update 2適用後にOSX用C++Builder FireMonkeyアプリケーションがリンカエラーになる
  • QC100640 OSX用C++Builder FireMonkeyアプリケーションでSTLコンテナがコンパイルエラーになる
の2点を修正するものです。

28622 HotFix 1 for Delphi, C++Builder and RAD Studio XE2

Microsoft Monthly Update 2011/11

今日はMicrosoftのセキュリティアップデートの日です。
MS11-083
MS11-084
MS11-085
MS11-086

2011年11月8日

Delphi XE2でWindows x86/x64に対応するShell Extentionを作成

Shell Extention (Windows Shell)はWindowsのシェルであるexplorer.exeから呼び出されるため、Windowsがx86版であればx86で、x64版であればx64でビルドする必要があります。ということでラテンアメリカ・カリブ地域担当プロダクトラインマネージャ・リードエバンジェリストのAndreano Lanusseさんによる、Delphi XE2を使って同一のソースコードからx86とx64の両方のShell Extentionを作成するサンプルです。興味深い。とりあえずメモ。

Shell Extension for Windows 32-bit and 64-bit with Delphi XE2 | Andreano Lanusse Blog | Technology and Software Development | Delphi

2011年11月7日

FastMM 4.99リリースとQC100726

Delphi/C++Builder用のメモリマネージャFastMMが4.99に更新されています。

これに関連し、FastMM 4.99で修正された不具合のうち、
- Fixed crashes in the 64-bit BASM codepath when more than 4GB of memory is allocated.
- Fixed bad record alignment under 64-bit that affected performance.
の2点がDelphi XE2 Update 2のx64用の標準メモリマネージャにも不具合として存在しており(QC100726)、FastMMのAdminであるPierre le Richeさんが非公式なfixをフォーラムに投稿しています。

Embarcadero Discussion Forums: ATTN: Piere le Riche / FastMM 4.99
Embarcadero Discussion Forums: Unofficial fix for QC#100726

なお上記の非公式fixを導入後に公式なアップデート(Update 3やHotfix for Update 2)を適用する場合は、修復セットアップやバックアップしたファイルのリストアによってこれらのファイルをインストール時のものに戻す必要があるものと思われますので注意が必要です。

ちなみにFastMMの次のバージョンは4.100になるそうです。

2011年11月3日

IDE Fix Pack 4.5リリース

Andreas HausladenさんIDE Fix Pack 2009/2010/XEがアップデートされてVersion 4.5になっています。なおIDE Fix Pack 2007については残念ながらdiscontinuedとのことです。

IDE Fix Pack 4.5 released for 2009/2010/XE/XE2+UP2 | Andy’s Blog and Tools

またDelphi XE2ではコンパイラの変更により一部のジェネリクスのコードがE2089でエラーになる、という報告がありますので注意が必要かもしれません。

2011/11/12追記: Delphi 2010にはリンカのバッファがリークしているという不具合があり、IDE Fix Packではそのバッファのサイズを拡張しているため、メモリリークの問題がより深刻になってしまいます。そこでこの問題を修正したIDE Fix Pack 4.51 for Delphi 2010がリリースされています。

IDE Fix Pack 4.51 for Delphi 2010 | Andy’s Blog and Tools

2011年11月2日

Delphi/C++Builder XE2 Update 2

Delphi/C++Builder XE2のUpdate 2がリリースされています。

28597 Update 2 for Delphi, C++Builder and RAD Studio XE2
28616 Delphi XE2 and C++Builder XE2 ISO (includes Update 2)
Delphi XE2/C++Builder XE2/RAD Studio XE2 Update 2 が公開されました
XE2 Update 2 のリリース ノート - RAD Studio XE2 (en)
Delphi XE2/C++Builder XE2 Update 2 における不具合修正リスト (en)
RAD Studio XE2 update 2 の PAServer、および FireMonkey-ios.dmg は何処にありますか?

ラテンアメリカ・カリブ地域担当プロダクトラインマネージャ・リードエバンジェリストのAndreano Lanusseさん

Update 2 for Delphi XE2, C++Builder XE2 and RadPHP XE2 available | Andreano Lanusse Blog | Technology and Software Development | C++Builder

によると、Windows XPでは"Check for Updtes"からではなくCodeCentralからUpdate 2をダウンロードしてインストールする必要があるようです。

インストール手順の補足:
  • delphicbuilder_xe2_upd2_win.exeを実行すると、展開する場所の指定などなしにいきなりファイルの展開が行われ、Update 2のsetup.exeが起動し、ファイルを展開した場所がエクスプローラで開きます。
  • Update 2の適用はかなり時間がかかります。
  • PAServerは展開されたファイルをインストール先("RAD Studio\9.0")のPAServerフォルダに上書きする必要があります(既にPAServerがインストールされている環境がある場合は、その環境上でアンインストール後に再インストールする必要もあります)。
  • FireMonkey-iOSも展開されたファイルをインストール先("RAD Studio\9.0")のFireMonkey-iOSフォルダに上書きする必要があります。またMac側にもコピーしてマウントし、FireMonkey-iOS-XE2を再インストールする必要があります。
  • Stylesはなぜか.Styleと.vsfが同一のフォルダに展開されてしまいますので、共有ドキュメント("C:\Users\Public\Documents"、Windows XP)またはパブリックドキュメント("C:\Users\Public\Documents"、Windows Vista/7)のRAD Studio\9.0\Stylesに、また再配布用にインストール先("%ProgramFiles%\Embarcadero\RAD Studio\9.0")のRedist\styles\Fmx(*.Style)およびRedist\styles\vcl(*.vsf)に、それぞれ上書きする必要があります。


2011/11/04追記: Stylesファイルに関する記述を修正しました。それから業務連絡の件、ありがとうございました>だれとなく。

RadPHP XE2 Update 2

RadPHP XE2 Update 2がリリースされています。

28614 RadPHP XE2 Update 2
RadPHP XE2 Update 2 が公開されました
RadPHP XE2 Update 2 is available now

2011年11月1日

RAD Studio/Delphi/C++Builder XE2 Help Update 1

RAD Studio/Delphi/C++Builder XE2のHelp Update 1がリリースされています。

28613 Help Update 1 for Delphi, C++Builder and RAD Studio XE2
リリース ノート: Delphi XE2 および C++Builder XE2 Help Update 1 - RAD Studio XE2 (en)
Masahiro Arai » Now RAD Studio XE2 help update 1 is available

新井さんはドキュメンテーション/ローカライゼーションマネージャになられたんですね。

Help Update 1にはFireMonkey関係のコンテンツがある程度含まれているようです。

FireMonkey アーキテクチャ図 - RAD Studio XE2
FMX Units List - XE2 API Documentation

2011/11開催のウェブセミナー


2011/11/14追記: 関連リンクを追加しました。

2011/11/16追記: 2011/11/30の"RadPHP XE2によるモバイルアプリ開発"のリンクを追加しました。

2011/11/22追記: 2011/11/16のリプレイビデオのリンクを追加しました。

2011/11/30追記: 2011/11/30のQ&Aに関するリンクを追加しました。

2011/12/05追記: 2011/11/30のフォローアップのリンクを追加しました。

2011/12/13追記: 2011/11/30の関連リンク、リプレイビデオのリンクを追加しました。

2011年10月19日

CodeRage 6 Day 2

CodeRage 6の2日目(2011/10/18)のセッションに関するリンクです。

リプレイビデオ(CodeCentral)

2011年10月18日

CodeRage 6 Day 1

日本時間の昨日(2011/10/17)の夜からCodeRage 6が始まっています。ということでCodeRage 6の1日目(2011/10/17)のセッションに関するリンクです。

リプレイビデオ(CodeCentral)

セッションタイトルのてきとうな訳とキーワードは勝手につけたものです。

2011年10月13日

デニス・リッチー死去

Unixの開発者の一人であり、C言語の開発者(K&RのR)でもあるデニス・リッチー先生(en)が死去したというニュースが入ってきました。どこかのヤマ師とは違って、この人がいなければ現在のコンピュータのOSもコンピュータ言語も全く異なるものになっていたに違いない、本当の"スーパースター"の一人でした。

Dennis Ritchie, 1941-2011: Computer scientist, Unix co-creator, C programming language co-inventor – Boing Boing

BBC News - Unix creator Dennis Ritchie dies aged 70

2011年10月12日

Microsoft Monthly Update 2011/10

今日はMicrosoftのセキュリティアップデートの日です。
MS11-075
MS11-076
MS11-077
MS11-078
MS11-079
MS11-080
MS11-081
MS11-082

2011年10月11日

QC Plus 1.2.1リリース

しばらく前に紹介した、QC(QualityCentral)の代替クライアントであるJED SoftwareQC PlusのVersion 1.2.1がリリースされています。

QC Plus download page

元ねたはJED Software BlogQC Plus 1.2 now availableQC Plus 1.2.1.x now available

2011年10月8日

Prism XE2 Update 1

Prism XE2 Update 1がリリースされています。

28526 Embarcadero Prism XE2 Update 1 (September 2011 Release)
Embarcadero Prism XE2 Update 1 (September 2011 Release) がリリースされました
Embarcadero Prism XE2 Update 1 (September 2011 Release) now available

2011/10/08追記: PrismはRemObjectsとの関係からか、ややこしいことになっています。

Embarcadero Prism XE2 へのアップグレードとアップデートの取得

2011/10/11追記: エンバカデロの米澤さんによると表現はややこしいものの、基本的には他の製品と同様にメンテナンス契約に入っていればメジャーバージョンアップを受けられ、入っていなければ通常のアップデートのみを受けられる、ということだそうです。以下tweetを引用。

http://twitter.com/#!/CYonezawa/status/123666153968115712
なんかややこしい言い方ですみませぬ。新機能アップデートというのは、メジャーバージョンとかのアップグレード(XE→XE2)を示し、メンテナンス契約を結んでいる方のみとなります。XEを持っていてメンテナンス契約しているのであればXE2が自動的に手に入ります

http://twitter.com/#!/CYonezawa/status/123666555342036992
で、バグ修正版アップデートは通常のUpdate1とかを示します。これは、その製品の登録(使用許諾)している方であれば入手できます。

http://twitter.com/#!/CYonezawa/status/123667147481288704
リンク先に行くとお分かりになるかと思いますが、ダウンロード可能なリストが一覧で表示されます。たとえばメンテナンス契約していないXEユーザーがリスト上に表示されているXE2を入手することはできません。

http://twitter.com/#!/CYonezawa/status/123668010346094592
そんなこんなでダウンロードのリンク先は1つだけになっているのでありました。<(_"_)>

http://twitter.com/#!/CYonezawa/status/123681204028448769
次のXE3(?)とかのメジャーバージョンアップまで見据えた文ということでww

2011年10月7日

Firebird Wiki復活

2011/06頃に消滅してしまったFirebird Wikiをtomokiwaさんが復活させてくださっています。

Firebird Wiki

現在旧wikiのコンテンツの復元中とのことです。

2011年10月6日

RadPHP XE2 Update 1

RadPHP XE2 Update 1がリリースされています。

28525 RadPHP XE2 Update 1
RadPHP XE2 Update 1 がリリースされました
RadPHP XE2 Update 1 is available now

またRPCL(RadPHP Component Library)のRevison 298もリリースされているのであわせてアップデートをお勧めします。

Team Japan » RadPHP XE2 Update 1 - RPCLの最新版 Revision 298 も
SourceForge.net Repository - [rpcl] Revision 298

2011年10月5日

[書籍]プログラミングの魔導書 ~Programmers’ Grimoire~ vol.2

プログラミングの魔導書 ~Programmers’ Grimoire~ vol.2が発売されてPDF版のダウンロードが可能になりました。

プログラミングの魔導書 ~Programmers’ Grimoire~ vol.2/ロングゲート/ISBN978-4-9905296-2-8(書籍版)、ISBN978-4-9905296-3-5(PDF版)/2,000円(書籍版)、1,500円(PDF版)

書籍版の予約は昨日(2011/10/04)で終了しており、現時点ではPDF版のみ購入可能です(書籍版の発送は2011/10/19以降順次とのこと)。

次号vol.3は"Parallel, Concurrent, and Distributed Programming"(並行、並列、分散プログラミング)とのことです。

2011/10/10追記: 書籍版が届きました。

2011年10月4日

InterBase 7.1のアンインストールで発生する問題とその解決方法

InterBase 7.1をアンインストールするときに発生する問題とその解決方法。2回連続現場ではめられたのでメモ。
  • 前提条件
    InterBase 7.1に関する Q & Aにあるように、Java VM 1.3.1または1.4がインストールされている必要がある。古いJREはOracle Java Archiveからダウンロードできる。

  • アンインストーラがフリーズする
    FlexeraのKBによると原因は

    1. ディスクの空きが足りない
    2. アンチウィルスソフトウェアかPCAnywhereが動作している
    3. Dell OpenManagerが動作している
    4. ビデオカード/ドライバとの相性
    5. ディスプレイのハードウェアアクセラレーションとの相性

    ということなので、

    1. システムドライブの空き容量を確認する
    2. アンチウィルスソフトウェアやPCAnywhereがインストールされていたら停止する
    3. DellのPCでOpenManagerが動作していたら停止する
    4. アンインストーラの実行ファイルと同じ場所(InterBaseのインストール先のUninstallerDataフォルダ)にある"Uninstall InterBase 7.1 .lax"に
      lax.nl.java.option.additional=-Dsun.java2d.d3d=false -Dsun.java2d.noddraw=true
      を追加する
    5. ディスプレイのハードウェアアクセラレーションを無効にする

    ことで回避することができる(らしい)。

  • アンインストーラが"Windows エラー 3"でエラーになる
    同じくFlexeraのKBによればアンインストーラが対応していないJVM (1.)6以降を使用してしまうのが原因のようで、コマンドプロンプトでアンインストーラのある場所(InterBaseのインストール先のUninstallerDataフォルダ)に移動しておいて、
    "Uninstall InterBase 7.1 .exe" LAX_VM "C:\Program Files\Java\j2re1.4.2_19\bin\java.exe"
    と、パラメータに"LAX_VM"(すべて大文字で)およびjava.exeの絶対パスを指定することで使用するJVMを明示的に指定できる。この場合"コントロールパネル"の"プログラムと機能"あるいは"プログラムの追加と削除"の一覧からInterBaseが削除されないので注意(改めてアンインストールしようとするとアンインストーラが見つからないので一覧から削除するかどうか確認されるので削除するを選択すればよい)。

ちなみにいずれもInterBaseそのものが悪いわけではなく、InstallAnywhereがJava(JRE)の環境を正しく認識して処理できないのが原因。

2011年9月30日

Firebird 2.5.1リリース

Firebird Ver2.5.1がリリースされています。

Firebird: Firebird 2.5.1
Firebird 2.5 Release Notes (PDF)

元ねたはFirebird News » Firebird 2.5.1 is released

2011/10/04追記: 正式にアナウンスされています。どうやらフライングだったようですね。

Firebird: Firebird 2.5.1 (sub-release) is available
Firebird News » Firebird 2.5.1 is released

2011年9月29日

デバッガビジュアライザ

Delphi 2010以降のIDEにはデバッガビジュアライザという機能が追加されています。これは従来デバッガ上の値の評価時に適切に表示できなかったいくつかのデータ型(TDateTime/TStringList/std::string/std::wstring)の値をわかりやすい形式で表示させるもので、詳細についてはプロダクトマーケティングマネージャのTim Del ChiaroさんJED SoftwareJeremy Northさん

Delphi 2010 Feature Highlight - Debugger Visualizers

で解説しています(オリジナルの記事はBlaise Pascal Magazine Special Issueに掲載されています)。この記事にあるようにデバッガビジュアライザはIDE Expert(.bpl)としてユーザが任意に作成することができます。

標準以外のデバッガビジュアライザの実装ですが、ITDevCon 2009でのMitov SoftwareのBoian MitovさんによるTBitmapのビジュアライザのデモンストレーションについて、エンバカデロのシニアソフトウェアコンサルタントでヨーロッパ地域担当Delphi/RAD StudioリードテクニカルエバンジェリストのPawel Glowackiさん

Paweł Głowacki : Boian’s TBitmap Visualizer and converting to grayscale

で紹介しています。

また標準のTStringListのビジュアライザにはデータが4096文字で切り捨てられたり処理が遅いなどの問題があり、これを置き換えるビジュアライザをUwe Schusterさんが作成しています。

TStringList Visualizer revised (2010, XE, XE2) | Uwe's Delphi blog

さらに各種形式のグラフィック(BMP/JPEG/GIF/PNG/ICO/WMF/EMF/TIFF/WMP)に対応するビジュアライザとしてCodeCentralにahmoy lawさん(CnPack関係の人でしょうか)によるImage Visualizerもアップロードされています。

27674 Image Visualizer 1.10 for Delphi

2011/09/30追記: benokさんからEDNのDelphi 2010 Feature Highlight - Debugger Visualizersの著者はJeremy Northさんだという指摘がありましたので訂正しました。ご指摘ありがとうございます。

2011年9月28日

Delphi/C++Builder XE2 Update 1

Delphi/C++Builder XE2のUpdate 1がリリースされています。

28508 RAD Studio XE2 Update 1
28509 Delphi XE2 Update 1
28510 C++Builder XE2 Update 1
28477 Delphi XE2 and C++Builder XE2 ISO (includes Update 1)
Delphi XE2 および C++Builder XE2 の重要な製品アップデート
Delphi XE2/C++Builder XE2 Update 1 における不具合修正リスト (en)

XE2 RTM版にはFireMonkey 3DにGLScene(MPL)のコードが含まれていることがライセンス上問題であるという指摘があり、Update 1ではGLScene由来のコードが排除されています。このため一旦XE2 RTMをアンインストールし、ダウンロードキャッシュ(通常は"%USERPROFILE%\Documents\Rad_Studio_XE2_Downloads"に保存されています)も完全に削除した上でUpdate 1をインストールする必要があるとのことです。詳細については

XE2 Update 1 をインストールしてください - XE2 のリリース ノート - RAD Studio XE2 (en)

に説明があります(日本語版はまだ準備中)

2011/10/04追記: 日本語版のリリースノートにUpdate 1に関する記述が追加されたのでリンクを追加しました。

2011年9月22日

Delphi XE2で生成される実行ファイルのバージョン情報についての問題とその解決策

というわけで、Delphi XE2では実行ファイルにバージョン情報がうまく設定されない、という問題があるようです。

Embarcadero Discussion Forums: XE2で、バージョンリソースの作成に問題があるようです
バージョン情報の問題 - au2010の日記

そこでまずVCLフォームアプリケーションを作成し、プロジェクトオプションのバージョン情報でターゲットを"すべての構成 - すべてのプラットフォーム"を選択しておいて、バージョン情報を設定します。これでプログラムをビルドしてProject1.exeのバージョン情報を見てみます。…ファイルバージョンが1.0.0.0、言語が英語(米国)(0x0409)、製品バージョンが1.0.0.0となり、これ以外の情報は反映されていません。どういうことでしょう?そこでProject1.dprojの内容を見てみます。

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{AAD95BEF-E352-48D7-8BA1-FBC01F8BEC0D}</ProjectGuid>
<ProjectVersion>13.4</ProjectVersion>
<FrameworkType>VCL</FrameworkType>
<MainSource>Project1.dpr</MainSource>
<Base>True</Base>
<Config Condition="'$(Config)'==''">Debug</Config>
<Platform Condition="'$(Platform)'==''">Win32</Platform>
<TargetedPlatforms>1</TargetedPlatforms>
<AppType>Application</AppType>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
<Base_Win64>true</Base_Win64>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
<Base_Win32>true</Base_Win32>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
<Cfg_1>true</Cfg_1>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
<Cfg_1_Win32>true</Cfg_1_Win32>
<CfgParent>Cfg_1</CfgParent>
<Cfg_1>true</Cfg_1>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
<Cfg_2>true</Cfg_2>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''">
<Cfg_2_Win32>true</Cfg_2_Win32>
<CfgParent>Cfg_2</CfgParent>
<Cfg_2>true</Cfg_2>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="'$(Base)'!=''">
<DCC_UsePackage>bindcompfmx;fmx;rtl;dbrtl;IndySystem;DbxClientDriver;bindcomp;inetdb;DBXInterBaseDriver;xmlrtl;DbxCommonDriver;IndyProtocols;DBXMySQLDriver;dbxcds;soaprtl;bindengine;dsnap;IndyCore;fmxase;inet;fmxobj;inetdbxpress;fmxdae;dbexpress;$(DCC_UsePackage)</DCC_UsePackage>
<VerInfo_Build>4</VerInfo_Build>
<Manifest_File>None</Manifest_File>
<VerInfo_Keys>CompanyName=Owl's Perspective;FileDescription=プログラムの説明;FileVersion=1.2.3.4;InternalName=Project1.exe;LegalCopyright=;LegalTrademarks=Copyright 2011 Owl's Perspective. All rights reserved.;OriginalFilename=Project1.exe;ProductName=Project1;ProductVersion=2.3;Comments=コメント</VerInfo_Keys>
<Icon_MainIcon>c:\program files\embarcadero\rad studio\9.0\bin\delphi_PROJECTICON.ico</Icon_MainIcon>
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)</DCC_Namespace>
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<VerInfo_MinorVer>2</VerInfo_MinorVer>
<VerInfo_Release>3</VerInfo_Release>
<VerInfo_Locale>1041</VerInfo_Locale>
<DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
<DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>
<DCC_E>false</DCC_E>
<DCC_N>false</DCC_N>
<DCC_S>false</DCC_S>
<DCC_F>false</DCC_F>
<DCC_K>false</DCC_K>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_Win64)'!=''">
<DCC_UsePackage>AppBar230;vclimg;vclactnband;vcldb;bindcompvcl;vcldsnap;vclie;vcltouch;websnap;VclSmp;vcl;dsnapcon;vclx;webdsnap;$(DCC_UsePackage)</DCC_UsePackage>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_Win32)'!=''">
<DCC_UsePackage>vcldbx;frx16;TeeDB;vclib;inetdbbde;Tee;AppBar230;svnui;ibxpress;vclimg;TtsAudgr230;frxDB16;intrawebdb_120_160;fmi;fs16;vclactnband;FMXTee;TeeUI;vcldb;bindcompvcl;vcldsnap;vclie;vcltouch;Intraweb_120_160;websnap;vclribbon;frxe16;VclSmp;fsDB16;vcl;CloudService;CodeSiteExpressPkg;FmxTeeUI;dsnapcon;vclx;webdsnap;svn;bdertl;adortl;$(DCC_UsePackage)</DCC_UsePackage>
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
<VerInfo_Locale>1033</VerInfo_Locale>
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_1)'!=''">
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
<DCC_Optimize>false</DCC_Optimize>
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
<DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
<DCC_RemoteDebug>true</DCC_RemoteDebug>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
<VerInfo_Locale>1033</VerInfo_Locale>
<DCC_RemoteDebug>false</DCC_RemoteDebug>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_2)'!=''">
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
<DCC_DebugInformation>false</DCC_DebugInformation>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
<VerInfo_Locale>1033</VerInfo_Locale>
</PropertyGroup>
<ItemGroup>
<DelphiCompile Include="$(MainSource)">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="Unit1.pas">
<Form>Form1</Form>
<FormType>dfm</FormType>
</DCCReference>
<BuildConfiguration Include="Release">
<Key>Cfg_2</Key>
<CfgParent>Base</CfgParent>
</BuildConfiguration>
<BuildConfiguration Include="Base">
<Key>Base</Key>
</BuildConfiguration>
<BuildConfiguration Include="Debug">
<Key>Cfg_1</Key>
<CfgParent>Base</CfgParent>
</BuildConfiguration>
</ItemGroup>
<ProjectExtensions>
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
<Borland.ProjectType/>
<BorlandProject>
<Delphi.Personality>
<VersionInfo>
<VersionInfo Name="IncludeVerInfo">False</VersionInfo>
<VersionInfo Name="AutoIncBuild">False</VersionInfo>
<VersionInfo Name="MajorVer">1</VersionInfo>
<VersionInfo Name="MinorVer">0</VersionInfo>
<VersionInfo Name="Release">0</VersionInfo>
<VersionInfo Name="Build">0</VersionInfo>
<VersionInfo Name="Debug">False</VersionInfo>
<VersionInfo Name="PreRelease">False</VersionInfo>
<VersionInfo Name="Special">False</VersionInfo>
<VersionInfo Name="Private">False</VersionInfo>
<VersionInfo Name="DLL">False</VersionInfo>
<VersionInfo Name="Locale">1041</VersionInfo>
<VersionInfo Name="CodePage">932</VersionInfo>
</VersionInfo>
<VersionInfoKeys>
<VersionInfoKeys Name="CompanyName"/>
<VersionInfoKeys Name="FileDescription"/>
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
<VersionInfoKeys Name="InternalName"/>
<VersionInfoKeys Name="LegalCopyright"/>
<VersionInfoKeys Name="LegalTrademarks"/>
<VersionInfoKeys Name="OriginalFilename"/>
<VersionInfoKeys Name="ProductName"/>
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
<VersionInfoKeys Name="Comments"/>
</VersionInfoKeys>

<Source>
<Source Name="MainSource">Project1.dpr</Source>
</Source>
<Excluded_Packages>
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k160.bpl">Microsoft Office 2000 オートメーション サーバー ラッパー コンポーネントのサンプル</Excluded_Packages>
<Excluded_Packages Name="$(BDSBIN)\dclofficexp160.bpl">Microsoft Office XP オートメーション サーバー ラッパー コンポーネントのサンプル</Excluded_Packages>
</Excluded_Packages>
</Delphi.Personality>
<Deployment/>
<Platforms>
<Platform value="Win64">False</Platform>
<Platform value="Win32">True</Platform>
</Platforms>
</BorlandProject>
<ProjectFileVersion>12</ProjectFileVersion>
</ProjectExtensions>
<Import Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')" Project="$(BDS)\Bin\CodeGear.Delphi.Targets"/>
<Import Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj"/>
</Project>

これをよく見ると気になる点が2つあります。
  1. ターゲット"すべての構成 - すべてのプラットフォーム"に相当する<PropertyGroup Condition="'$(Base)'!=''">の部分にバージョン情報であるVerInfo_KeyとVerInfo_Localeがあるのに、個別のターゲットに相当する<PropertyGroup Condition="'$(Base_Win32)'!=''">などにも設定した覚えのないバージョン情報が入っている。
  2. Delphi XEまで使用していた<Delphi.Personality>の<VersionInfo>、<VersionInfoKeys>が無視されている。

個別のターゲットの部分に設定していない情報が入っていることに関しては、プロジェクトオプションダイアログのバージョン情報ページでターゲットを変更すると表示されるものや実際に生成される実行ファイルのバージョン情報と一致していますね。ということで個別のターゲットの部分に入っているVerInfo_KeyとVerInfo_Localeを削除します(プロジェクトを閉じた状態でProject1.dprojを書き換えます)。


<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{AAD95BEF-E352-48D7-8BA1-FBC01F8BEC0D}</ProjectGuid>
<ProjectVersion>13.4</ProjectVersion>
<FrameworkType>VCL</FrameworkType>
<MainSource>Project1.dpr</MainSource>
<Base>True</Base>
<Config Condition="'$(Config)'==''">Debug</Config>
<Platform Condition="'$(Platform)'==''">Win32</Platform>
<TargetedPlatforms>1</TargetedPlatforms>
<AppType>Application</AppType>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
<Base_Win64>true</Base_Win64>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
<Base_Win32>true</Base_Win32>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
<Cfg_1>true</Cfg_1>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
<Cfg_1_Win32>true</Cfg_1_Win32>
<CfgParent>Cfg_1</CfgParent>
<Cfg_1>true</Cfg_1>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
<Cfg_2>true</Cfg_2>
<CfgParent>Base</CfgParent>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''">
<Cfg_2_Win32>true</Cfg_2_Win32>
<CfgParent>Cfg_2</CfgParent>
<Cfg_2>true</Cfg_2>
<Base>true</Base>
</PropertyGroup>
<PropertyGroup Condition="'$(Base)'!=''">
<DCC_UsePackage>bindcompfmx;fmx;rtl;dbrtl;IndySystem;DbxClientDriver;bindcomp;inetdb;DBXInterBaseDriver;xmlrtl;DbxCommonDriver;IndyProtocols;DBXMySQLDriver;dbxcds;soaprtl;bindengine;dsnap;IndyCore;fmxase;inet;fmxobj;inetdbxpress;fmxdae;dbexpress;$(DCC_UsePackage)</DCC_UsePackage>
<VerInfo_Build>4</VerInfo_Build>
<Manifest_File>None</Manifest_File>
<VerInfo_Keys>CompanyName=Owl's Perspective;FileDescription=プログラムの説明;FileVersion=1.2.3.4;InternalName=Project1.exe;LegalCopyright=;LegalTrademarks=Copyright 2011 Owl's Perspective. All rights reserved.;OriginalFilename=Project1.exe;ProductName=Project1;ProductVersion=2.3;Comments=コメント</VerInfo_Keys>
<Icon_MainIcon>c:\program files\embarcadero\rad studio\9.0\bin\delphi_PROJECTICON.ico</Icon_MainIcon>
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)</DCC_Namespace>
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<VerInfo_MinorVer>2</VerInfo_MinorVer>
<VerInfo_Release>3</VerInfo_Release>
<VerInfo_Locale>1041</VerInfo_Locale>
<DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
<DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>
<DCC_E>false</DCC_E>
<DCC_N>false</DCC_N>
<DCC_S>false</DCC_S>
<DCC_F>false</DCC_F>
<DCC_K>false</DCC_K>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_Win64)'!=''">
<DCC_UsePackage>AppBar230;vclimg;vclactnband;vcldb;bindcompvcl;vcldsnap;vclie;vcltouch;websnap;VclSmp;vcl;dsnapcon;vclx;webdsnap;$(DCC_UsePackage)</DCC_UsePackage>
</PropertyGroup>
<PropertyGroup Condition="'$(Base_Win32)'!=''">
<DCC_UsePackage>vcldbx;frx16;TeeDB;vclib;inetdbbde;Tee;AppBar230;svnui;ibxpress;vclimg;TtsAudgr230;frxDB16;intrawebdb_120_160;fmi;fs16;vclactnband;FMXTee;TeeUI;vcldb;bindcompvcl;vcldsnap;vclie;vcltouch;Intraweb_120_160;websnap;vclribbon;frxe16;VclSmp;fsDB16;vcl;CloudService;CodeSiteExpressPkg;FmxTeeUI;dsnapcon;vclx;webdsnap;svn;bdertl;adortl;$(DCC_UsePackage)</DCC_UsePackage>
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_1)'!=''">
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
<DCC_Optimize>false</DCC_Optimize>
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
<DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
<DCC_RemoteDebug>true</DCC_RemoteDebug>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
<DCC_RemoteDebug>false</DCC_RemoteDebug>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_2)'!=''">
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
<DCC_DebugInformation>false</DCC_DebugInformation>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
</PropertyGroup>
<ItemGroup>
<DelphiCompile Include="$(MainSource)">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="Unit1.pas">
<Form>Form1</Form>
<FormType>dfm</FormType>
</DCCReference>
<BuildConfiguration Include="Release">
<Key>Cfg_2</Key>
<CfgParent>Base</CfgParent>
</BuildConfiguration>
<BuildConfiguration Include="Base">
<Key>Base</Key>
</BuildConfiguration>
<BuildConfiguration Include="Debug">
<Key>Cfg_1</Key>
<CfgParent>Base</CfgParent>
</BuildConfiguration>
</ItemGroup>
<ProjectExtensions>
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
<Borland.ProjectType/>
<BorlandProject>
<Delphi.Personality>
<VersionInfo>
<VersionInfo Name="IncludeVerInfo">False</VersionInfo>
<VersionInfo Name="AutoIncBuild">False</VersionInfo>
<VersionInfo Name="MajorVer">1</VersionInfo>
<VersionInfo Name="MinorVer">0</VersionInfo>
<VersionInfo Name="Release">0</VersionInfo>
<VersionInfo Name="Build">0</VersionInfo>
<VersionInfo Name="Debug">False</VersionInfo>
<VersionInfo Name="PreRelease">False</VersionInfo>
<VersionInfo Name="Special">False</VersionInfo>
<VersionInfo Name="Private">False</VersionInfo>
<VersionInfo Name="DLL">False</VersionInfo>
<VersionInfo Name="Locale">1041</VersionInfo>
<VersionInfo Name="CodePage">932</VersionInfo>
</VersionInfo>
<VersionInfoKeys>
<VersionInfoKeys Name="CompanyName"/>
<VersionInfoKeys Name="FileDescription"/>
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
<VersionInfoKeys Name="InternalName"/>
<VersionInfoKeys Name="LegalCopyright"/>
<VersionInfoKeys Name="LegalTrademarks"/>
<VersionInfoKeys Name="OriginalFilename"/>
<VersionInfoKeys Name="ProductName"/>
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
<VersionInfoKeys Name="Comments"/>
</VersionInfoKeys>
<Source>
<Source Name="MainSource">Project1.dpr</Source>
</Source>
<Excluded_Packages>
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k160.bpl">Microsoft Office 2000 オートメーション サーバー ラッパー コンポーネントのサンプル</Excluded_Packages>
<Excluded_Packages Name="$(BDSBIN)\dclofficexp160.bpl">Microsoft Office XP オートメーション サーバー ラッパー コンポーネントのサンプル</Excluded_Packages>
</Excluded_Packages>
</Delphi.Personality>
<Deployment/>
<Platforms>
<Platform value="Win64">False</Platform>
<Platform value="Win32">True</Platform>
</Platforms>
</BorlandProject>
<ProjectFileVersion>12</ProjectFileVersion>
</ProjectExtensions>
<Import Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')" Project="$(BDS)\Bin\CodeGear.Delphi.Targets"/>
<Import Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj"/>
</Project>

これでプロジェクトを開きなおしてコンパイルしてみましょう。今度は設定したバージョン情報が正しく格納されていますね。ということでこの問題はXE2でバージョン情報の設定をターゲット毎に設定できるように仕様を変更したことによる不具合だと考えられます。また直接dprojファイルの不要な部分を削除することで回避できる、ということになります。

参考: DEKOさんのところの11/09/22 バージョン情報の件 (XE2)。構成毎の設定が必要な場合について解説されています。

2011年9月21日

Delphi/C++Builder XE2におけるパッケージ作成時の注意点

Delphi/C++Builder XE2でパッケージを作るときに注意すると幸せになれるかもしれないけれどもあんまり参考にならないポイントを3つほど。
  • 出力ディレクトリ
    "プロジェクトオプション"の"Delphiコンパイラ"ページで"ユニットの出力ディレクトリ"を変更してもコンパイル時にデフォルトの出力ディレクトリ([WIN32][WIN64]\[DEBUG][RELEASE])が作成されてしまいます。これは.dprojファイル(xml形式)のDCC_ExeOutputにデフォルトのDCC_DcuOutputの内容が残っているためで、これをDCC_DcuOutputと同じ内容に書き換えることで回避することができます。
  • デザインパッケージ
    設計時パッケージでコンポーネントのプロパティエディタなどを作成した場合、デザインパッケージ"DesignIDE"が必要になりますが、単純にRequiresに追加してしまうとx64にはDesignIDEが存在しないためにx64版のコンパイルでエラーになってしまいます。この場合は"プロジェクトオプション"のターゲットで"すべての構成 - 32ビット Windows プラットフォーム"を選択し、"Delphiコンパイラ"の"コンパイル"ページの"コンパイラに渡す追加オプション"に"-LUDesignIDE"を追加することで回避することができます。
  • バージョン情報
    プロジェクトオプションでバージョン情報を追加してもターゲット構成(WIN32/WIN64/OS X/Debug/Release)毎にデフォルトの指定が残ってしまい、パッケージに正しいバージョン情報をつけることができません(もちろん全てのプロファイルに同じ内容を設定すればよいのですが)。これは.dprojファイルの構成毎の設定のところに不適切なVerInfo_LocaleとVerInfo_Keysの値が入ってしまっているためで、ベース構成以外のVerInfo_LocaleとVerInfo_Keysの要素を削除することで回避することができます。

ちなみに.dprojファイルのバージョン情報に関する設定の格納方法がXE2で変更になったようで、従来は"\Project\ProjectExtensions\BorlandProject\Delphi.Personality"のVersionInfoとVersionInfoKeysにバージョン情報の設定が存在しますが、XE2ではこの位置にある設定を無視して"\Project\PropertyGroup"のベース構成(CONDITION="'$(Base)'!=''")のVerInfo_*を使用するようです。XE2でバージョン情報関係の不具合が報告されているようですが、これらの仕様変更と関係があるような気がします(次回に続く)。

InterBase XE Update 3リリース

InterBase XE Update 3がリリースされています。バージョンは10.0.3.566となっています。

InterBase XE Update 3 Readme (日本語)
InterBase XE Update 3 Readme
Team Japan » InterBase XE Update 3 (10.0.3.566) の日本語版
InterBase XE Update 3 での IBCosole の機能強化
IBConsole enhancements in InterBase XE Update 3

28531 InterBase XE 32-bit Update 3 (10.0.3.566) for Windows, Japanese
28490 InterBase XE 32-bit Update 3 (10.0.3.566) for Windows, English
28532 InterBase XE 64-bit Update 3 (10.0.3.566) for Windows, Japanese
28491 InterBase XE 64-bit Update 3 (10.0.3.566) for Windows, English
28493 InterBase XE Update 3 (10.0.3.566) 32-bit ToGo Edition, Windows, English
28495 InterBase XE Update 3 (10.0.3.566) 64-bit ToGo Edition, Windows, English
28533 InterBase XE Update 3 (10.0.3.566) for Linux, Japanese
28500 InterBase XE Update 3 (10.0.3.566) for Linux, English
28501 InterBase XE Update 3 (10.0.3.566) for Mac OS X, English

28529 InterBase XE (10.0.3.566) 32-bit Developer Edition for Windows, Japanese
28502 InterBase XE (10.0.3.566) 32-bit Developer Edition for Windows, English
28527 InterBase XE (10.0.3.566) 64-bit Developer Edition for Windows, Japanese
28503 InterBase XE (10.0.3.566) 64-bit Developer Edition for Windows, English
28535 InterBase XE (10.0.3.566) 32-bit Developer Edition, Linux, Japanese
28504 InterBase XE (10.0.3.566) 32-bit Developer Edition, Linux, English
28505 InterBase XE (10.0.3.566) 32-bit Developer Edition, Mac OS X, English

2011/10/08追記: 日本語版のUpdate 3がリリースされたのでリンクを追加しました。

2011/10/09追記: Team Japanのアーティクルのリンクを追加しました。

2011/10/18追記: "IBConsole enhancements in InterBase XE Update 3"のリンクを追加しました。

2011/11/14追記: "InterBase XE Update 3 での IBCosole の機能強化"のリンクを追加しました。

2011年9月20日

TStopwatchその2

時間がだいぶ経ってしまったのですが、TStopwatchに関するアーティクル
経過時間を示すElapsed/ElapsedMilliseconds/ElapsedTicksプロパティはStopメソッドで停止した状態でないと更新された値を取得できない。
という記述について、山本さんほかから停止状態じゃなくても正しい値が取れるのでは?(意訳)という指摘がありました。そこでDelphi 2010/XE/XE2で実装を確認してみましたが、確かにどのバージョンでも停止状態になくても特に問題なく正しい値を取得できるようです。またDiagnostics.TStopWatchの元ねたである本家.NET FrameworkのSystem.Diagnostics.Stopwatch.Elapsedでもやはり状態に関わらず適切な値を取得できるという記述になっています。ということでElapsed/ElapsedMilliseconds/ElapsedTicksプロパティは動作状態にかかわらず正しい値を取得できる(=ヘルプの記述が正しくない)、と考えてよさそうです。ではこのヘルプの記述(わざわざ注記してある内容が正しくない)はどこからきたのでしょう?いろいろ調べてみると、これはどうもdelphi.about.comのZarko Gajicさんの

High Performance Timer in Delphi - TStopWatch - High-Resolution Counter

という記事にある実装がDelphiにおけるTStopWatchの最初のもので、この実装では停止状態でしか正しい値を取得できないことに由来するのではないかと思われます。その後(おそらくVCLに取り込まれた後に).NET FrameworkのSystem.Diagnosticsに合わせて停止状態でも正しい値が取得できるように仕様が変更されたときにヘルプを修正し忘れた、ということではないでしょうか。

ということで大変遅くなりましたが元記事のほうも記述を修正しておきました。山本さんほか指摘していただいた方(確か全力わはーの中の人がtweetしてたような…?違ったらすいません)、2ちゃんねるでツッコミいれてくれた方、ありがとうございます。

2011年9月19日

RAD Studio/Delphi XE2ユーザ向Delphi Developer Certification無償キャンペーン

RAD Studio/Delphi XE2ユーザ向のDelphi Developer Certificationの無償キャンペーンが行われています。

Delphi Insider: Free Certification Test for Delphi XE2 and RAD Studio XE2 Users
Limited Time Special

2011/09/30までに新規購入かアップグレードを行い、2011/10/15までにプロモーションページで登録することで、無料でDelphi Developer Certificationを受けることができます。受験は登録から90日以内となっています。

また前回のキャンペーンによる受験は2011/07/31登録でも2011/10/29が期限になります。期限切れに注意しましょう。

2011年9月16日

プログラミングの魔導書Vol.2 予約受付開始

プログラミングの魔導書 ~Programmers' Grimoire~ Vol.2の発売がアナウンスされています。Vol.1の発売から早一年、ひょっとして一発で終わってしまったのかと心配していましたが、無事にVol.2の予約の受付が始まったようです。

株式会社ロングゲート - 製品案内

お知らせ

受注生産の形態をとっているため、書籍版に関しては予約でのご注文のみとなりますのでご注意ください。

PDF版は予約期間が過ぎた後でもご購入いただけます。

予約期間は2011/10/04(火)までです。

Gmailでは、ダウンロード開始メールが迷惑メールフォルダに格納されてしまう場合があります。PDF版を購入し、ダウンロード開始メールが届かない場合、そちらをご確認ください。

元ねたは『プログラミングの魔導書 Vol.2』予約開始! - Faith and Brave - C++で遊ぼう本の虫: プログラミングの魔導書 Vol.2の予約受付中

2011年9月14日

Microsoft Monthly Update 2011/09

今日はMicrosoftのセキュリティアップデートの日です。
MS11-070
MS11-071
MS11-072
MS11-073
MS11-074

2011年9月11日

[書籍]プログラミングの心理学 25周年記念版

ジュンク堂書店 新宿店The Psychology of Computer Programming: Silver Anniversary Editionの翻訳(新訳)である

プログラミングの心理学 【25周年記念版】 (amazon)/Gerald M. Weinberg著/伊豆原弓訳/日経BP/ISBN978-4-8222-8470-1/2,730円

を購入。さすがに内容は古いですね。PL/IとかCOBOLなんて聞いたこともない人にはお勧めしません。それくらいなら同じWeinberg先生のライト,ついてますか (amazon)をお勧めします。

2011年9月6日

第20回エンバカデロ・デベロッパーキャンプ開催

本日(2011/09/06)の10:00からデベロッパーキャンプが行われます。David Iさんも一昨日の夜に来日しています。

David I、デベロッパーキャンプ参加に向け来日

会場は秋葉原UDXの4Fです。

Team Japan » 第20回 エンバカデロ・デベロッパーキャンプ - 会場へのアクセス

こちらは残念なお知らせです。

第20回エンバカデロ デベロッパーキャンプで喋れなくなりました。 - C++Builder好きの秘密基地

この枠はどうなるのかな?高橋さんのDBXのセッションのみになる模様です。

会場到着。あと10分で開始です。

10時です。始まりました。今日はUStream中継もあるようです(全てではないG/AセッションのみでBはなしの模様)。

懇親会ただの飲み会を含め、無事終了。参加者のみなさん、スピーカのみなさん、関係者のみなさん、おつかれさまでした。David Iさんほか明日神戸に行かれる方々はお気をつけて。ちなみに次回の開催日程はまだ未定だそうです(年内はないんですか?って聞いてみたけど、う~ん、という反応でした)。

2011/09/15追記: セッション資料がダウンロードできるようになっています。

第20回 エンバカデロ・デベロッパーキャンプ - セッション資料ダウンロード

2011/11/30-2011/12/06追記: David IさんのA5 Delphi/C++Builderテクニカルセッション 「RAD Studio XE2によるクロスプラットフォーム開発」のリプレイビデオが公開されています。日本語字幕入りです。

ビデオ - 第20回 エンバカデロ・デベロッパーキャンプ 「RAD Studio XE2 によるクロスプラットフォーム開発」
「RAD Studio XE2によるクロスプラットフォーム開発」 1/5 - YouTube
「RAD Studio XE2によるクロスプラットフォーム開発」 2/5 - YouTube
「RAD Studio XE2によるクロスプラットフォーム開発」 3/5 - YouTube
「RAD Studio XE2によるクロスプラットフォーム開発」 4/5 - YouTube
「RAD Studio XE2によるクロスプラットフォーム開発」 5/5 - YouTube

2011年9月5日

ISO/IEC 14882:2011 (C++ 2011)発行

C++0xことC++2011がついにISO/IEC 14882:2011として発行されました。

ISO/IEC 14882:2011 - Information technology -- Programming languages -- C++

あとはC++Builder XE3でC++2011がどれだけサポートされるか、でしょうかね。

元ねたはC++11が正式に発行されました - Faith and Brave - C++で遊ぼう

2011年9月3日

DDevExtensions 2.5リリース

Andreas HausladenさんDDevExtensionsがアップデートされてVersion 2.5になっています。Delphi XE2のサポートなどが追加されています。

DDevExtensions 2.5 with XE2 support | Andy’s Blog and Tools

2011年9月2日

Oxygene for Java

Project "Cooper"ことOxygene for Javaについての続報です。

Oxygene for .NET = Embarcadero Prism XE2 « RemObjects Blogs

RemObjects Oxygene 5はOxygene for .NETとOxygene for Javaで構成されており、このうちOxygene for .NETは(Embarcadero) Prism XE2 Professionalとして(Oxygeneとしては)単体で販売され、一方でOxygene for JavaはOxygene 5(599USD)あるいはOxygene for Java(399USD)単体でRemObjectsから発売予定(現時点でpre-order)、ということです。

2011/09/07追記: RemObjectsからOxygene 5が正式にアナウンスされています。

Announcing Oxygene 5 for .NET and Java « RemObjects Blogs

2011年9月1日

RAD Studio/Delphi/C++Builder/Prism/RadPHP XE2リリース

RAD Studio/Delphi/C++Builder/Prism/RadPHP XE2が正式にリリースとなったようです。トライアル版は既にダウンロード可能になっています。

Windows、Mac、Web、モバイル開発に対応したRAD Studio XE2登場!
エンバカデロ、開発ツール「RAD Studio XE2」とコンポーネント4製品を発売 - ニュース:ITpro

Delphi XE2 および C++Builder XE2 で修正された不具合一覧

2011/09/02追記: IPIndyImpl.dcp(Win64/OS X)とinetdbexpress.dcp(Win64/Release)が不足しているという問題(RAID287274)に対するhotfixがリリースされています。

28484 IPIndyImpl.dcp and inetdbxpress.dcp for Delphi XE2

2011/09/03追記: プロダクトマーケティングマネージャのTim Del ChiaroさんによるXE2のダウンロード関係のリンクのまとめです。

Delphi Insider: Download links for Delphi XE2, C++Builder XE2, RAD Studio XE2, Embarcadero Prism XE2 and RadPHP XE2

2011/10/04追記: Delphi/C++Builder XE2で修正された不具合一覧のリンクを追加しました。

RAD Studio/Delphi/C++Builder/Prism/RadPHP XE2リリース間近

いよいよRAD Studio/Delphi/C++Builder/Prism/RadPHP XE2のリリースが迫っているようです。とりあえずプレスリリース、インストール/リリースノートなどのリンクを。

プレスリリース: エンバカデロ、Delphi / C++Builder / RAD Studioの新バージョン 「XE2」によりビジネスアプリケーション開発を変革



過去のバージョンのライセンスの件については、

以前の製品バージョンのインストール

ライセンスには次に示す以前の製品バージョンが含まれ、それらをダウンロードして使用できます。

  • Delphi XE2 は、Delphi XE、2010、2009、2007 および 7 の各ライセンスを含みます。
  • C++Builder XE2 は C++Builder XE、2010、2009、2007 および 6 の各ライセンスを含みます。
  • RAD Studio XE2 は、Delphi および C++Builder の全バージョンのライセンスを含みます。

個人指名ユーザー ライセンスまたは複数の指名ユーザー ライセンス(5 ユーザー パックまたは 10 ユーザー パック)を購入した場合:

XE2 製品をインストールし、登録した後に、「以前のバージョン」にアクセスして、古いバージョンの Serial Number とソフトウェア(ダウンロード)を入手できます。XE2 製品の購入後 180 日以内に、このページから、古いバージョンのライセンスを要求する必要があります。

XE2 製品に対して、ネットワーク指名ユーザー ライセンス、AppWave 指名ユーザー ライセンス、または同時使用ライセンスを購入した場合:

ユーザーのネットワーク ライセンス証明書に、Delphi 7 や C++Builder 6 の個人 Serial Number を含め、2007 から XE の各バージョンでライセンス処理に使用するスイート ライセンスが含まれます。Delphi 7 および C++Builder 6 の Serial Number は、単一の指名ユーザー Serial Number です。ユーザー間で移転はできず、ライセンス サーバー経由での同時ユーザー アクセスに利用できません。

メモ:アカデミック版には、以前の製品バージョンのライセンスは含まれません。

、XEと同様の条件になっています。いう記述がDelphi XE2 および C++Builder XE2 のリリース ノートDelphi XE2 および C++Builder XE2 のインストール ノートにはありますが、RAD Studio XE2 Q&Aでは

旧バージョンのライセンスリクエストには、180日以内という制限があるのですか?

XEで設けられていた180日以内という制限は、XE2では設けていません。新バージョンでは、購入後180日以降でも、問題なくライセンスリクエストを行えます。

となっており、XEとは扱いが異なるようです。

またオンラインヘルプも参照可能になっています。

Online Help for Delphi XE2 and C++Builder XE2
Delphi XE2 および C++Builder XE2 オンライン ヘルプ

2011年8月30日

IntraWeb 9が無償に

DelphiにはIntraWeb(VCL for the Web)がバンドルされていますが、ANSI版Delphi(5/6/7/2005/2006/2007)に対応しているIntraWeb 9 Enterprise(9.0.42)をAtozed Softwareが無償で公開しています。

Atozed Software - IntraWeb 9 Enterprise is now free!

Atozedでアカウントを作成するだけでIntraWeb 9 Enterpriseのライセンスを取得することができるようになります。ただしANSI版のみ、バグ修正なし、サポートなしとのことです。

2011年8月29日

[書籍]Delphi Developer's Guide to XML, 2nd Edition

2003/12/31発行と少々古めの本ですが、Amazon.co.jpで注文した

Delphi Developer's Guide to XML, 2nd Edition (BookSurge/amazon)/Keith Wood著/BookSurge Publishing/ISBN978-1591098621(ISBN1591098629)/49.95USD(4,971JPY)

が配送されてきました(堺配送センター発で今回の配送は佐川急便)。

2011/09/02追記: Amazon.co.jpは売り切れのようですね。円高ですし、送料込みでもAmazon.comなら4,500JPY程度で買えるのではないでしょうか。