2011年12月30日
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
IDE Fix Pack 4.6.1 – bugfix release | Andy’s Blog and Tools
2011年12月26日
RAD Studio XE2ビデオシリーズ「8つのポイント」
USの"31 Days of RAD Studio XE2"に対抗した日本法人のRAD Studio XE2 ビデオシリーズの"RAD Studio XE2 - 8つのポイント"のビデオが公開されています。
- #1 RAD Studio XE2の統合開発環境 - YouTube
- #2 クロス開発に対応したDelphi / C++Builder XE2の統合開発環境 - YouTube
- #3 Delphi XE2によるiOSアプリケーションの開発 - YouTube
- #4 FireMonkeyによるHD/3Dアプリケーション開発 - YouTube
- #5 Delphi XE2による64-bit Windows開発 - YouTube
- #6 LiveBindingsによる多様なデータの利用 - YouTube
- #7 DataSnapによる多層アプリケーション開発 - YouTube
- #8 DataSnapサーバーにモバイルアプリからアクセスする - YouTube
2011年12月22日
RAD Studio/Delphi/C++Builder XE2 Help Update 3
RAD Studio/Delphi/C++Builder XE2のHelp Update 3がリリースされています。
28676 Help Update 3 for Delphi, C++Builder and RAD Studio XE2
Delphi XE2/C++Builder XE2/RAD Studio XE2 Help Update 3 が公開されました
Help Update 3 for Delphi XE2, C++Builder XE2 and RAD Studio XE2
Readme - Help Update 3 for Delphi and C++Builder XE2 - RAD Studio XE2
リリース ノート: Delphi XE2 および C++Builder XE2 Help Update 3 - RAD Studio XE2
28676 Help Update 3 for Delphi, C++Builder and RAD Studio XE2
Delphi XE2/C++Builder XE2/RAD Studio XE2 Help Update 3 が公開されました
Help Update 3 for Delphi XE2, C++Builder XE2 and RAD Studio XE2
Readme - Help Update 3 for Delphi and C++Builder XE2 - RAD Studio XE2
リリース ノート: Delphi XE2 および C++Builder XE2 Help Update 3 - RAD Studio XE2
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のみ)がリリースされています。
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
- 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をアンインストールすると..
レポーティングソリューション FastReport VCL | 製品概要
リオスe-Shop/商品一覧ページ
エージーテックさんのページでは1月中旬以降正式リリースとなっていますが、リオスe-Shopさんでは2012/01/13発売と日付まで出ています。またリオスe-Shopさんでは2011/11/21から
キャンペーン期間中にご成約いただきますと、まずは英語版をお送りし、日本語版販売時に優先して、日本語版をお送りします。
(同じライセンス番号で動作しますので、日本語か英語のどちらかでご利用できます)
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日
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は列挙型ではなく単に
2012/02/10追記: ModalResultの定義値の変更の件を補足しました。高橋さん、情報ありがとうございます。
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)
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月9日
[書籍]Windowsコマンドプロンプトポケットリファレンス
ブックファースト 渋谷文化村通り店で
Windows コマンドプロンプト ポケットリファレンス (amazon)/山近慶一著/技術評論社/ISBN 978-4-7741-4954-7/2,919円
を購入。
Windows コマンドプロンプト ポケットリファレンス (amazon)/山近慶一著/技術評論社/ISBN 978-4-7741-4954-7/2,919円
を購入。
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。
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月6日
2011/12開催のウェブセミナー
- 2011/12/14 17:00-18:00(JST) 12/14 - デベロッパーTV - Delphi / C++Builder XE2への移行を考える
- 2011/12/20 17:00-2011/12/21 16:55(JST) オンラインイベント: 24-Hours of Delphi - Delphiを最大限に活用するための技術情報やヒント、テクニック満載のグローバルイベントを開催!
2011/12/26追記: デベロッパーTVのリプレイのリンクを追加しました。
2011/12/27追記: 24-Hours of Delphiの日本語放送関係のリンクを追加しました。
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追記: デベロッパーキャンプのプレゼンテーション資料のリンクを追記しました。高橋さん、情報ありがとうございます(遅くなりましたが)。
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著/鈴木幸敏、首藤一幸、株式会社情報技研訳/オライリージャパン/ISBN 978-4-87311-517-7/5,040円
を購入。
プログラミングC# 第6版 (amazon)/Ian Griffiths、Matthew Adams、Jesse Liberty著/鈴木幸敏、首藤一幸、株式会社情報技研訳/オライリージャパン/ISBN 978-4-87311-517-7/5,040円
を購入。
2011年11月29日
RadPHP XE2 Update 3
RadPHP XE2 Update 3がリリースされています。
28640 RadPHP XE2 Update 3
RadPHP XE2 Update 3 is available now
RadPHP XE2 Update 3 が公開されました
2011/11/30追記: Update 3を適用してもヘルプ→バージョン情報のインストール済みの更新にはUpdate 2と表示されるようです。
28640 RadPHP XE2 Update 3
RadPHP XE2 Update 3 is available now
RadPHP XE2 Update 3 が公開されました
2011/11/30追記: Update 3を適用してもヘルプ→バージョン情報のインストール済みの更新にはUpdate 2と表示されるようです。
RAD Studio/Delphi/C++Builder XE2 Help Update 2
RAD Studio/Delphi/C++Builder XE2のHelp Update 2がリリースされています。
28638 Help Update 2 for Delphi, C++Builder and RAD Studio XE2
Help Update 2 for Delphi XE2, C++Builder XE2 and RAD Studio XE2
リリース ノート: Delphi XE2 および C++Builder XE2 Help Update 2 - RAD Studio XE2
Delphi XE2/C++Builder XE2/RAD Studio XE2 Help Update 2 が公開されました
28638 Help Update 2 for Delphi, C++Builder and RAD Studio XE2
Help Update 2 for Delphi XE2, C++Builder XE2 and RAD Studio XE2
リリース ノート: Delphi XE2 および C++Builder XE2 Help Update 2 - RAD Studio XE2
Delphi XE2/C++Builder XE2/RAD Studio XE2 Help Update 2 が公開されました
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。
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。
Category:
Delphi 2007,
Delphi 2009,
Delphi 2010,
Delphi XE,
Delphi XE2,
Libraries
at
17:51:00
0
Comments
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。
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を引用。
2011/11/18追記: Delphi 2007との相性の問題がQC101120として登録されています。
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のコンパイラの変更により、一部のコードがエラーになる、という情報もありますので注意が必要です。
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日
クラスヘルパ
クラスヘルパはDelphi 2007で導入された新機能で、クラスを継承することなく拡張するためのものです(Delphi 2007 HandbookにはDelphi 2007でDelphi 2006とのバイナリレベルでの互換性を確保するために導入された、とあります)。当初はクラスにしか適用できませんでしたが、Delphi 2010以降ではレコード型に対しても(レコードヘルパとして)適用することができます。しかしヘルパで定義したメソッドではpublicメンバにしかアクセスできないため、ある種のシンタックスシュガーのように考えればよいと思っていました。DelphiデベロッパチームシニアソフトウェアデベロッパのMat DeLongさん Mat DeLongさんのこのアーティクルを読むまでは。
Mat DeLong : Gaining access to private fields of a class Gaining access to private fields of a class in Delphi | Mat DeLong
これによると、private/protectedメンバであっても"Self."で修飾することでアクセスできる、と書かれています。なんですと?ということでDelphi 2007以降の各バージョンで確認してみました。
またクラス ヘルパとレコード ヘルパ(Delphi)には
とあり、ひとつのクラスに複数のヘルパを適用することはできないのですが、ヘルパの構文として
2020/09/23追記: Mat DeLongさんの記事のリンクを更新しました。pmcgeeさん、情報ありがとうございます。
これによると、private/protectedメンバであっても"Self."で修飾することでアクセスできる、と書かれています。なんですと?ということでDelphi 2007以降の各バージョンで確認してみました。
- Delphi 2007: "Self."の有無に関わらずpublicのみアクセス可能
- Delphi 2009: "Self."とすることでprivateはアクセスできるがなぜかprotectedはアクセス不可
- Delphi 2010/XE/XE2: "Self."とすることでprivate/protectedもアクセス可能
またクラス ヘルパとレコード ヘルパ(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
...
こんな感じです。2020/09/23追記: Mat DeLongさんの記事のリンクを更新しました。pmcgeeさん、情報ありがとうございます。
Category:
Delphi 2007,
Delphi 2009,
Delphi 2010,
Delphi Programming Tips,
Delphi XE,
Delphi XE2
at
9:11:00
2
Comments
2011年11月9日
RAD Studio/Delphi/C++Builder XE2 Update 2 Hotfix 1
RAD Studio/Delphi/C++Builder XE2 Update 2のHotfix 1がリリースされています。
28622 HotFix 1 for Delphi, C++Builder and RAD Studio XE2
- QC100661 Update 2適用後にOSX用C++Builder FireMonkeyアプリケーションがリンカエラーになる
- QC100640 OSX用C++Builder FireMonkeyアプリケーションでSTLコンテナがコンパイルエラーになる
28622 HotFix 1 for Delphi, C++Builder and RAD Studio XE2
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
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で修正された不具合のうち、
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になるそうです。
これに関連し、FastMM 4.99で修正された不具合のうち、
- Fixed crashes in the 64-bit BASM codepath when more than 4GB of memory is allocated.の2点がDelphi XE2 Update 2のx64用の標準メモリマネージャにも不具合として存在しており(QC100726)、FastMMのAdminであるPierre le Richeさんが非公式なfixをフォーラムに投稿しています。
- Fixed bad record alignment under 64-bit that affected performance.
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月4日
WMI Delphi Code CreatorがC++Builderをサポート
以前紹介したRRUZ(Rodrigo Ruz)さんのWMI Delphi Code CreatorがC++Builder(5~XE2)用のC++のコードを生成できるようになりました。
The WMI Delphi Code Creator now can create C++ Code compatible with Borland/Embarcadero compilers « The Road to Delphi – a Blog about programming
最新版は
WMI Delphi Code Creator « The Road to Delphi – a Blog about programming
からダウンロードできます(2011/11/04現在でVersion 1.1.2.164が最新)。
The WMI Delphi Code Creator now can create C++ Code compatible with Borland/Embarcadero compilers « The Road to Delphi – a Blog about programming
最新版は
WMI Delphi Code Creator « The Road to Delphi – a Blog about programming
からダウンロードできます(2011/11/04現在でVersion 1.1.2.164が最新)。
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
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をダウンロードしてインストールする必要があるようです。
インストール手順の補足:
2011/11/04追記: Stylesファイルに関する記述を修正しました。それから業務連絡の件、ありがとうございました>だれとなく。
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
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
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/09 17:00-18:00(JST) 11/9 - Webセミナー - アンドキュメンテッド(?) VCL ~逆引きVCL新機能
- 2011/11/16 17:00-18:00(JST) 11/16 - デベロッパーTV - 開発者のためのDBツール入門+RAD Studio XE2のモバイル開発機能
- 2011/11/30 17:00-18:00(JST) 11/30 - Webセミナー - RadPHP XE2によるモバイルアプリ開発
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月22日
CodeRage 6 Day 5
CodeRage 6の5日目(2011/10/21)のセッションに関するリンクです。
リプレイビデオ(CodeCentral)
- Sip from the Firehose : CodeRage 6 session replays for Friday, October 21
- CodeRage6 Fifth Day and Wrap Up
リプレイビデオ(CodeCentral)
- #45 マルチスレッディングを簡単に (The Delphi Geek: Multithreading Made Simple–additional material) - マルチスレッド/OmniThreadLibrary
- #46 ベンダショーケース: 新しいGnostice PDFtoolkit 4 for Delphi Win 32/64を探検する - PDFtoolkit
- #47 FireMonkeyとInterBaseによるiOS DataSnap接続 - iOS/DataSnap
- #48 Delphiのデバッガを探検する - Delphi/Debugger
- #49 XE2はさらに高度なUML機能を持っているか? - UML/Audit/Metric
- #50 Windows Phone 7開発 - Prism/Windows Phone/Silverlight
2011年10月21日
CodeRage 6 Day 4
CodeRage 6の4日目(2011/10/20)のセッションに関するリンクです。
リプレイビデオ(CodeCentral)
リプレイビデオ(CodeCentral)
- #34 ベンダショーケース: FastReport VCL for RAD Studio XE2 - FastReport
- #35 待機時間分析で実行性能のボトルネックを指摘する - Database
- #36 魔法のトリックを学ぶ: RTTIの初心者ガイド - Delphi/RTTI
- #37 実践的な魔法: なぜDelphiのRTTIを使用するのか? - Delphi/RTTI
- #38 魔法を解き放つ: DelphiのRTTIに深く潜る - Delphi/RTTI
- #39 RAD Studio XE2でCodeSite Expressを効果的に使用する - CodeSite
- #40 Raize ComponentとRAD Studio XE2によるUIデザイン - Raize Components/VCL Style
- #41 クロスプラットフォームな正規表現 - 正規表現
- #42 Web開発の未来 - Web開発
- #43 VCLとFireMonkeyの両方でコンパイルできるコントロールを作る - VCL/FireMonkey
- #44 ベンダショーケース: Mitov Softwareのコンポーネントを使用したFireMonkeyによる動画、音声、AI、映像認識 - Mitov/VideoLab/AudioLab/VisionLab/IntelligenceLab/SignalLab
2011年10月20日
CodeRage 6 Day 3
CodeRage 6の3日目(2011/10/19)のセッションに関するリンクです。
リプレイビデオ(CodeCentral)
リプレイビデオ(CodeCentral)
- #23 ベンダショーケース: HydraでFireMonkeyとVCLを統合 - Hydra
- #24 Prismを解き放つ - Prism/Oxygene
- #25 RadPHP XE2 JQueryMobileアプリケーション開発 - RadPHP/JQuery
- #26 FireMonkeyによるクロスプラットフォーム開発 - FireMonkey
- #27 Marco CantùとCary JensenのDelphiのコツと秘訣 (Delphi Developer Days 2012, Marco Cantu and Cary Jensen, Spring 2012, Home Page) - Delphi
- #28 Delphi、ディペンデンシーインジェクションとDelphi Spring Framework - Delphi/DI/Spring
- #29 Delphiでユニットテスト - DUnit
- #30 詳解XML - Prism/XML
- #31 Data Abstract: クロスプラットフォームデータベースアプリケーション - Data Abstract
- #32 InterBase XEの拡張 - InterBase
- #33 C++の検査 - C++Builder/Audit
2011年10月19日
CodeRage 6 Day 2
CodeRage 6の2日目(2011/10/18)のセッションに関するリンクです。
リプレイビデオ(CodeCentral)
- Sip from the Firehose : CodeRage 6 session replays for Tuesday, October 18
- Sip from the Firehose : CodeRage 6 Tuesday October 18, URLs used in the session Q&As
- CodeRage6 Second Day
リプレイビデオ(CodeCentral)
- #12 古い2Dプロジェクトに新しい3D機能 - Delphi/FireMonkey
- #13 Windows 64bit入門 - x64
参考リンク: - #14 Delphi RESTサーバでJavaScript Webアプリケーションを構築する - REST/Webアプリケーション
- #15 Delphi XE2でRESTクライアントを構築する - REST/Cloud
- #16 DataSnapで純粋なRESTサーバを作成する (Delphi Developer Days 2012, Marco Cantu and Cary Jensen, Spring 2012, Home Page) - REST/DataSnap
- #17 クライアントデータセット Part3: クライアントデータセットの検索とフィルタリング (Delphi Developer Days 2012, Marco Cantu and Cary Jensen, Spring 2012, Home Page) - クライアントデータセット
- #18 FireMonkeyに点火 - FireMonkey
- #19 Intraweb (VCL for the Web)を使った"Weblications"構築入門 - Intraweb
- #20 IntrawebsでjQueryモバイルを使う - jQuery/モバイル
- #21 カスタムFireMonkeyコントロールを作成する - FireMonkey/コンポーネント
- #22 VCLスタイルでVCLアプリケーションをスキン化する - VCL Style/コンポーネント
2011年10月18日
CodeRage 6 Day 1
日本時間の昨日(2011/10/17)の夜からCodeRage 6が始まっています。ということでCodeRage 6の1日目(2011/10/17)のセッションに関するリンクです。
リプレイビデオ(CodeCentral)
セッションタイトルのてきとうな訳とキーワードは勝手につけたものです。
- Sip from the Firehose : CodeRage 6 session replays for Monday, October 17
- Sip from the Firehose : CodeRage 6 Monday October 17, URLs used in the session Q&As
- CodeRage6 First Day
リプレイビデオ(CodeCentral)
- #1 プロダクトアドレス: RAD Studio XE2 - FireMonkey/MacOS/x64/VCL Style/LiveBinding
- #2 DataSnap XE2: 新機能と改善 - DataSnap/Cloud API
- #3 RESTとモバイルデータスナップクライアント開発 - REST/モバイルデータスナップクライアント
- #4 LiveBindings入門 - LiveBinding
- #5 LiveBindings: 実例 - LiveBinding
- #6 Delphi VCLとFireMonkey上のLiveBindings - LiveBinding
- #7 Delphiの新しいRTLスレッディングサポート - Delphi/RTL
- #8 Oxygene for JavaによるAndroid開発 - Oxygene for Java
- #9 アプリケーションのAppWave化を準備する - AppWave
- #10 FireMonkeyによるiOS開発 - iOS
セッションタイトルのてきとうな訳とキーワードは勝手につけたものです。
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
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日
2011年10月11日
QC Plus 1.2.1リリース
しばらく前に紹介した、QC(QualityCentral)の代替クライアントであるJED SoftwareのQC PlusのVersion 1.2.1がリリースされています。
QC Plus download page
元ねたはJED Software BlogのQC Plus 1.2 now availableとQC Plus 1.2.1.x now available。
QC Plus download page
元ねたはJED Software BlogのQC Plus 1.2 now availableとQC 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を引用。
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日
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
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/ロングゲート/ISBN 978-4-9905296-2-8(書籍版)、ISBN 978-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追記: 書籍版が届きました。
プログラミングの魔導書 ~Programmers’ Grimoire~ vol.2/ロングゲート/ISBN 978-4-9905296-2-8(書籍版)、ISBN 978-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そのものが悪いわけではなく、InstallAnywhereがJava(JRE)の環境を正しく認識して処理できないのが原因。
- 前提条件
InterBase 7.1に関する Q & Aにあるように、Java VM 1.3.1または1.4がインストールされている必要がある。古いJREはOracle Java Archiveからダウンロードできる。 - アンインストーラがフリーズする
FlexeraのKBによると原因は- ディスクの空きが足りない
- アンチウィルスソフトウェアかPCAnywhereが動作している
- Dell OpenManagerが動作している
- ビデオカード/ドライバとの相性
- ディスプレイのハードウェアアクセラレーションとの相性
ということなので、- システムドライブの空き容量を確認する
- アンチウィルスソフトウェアやPCAnywhereがインストールされていたら停止する
- DellのPCでOpenManagerが動作していたら停止する
- アンインストーラの実行ファイルと同じ場所(InterBaseのインストール先のUninstallerDataフォルダ)にある"Uninstall InterBase 7.1 .lax"にを追加する
lax.nl.java.option.additional=-Dsun.java2d.d3d=false -Dsun.java2d.noddraw=true
- ディスプレイのハードウェアアクセラレーションを無効にする
ことで回避することができる(らしい)。 - アンインストーラが"Windows エラー 3"でエラーになる
同じくFlexeraのKBによればアンインストーラが対応していないJVM (1.)6以降を使用してしまうのが原因のようで、コマンドプロンプトでアンインストーラのある場所(InterBaseのインストール先のUninstallerDataフォルダ)に移動しておいて、と、パラメータに"LAX_VM"(すべて大文字で)およびjava.exeの絶対パスを指定することで使用するJVMを明示的に指定できる。この場合"コントロールパネル"の"プログラムと機能"あるいは"プログラムの追加と削除"の一覧からInterBaseが削除されないので注意(改めてアンインストールしようとするとアンインストーラが見つからないので一覧から削除するかどうか確認されるので削除するを選択すればよい)。"Uninstall InterBase 7.1 .exe" LAX_VM "C:\Program Files\Java\j2re1.4.2_19\bin\java.exe"
ちなみにいずれもInterBaseそのものが悪いわけではなく、InstallAnywhereがJava(JRE)の環境を正しく認識して処理できないのが原因。
2011年10月3日
2011/10開催のウェブセミナー
2011/10/12 17:00-18:00(JST) 10/12 - デベロッパーTV - デベロッパーキャンプを振り返る!RAD Studio XE2の注目新機能 →Replay (1/2) →Replay (2/2)
2011/10/26 17:00-18:00(JST) 10/26 - WebセミナーRAD Studio XE2+FireMonkeyによるクロスプラットフォームHD/3Dアプリ開発 参考リンク: FireMonkey のヒントとこつ - RAD Studio XE2
2011/10/17-21 CodeRage 6 - ソフトウェア開発者のためのオンラインカンファレンス Registration(jp)
CodeRage 6 - Sessions
JSTとPDTの時差は16時間(PDT+16h=JST)です。
2011/10/14追記: 2011/10/12分のセッションリプレイのリンクを追加しました。
2011/10/26追記: 2011/10/26分の参考リンクを追加しました。
2011/10/26 17:00-18:00(JST) 10/26 - WebセミナーRAD Studio XE2+FireMonkeyによるクロスプラットフォームHD/3Dアプリ開発 参考リンク: FireMonkey のヒントとこつ - RAD Studio XE2
2011/10/17-21 CodeRage 6 - ソフトウェア開発者のためのオンラインカンファレンス Registration(jp)
CodeRage 6 - Sessions
- Day 1: 2011/10/17 22:00 - 2011/10/18 08:45(JST)
- Day 2: 2011/10/18 22:00 - 2011/10/19 08:45(JST)
- Day 3: 2011/10/19 22:00 - 2011/10/20 08:45(JST)
- Day 4: 2011/10/20 22:00 - 2011/10/21 08:45(JST)
- Day 5: 2011/10/21 22:00 - 2011/10/22 03:45(JST)
JSTとPDTの時差は16時間(PDT+16h=JST)です。
2011/10/14追記: 2011/10/12分のセッションリプレイのリンクを追加しました。
2011/10/26追記: 2011/10/26分の参考リンクを追加しました。
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
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 SoftwareのJeremy 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さんだという指摘がありましたので訂正しました。ご指摘ありがとうございます。
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に関する記述が追加されたのでリンクを追加しました。
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の内容を見てみます。
これをよく見ると気になる点が2つあります。
これでプロジェクトを開きなおしてコンパイルしてみましょう。今度は設定したバージョン情報が正しく格納されていますね。ということでこの問題はXE2でバージョン情報の設定をターゲット毎に設定できるように仕様を変更したことによる不具合だと考えられます。また直接dprojファイルの不要な部分を削除することで回避できる、ということになります。
参考: DEKOさんのところの11/09/22 バージョン情報の件 (XE2) 11/09/22 バージョン情報の件 (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つあります。
- ターゲット"すべての構成 - すべてのプラットフォーム"に相当する<PropertyGroup Condition="'$(Base)'!=''">の部分にバージョン情報であるVerInfo_KeyとVerInfo_Localeがあるのに、個別のターゲットに相当する<PropertyGroup Condition="'$(Base_Win32)'!=''">などにも設定した覚えのないバージョン情報が入っている。
- Delphi XEまで使用していた<Delphi.Personality>の<VersionInfo>、<VersionInfoKeys>が無視されている。
<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さんのところの
2011年9月21日
Delphi/C++Builder XE2におけるパッケージ作成時の注意点
Delphi/C++Builder XE2でパッケージを作るときに注意すると幸せになれるかもしれないけれどもあんまり参考にならないポイントを3つほど。
ちなみに.dprojファイルのバージョン情報に関する設定の格納方法がXE2で変更になったようで、従来は"\Project\ProjectExtensions\BorlandProject\Delphi.Personality"のVersionInfoとVersionInfoKeysにバージョン情報の設定が存在しますが、XE2ではこの位置にある設定を無視して"\Project\PropertyGroup"のベース構成(CONDITION="'$(Base)'!=''")のVerInfo_*を使用するようです。XE2でバージョン情報関係の不具合が報告されているようですが、これらの仕様変更と関係があるような気がします(次回に続く)。
- 出力ディレクトリ
"プロジェクトオプション"の"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 の機能強化"のリンクを追加しました。
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に関するアーティクルの
High Performance Timer in Delphi - TStopWatch - High-Resolution Counter
という記事にある実装がDelphiにおけるTStopWatchの最初のもので、この実装では停止状態でしか正しい値を取得できないことに由来するのではないかと思われます。その後(おそらくVCLに取り込まれた後に).NET FrameworkのSystem.Diagnosticsに合わせて停止状態でも正しい値が取得できるように仕様が変更されたときにヘルプを修正し忘れた、ということではないでしょうか。
ということで大変遅くなりましたが元記事のほうも記述を修正しておきました。山本さんほか指摘していただいた方(確か全力わはーの中の人がtweetしてたような…?違ったらすいません)、2ちゃんねるでツッコミいれてくれた方、ありがとうございます。
経過時間を示す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が期限になります。期限切れに注意しましょう。
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の予約の受付が始まったようです。
株式会社ロングゲート - 製品案内
元ねたは『プログラミングの魔導書 Vol.2』予約開始! - Faith and Brave - C++で遊ぼうと本の虫: プログラミングの魔導書 Vol.2の予約受付中。
株式会社ロングゲート - 製品案内
お知らせ
受注生産の形態をとっているため、書籍版に関しては予約でのご注文のみとなりますのでご注意ください。
PDF版は予約期間が過ぎた後でもご購入いただけます。
予約期間は2011/10/04(火)までです。
Gmailでは、ダウンロード開始メールが迷惑メールフォルダに格納されてしまう場合があります。PDF版を購入し、ダウンロード開始メールが届かない場合、そちらをご確認ください。
元ねたは『プログラミングの魔導書 Vol.2』予約開始! - Faith and Brave - C++で遊ぼうと本の虫: プログラミングの魔導書 Vol.2の予約受付中。
2011年9月14日
2011年9月11日
[書籍]プログラミングの心理学 25周年記念版
ジュンク堂書店 新宿店でThe Psychology of Computer Programming: Silver Anniversary Editionの翻訳(新訳)である
プログラミングの心理学 【25周年記念版】 (amazon)/Gerald M. Weinberg著/伊豆原弓訳/日経BP/ISBN 978-4-8222-8470-1/2,730円
を購入。さすがに内容は古いですね。PL/IとかCOBOLなんて聞いたこともない人にはお勧めしません。それくらいなら同じWeinberg先生のライト,ついてますか (amazon)をお勧めします。
プログラミングの心理学 【25周年記念版】 (amazon)/Gerald M. Weinberg著/伊豆原弓訳/日経BP/ISBN 978-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
David I、デベロッパーキャンプ参加に向け来日
会場は秋葉原UDXの4Fです。
Team Japan » 第20回 エンバカデロ・デベロッパーキャンプ - 会場へのアクセス
こちらは残念なお知らせです。
第20回エンバカデロ デベロッパーキャンプで喋れなくなりました。 - C++Builder好きの秘密基地
会場到着。あと10分で開始です。
10時です。始まりました。今日はUStream中継もあるようです(
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++で遊ぼう。
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
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
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で修正された不具合一覧のリンクを追加しました。
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」によりビジネスアプリケーション開発を変革
過去のバージョンのライセンスの件については、
と、XEと同様の条件になっています。いう記述がDelphi XE2 および C++Builder XE2 のリリース ノートやDelphi XE2 および C++Builder XE2 のインストール ノートにはありますが、RAD Studio XE2 Q&Aでは
となっており、XEとは扱いが異なるようです。
またオンラインヘルプも参照可能になっています。
Online Help for Delphi XE2 and C++Builder XE2
Delphi XE2 および C++Builder XE2 オンライン ヘルプ
プレスリリース: エンバカデロ、Delphi / C++Builder / RAD Studioの新バージョン 「XE2」によりビジネスアプリケーション開発を変革
- RAD Studio XE2
- Delphi XE2/C++Builder XE2
- Delphi XE2の概要 (en)
- C++Builder XE2の概要 (en)
- Delphi XE2 および C++Builder XE2 のインストール ノート
- Delphi XE2 および C++Builder XE2 のリリース ノート
- Delphi XE2 Datasheet
- Delphi XE2 Feature Matrix
- Delphi XE2 カタログ
- Delphi XE2 Q&A (en)
- What's new in Delphi XE2
- C++Builder XE2 Datasheet
- C++Builder XE2 Feature Matrix
- C++Builder XE2 カタログ
- C++Builder XE2 Q&A (en)
- What's new in C++Builder XE2
- Prism XE2
- RadPHP XE2
- FireMonkey
過去のバージョンのライセンスの件については、
以前の製品バージョンのインストールライセンスには次に示す以前の製品バージョンが含まれ、それらをダウンロードして使用できます。
- 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 です。ユーザー間で移転はできず、ライセンス サーバー経由での同時ユーザー アクセスに利用できません。
メモ:アカデミック版には、以前の製品バージョンのライセンスは含まれません。
旧バージョンのライセンスリクエストには、180日以内という制限があるのですか?XEで設けられていた180日以内という制限は、XE2では設けていません。新バージョンでは、購入後180日以降でも、問題なくライセンスリクエストを行えます。
またオンラインヘルプも参照可能になっています。
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版のみ、バグ修正なし、サポートなしとのことです。
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/ISBN 978-1591098621 (ISBN 1591098629)/49.95USD(4,971JPY)
が配送されてきました(堺配送センター発で今回の配送は佐川急便)。
2011/09/02追記: Amazon.co.jpは売り切れのようですね。円高ですし、送料込みでもAmazon.comなら4,500JPY程度で買えるのではないでしょうか。
Delphi Developer's Guide to XML, 2nd Edition (BookSurge/amazon)/Keith Wood著/BookSurge Publishing/ISBN 978-1591098621 (ISBN 1591098629)/49.95USD(4,971JPY)
が配送されてきました(堺配送センター発で今回の配送は佐川急便)。
2011/09/02追記: Amazon.co.jpは売り切れのようですね。円高ですし、送料込みでもAmazon.comなら4,500JPY程度で買えるのではないでしょうか。
IDE Fix Pack 4.4リリース
Andreas HausladenさんのIDE Fix Pack 2007およびIDE Fix Pack 2009/2010/XEがアップデートされてVersion 4.4になっています。
IDE Fix Pack 4.4 released | Andy’s Blog and Tools
IDE Fix Pack 4.4 released | Andy’s Blog and Tools
2011年8月25日
Webセミナー 9月まで待てない!デベロッパーキャンプ・プレセミナー 第3回 - 「第20回 エンバカデロ・デベロッパーキャンプ先取り情報」
9月まで待てない!デベロッパーキャンプ・プレセミナー 第3回 - 「第20回 エンバカデロ・デベロッパーキャンプ先取り情報」
第20回エンバカデロ・デベロッパーキャンプの開催概要についての説明。会場(秋葉原UDX)について。USスピーカのDavid Iさんについて。タイムテーブルについて。
G1 オープニングセッションはAppWaveについて。Team JapanのAppWave - 「クライアントアプリ+ODBCドライバ+DSN」をパッケージ化可能ですも参照。
G2 ジェネラルセッションはRAD Studio XE2について。先行販売の案内も。
A3 Delphi/C++BuilderテクニカルセッションはRAD Studio XE2のDeep Dive。FireMonkey、クロス開発など。
B3 PHPテクニカルセッションはRadPHP XE2。モバイル開発、PhoneGap。
A4 Delphi/C++Builderテクニカルセッションは筑木さんによるVCLについてのあまりドキュメント化されていない/知られていない機能などについての解説。
A5 Delphi/C++Builder/PrismテクニカルセッションはRAD Studio XE2によるクラスプラットフォーム開発について。高橋さんによるMacOS X上でのリモートデバッグの方法についてのデモ。あらかじめPlatform Assistant ServerをMac OS上にインストールしておき、FireMonkeyプロジェクトを作成してターゲットプラットフォームにOS Xを追加してビルド、実行しようとするとリモートプロファイルを要求されるのでウィザードでパラメータを入力してプロファイルを作成、これで実行すれば必要なファイルの転送、リモートデバッグもあら簡単。FireMonkeyなら2D/3Dも同じように動作。
G6 ライトニングトーク。博士とドラ娘。過去のダイジェスト。参加者募集中。
懇親会もまだ参加者募集中。既にデベロッパーキャンプ申し込み済の人は同じメールアドレスで再度申し込みすればOK。
Q&A: RAD Studio XE2でもXEと同様に過去のバージョンも使えるライセンスになるとのこと。FireMonkeyアプリケーションでもIndy、SOAPクライアント、DataSnapなどネットワーク関係の機能はそのまま使える。VCLとFireMonkeyは"似ている"程度の関係。WindowsとMacOSの違いもあるので個別の対応はいずれにせよ必要。
終了。お疲れさまでした。TweetのまとめはTogetter - 「9月まで待てない!「第20回エンバカデロ・デベロッパーキャンプ先取り情報」」。
第20回エンバカデロ・デベロッパーキャンプの開催概要についての説明。会場(秋葉原UDX)について。USスピーカのDavid Iさんについて。タイムテーブルについて。
G1 オープニングセッションはAppWaveについて。Team JapanのAppWave - 「クライアントアプリ+ODBCドライバ+DSN」をパッケージ化可能ですも参照。
G2 ジェネラルセッションはRAD Studio XE2について。先行販売の案内も。
A3 Delphi/C++BuilderテクニカルセッションはRAD Studio XE2のDeep Dive。FireMonkey、クロス開発など。
B3 PHPテクニカルセッションはRadPHP XE2。モバイル開発、PhoneGap。
A4 Delphi/C++Builderテクニカルセッションは筑木さんによるVCLについてのあまりドキュメント化されていない/知られていない機能などについての解説。
A5 Delphi/C++Builder/PrismテクニカルセッションはRAD Studio XE2によるクラスプラットフォーム開発について。高橋さんによるMacOS X上でのリモートデバッグの方法についてのデモ。あらかじめPlatform Assistant ServerをMac OS上にインストールしておき、FireMonkeyプロジェクトを作成してターゲットプラットフォームにOS Xを追加してビルド、実行しようとするとリモートプロファイルを要求されるのでウィザードでパラメータを入力してプロファイルを作成、これで実行すれば必要なファイルの転送、リモートデバッグもあら簡単。FireMonkeyなら2D/3Dも同じように動作。
G6 ライトニングトーク。博士とドラ娘。過去のダイジェスト。参加者募集中。
懇親会もまだ参加者募集中。既にデベロッパーキャンプ申し込み済の人は同じメールアドレスで再度申し込みすればOK。
Q&A: RAD Studio XE2でもXEと同様に過去のバージョンも使えるライセンスになるとのこと。FireMonkeyアプリケーションでもIndy、SOAPクライアント、DataSnapなどネットワーク関係の機能はそのまま使える。VCLとFireMonkeyは"似ている"程度の関係。WindowsとMacOSの違いもあるので個別の対応はいずれにせよ必要。
終了。お疲れさまでした。TweetのまとめはTogetter - 「9月まで待てない!「第20回エンバカデロ・デベロッパーキャンプ先取り情報」」。
登録:
投稿 (Atom)