FireMonkeyのクイックスタートガイドの日本語版が公開されています。後で読む。とりあえずメモ。
FireMonkey クイック スタート ガイド - はじめに - RAD Studio XE2
FireMonkey Quick Start Guide - Introduction - RAD Studio XE2
元ねたはエンバカデロの新井さんのtweet。
2012年4月5日
2012年4月4日
2012/04開催のウェブセミナー
- 2012/04/24 17:00-18:00(JST) 4/24 - Webセミナー -RAD Studio XE2紹介セミナー ~リッチビジネスアプリケーションのクロス開発
2012/06/25追記: リプレイビデオのリンクを追加しました。
2012年4月3日
RAD Studio/Delphi/C++Builder XE2付属のAQtimeのアップデート
RAD Studio/Delphi/C++Builder XE2(Pro/Ent/Arc SKUのみ)にバンドルされているAQtime 7(AQtime Standard update for Delphi, C++Builder and RAD Studio XE2)が7.30.535.861から7.40.800.861にアップデートされています。
28463 AQtime Standard for Delphi, C++Builder and RAD Studio XE2
Delphi XE2/C++Builder XE2/RAD Studio XE2 向けに AQtime Standard のアップデート版が公開されました。
AQtime Standard update for Delphi, C++Builder and RAD Studio XE2
New AQtime Pro Features
28463 AQtime Standard for Delphi, C++Builder and RAD Studio XE2
Delphi XE2/C++Builder XE2/RAD Studio XE2 向けに AQtime Standard のアップデート版が公開されました。
AQtime Standard update for Delphi, C++Builder and RAD Studio XE2
New AQtime Pro Features
2012年3月30日
[書籍]Windows Sysinternals徹底解説
MARUZEN&ジュンク堂書店 渋谷店でWindows Sysinternals Administrator's Reference (amazon)の翻訳である
Windows Sysinternals徹底解説 (amazon)/Mark Russinovich、Aaron Margosis著/山内和朗訳/日経BP/ISBN 978-4822294649 (ISBN 4822294641)/4,935円
を購入。この本はWindows SysInternalsの各ツールについて、SysInternals生みの親であるMark Russinovichさん自身が徹底解説しています。またMark RussinovichさんのBlogは
Windows の内部を解き明かす | Mark's ブログ
として日本語に翻訳されています(全てのアーティクルではないようですが)。
この本(日本語版)については
Virtualization × Sysinternals (+ちょっとだけPR)|仮想化|ブログ|Computerworld
にも情報があります。
さらにWindows Sysinternalsについては国井傑さんによる"Windows Sysinternalsを使い倒せ(COMPUTERWORLD)"という連載も非常に参考になります。
2012/06/04追記: ITpro(要登録)にWindows Sysinternals徹底解説の一部抜粋が掲載されています。
Windows Sysinternals徹底解説 (amazon)/Mark Russinovich、Aaron Margosis著/山内和朗訳/日経BP/ISBN 978-4822294649 (ISBN 4822294641)/4,935円
を購入。この本はWindows SysInternalsの各ツールについて、SysInternals生みの親であるMark Russinovichさん自身が徹底解説しています。またMark RussinovichさんのBlogは
Windows の内部を解き明かす | Mark's ブログ
として日本語に翻訳されています(全てのアーティクルではないようですが)。
この本(日本語版)については
Virtualization × Sysinternals (+ちょっとだけPR)|仮想化|ブログ|Computerworld
にも情報があります。
さらにWindows Sysinternalsについては国井傑さんによる"Windows Sysinternalsを使い倒せ(COMPUTERWORLD)"という連載も非常に参考になります。
- 第1回 Process Explorerを使い倒せ!
- 第2回 Process Monitorを使い倒せ!
- 第3回 Autorunsを使い倒せ!
- 第4回 AdRestoreを使い倒せ!
- 第5回 AD Explorerを使い倒せ!
- 第6回 ADInsightを使い倒せ!
- 第7回 PsExecを使い倒せ!
- 第8回 PsList & PsKillを使い倒せ!
- 第9回 PsLoggedOnを使い倒せ!
- 第10回 PsFileを使い倒せ!
- 第11回 MoveFileを使い倒せ!
- 第12回 Junctionを使い倒せ!
- 第13回 TCPViewを使い倒せ!
- 第14回 Disk2vhdを使い倒せ!
- 第15回 ShareEnumを使い倒せ!
- 最終回 SDeleteを使い倒せ!
- 試験に出る Sysinternals
2012/06/04追記: ITpro(要登録)にWindows Sysinternals徹底解説の一部抜粋が掲載されています。
2012年3月27日
FastReport VCL 4 RAD Edition 4.12.2リリース
CodeCentralにアップロードされているFastReport VCL 4 RAD Edition for Delphi and C++Builder XE2が更新されているようです。
28514 FastReport VCL 4 RAD Edition for Delphi and C++Builder XE2
アップデート前はインストーラのタイムスタンプが2011/09/29でバージョンが4.11.17、アップデート後のインストーラはタイムスタンプが2012/03/26で、インストール後のバージョンは4.12.2となっています。
エンバカデロの高橋さんからの情報によると4.12.2はエージーテックから出ている製品版の日本語版の最新版と同じバージョンとのことです。
28514 FastReport VCL 4 RAD Edition for Delphi and C++Builder XE2
アップデート前はインストーラのタイムスタンプが2011/09/29でバージョンが4.11.17、アップデート後のインストーラはタイムスタンプが2012/03/26で、インストール後のバージョンは4.12.2となっています。
エンバカデロの高橋さんからの情報によると4.12.2はエージーテックから出ている製品版の日本語版の最新版と同じバージョンとのことです。
2012年3月16日
第21回エンバカデロ・デベロッパーキャンプ 関連リンク
セッション資料ダウンロード
セッションリプレイ (YouTube エンバカデロチャンネル)
(随時更新予定)
セッションリプレイ (YouTube エンバカデロチャンネル)
- 【G1】オープニングセッション 「2012年 - エンバカデロの製品戦略」
- 【T2】テクニカルセッション「実践!Delphiデバッグテクニック」 1/2 2/2
- 【T3】テクニカルセッション「Delphi/C++Builder + FastReportで作る実用レポート出力」 1/2 2/2
- 【T4】テクニカルセッション「FireMonkeyファーストインプレッション」 1/2 2/2
- 【W5】ワークショップ「FireMonkeyアプリケーション構築実習」
- 【W6】ワークショップ「挑戦!Delphiクイズで実力チェック」 1/2 2/2
- 【T7】テクニカルセッション「RadPHPでスマホアプリを作ろう!」 1/2 2/2
- 【T8】テクニカルセッション「Delphi言語再入門」 1/2 2/2
- 【T9】テクニカルセッション「Delphi/C++BuilderでiOS/Macアプリを作ろう!」 1/2 2/2
(随時更新予定)
2012年3月15日
RAD Studio XE2 Update 4対応TeeChart Standardリリース
RAD Studio/Delphi/C++Builder XE2 Update 4に対応した"TeeChart Standard for RAD XE2 Update 4"がリリースされています。
28780 TeeChart Standard for Delphi, C++Builder, and RAD Studio XE2
28780 TeeChart Standard for Delphi, C++Builder, and RAD Studio XE2
2012年3月14日
2012年3月13日
[書籍]リアルタイムOSから出発して組込みソフトエンジニアを極める
MARUZEN&ジュンク堂書店 渋谷店で
リアルタイムOSから出発して組込みソフトエンジニアを極める (amazon)/酒井由夫著/エスアイビーアクセス/ISBN 978-4434159374 (ISBN 4434159372)/1,890円
を購入。この本は
組込みソフトエンジニアを極める (amazon)/酒井由夫著/日経BP/ISBN978-4822282721(ISBN4-8222-8272-4)/2,940円
が絶版になったため、再編集のうえで出版したものとのこと。
リアルタイムOSから出発して組込みソフトエンジニアを極める (amazon)/酒井由夫著/エスアイビーアクセス/ISBN 978-4434159374 (ISBN 4434159372)/1,890円
を購入。この本は
組込みソフトエンジニアを極める (amazon)/酒井由夫著/日経BP/ISBN978-4822282721(ISBN4-8222-8272-4)/2,940円
が絶版になったため、再編集のうえで出版したものとのこと。
RAD Studio/Delphi/C++Builder XE2 Help Update 4
RAD Studio/Delphi/C++Builder XE2のHelp Update 4がリリースされています。
28778 Help Update 4 for Delphi, C++Builder and RAD Studio XE2
Delphi XE2/C++Builder XE2/RAD Studio XE2 Help Update 4 が公開されました
Help Update 4 for Delphi XE2, C++Builder XE2 and RAD Studio XE2
リリース ノート: Delphi XE2 および C++Builder XE2 Help Update 4 - RAD Studio XE2 (en)
28778 Help Update 4 for Delphi, C++Builder and RAD Studio XE2
Delphi XE2/C++Builder XE2/RAD Studio XE2 Help Update 4 が公開されました
Help Update 4 for Delphi XE2, C++Builder XE2 and RAD Studio XE2
リリース ノート: Delphi XE2 および C++Builder XE2 Help Update 4 - RAD Studio XE2 (en)
2012年3月10日
第21回エンバカデロ・デベロッパーキャンプ 2日目
本日09:00からデベロッパーキャンプ (edn)の第2日目が行われます。場所は同じく船橋のセミナーハウス クロス ・ウェーブ船橋です。GotoWebinar(要登録)とUSTREAMでオンラインでも参加できます。
今日も午前中はお天気が悪いようです(さすがに船橋は雪ではありません)。終わるころまでに雨がやむといいのですが。
先ほど09:00からセッションが始まっています。あのクイズの問題を英語で出されるのはちとつらいかもしれませんね。
全日程終了しました。セッションスピーカの皆さん、参加者の皆さん、関係者の皆さん、おつかれさまでした。
ところで昨日のW6セッションについていけなかった、という感想をお持ちの方がいらっしゃるようですが、講師の高橋さんによると「無理ですよ、6時間分を圧縮してやるんですから」ということなので気にする必要はないようです。
2012/03/13追記: Team Japanにフォローアップ記事があがっています。
Team Japan » 第21回エンバカデロ・デベロッパーキャンプ あれこれ
今日も午前中はお天気が悪いようです(さすがに船橋は雪ではありません)。終わるころまでに雨がやむといいのですが。
先ほど09:00からセッションが始まっています。あのクイズの問題を英語で出されるのはちとつらいかもしれませんね。
全日程終了しました。セッションスピーカの皆さん、参加者の皆さん、関係者の皆さん、おつかれさまでした。
ところで昨日のW6セッションについていけなかった、という感想をお持ちの方がいらっしゃるようですが、講師の高橋さんによると「無理ですよ、6時間分を圧縮してやるんですから」ということなので気にする必要はないようです。
2012/03/13追記: Team Japanにフォローアップ記事があがっています。
Team Japan » 第21回エンバカデロ・デベロッパーキャンプ あれこれ
Firebird 2.0.7 Release Candidate 1リリース
Firebird 2.0.7 Release Candidate 1がリリースされています。
Firebird: Firebird 2.0.7 Release Candidate 1 Kits
Firebird 2.0.7 Release Notes
元ねたはFirebird News » Firebird 2.07 RC。
Firebird: Firebird 2.0.7 Release Candidate 1 Kits
Firebird 2.0.7 Release Notes
元ねたはFirebird News » Firebird 2.07 RC。
2012年3月9日
第21回エンバカデロ・デベロッパーキャンプ 1日目
本日14:00から第21回エンバカデロ・デベロッパーキャンプ (edn)の第1日目が行われます。場所は船橋のセミナーハウス クロス ・ウェーブ船橋です。
Team Japan » 第21回 エンバカデロ・デベロッパーキャンプ - 会場へのアクセス
今回もGotoWebinar(要登録)とUSTREAMでオンラインでも参加できます。
東京はあいにくのお天気ですね。明日まで雨の予報で気温も低めのようです。それでは移動開始です。
会場に到着。駅からはやはり10分程度はかかりますね。セッション会場は微妙に狭いような。50~60人で満員になりそう。まもなく開始です。
最初の3セッション(G1/T2/T3)が終了。神様に愛されているのは細川さんだった模様。
1日目は終了。セッションスピーカの皆さん、参加者の皆さん、関係者の皆さん、お疲れさまでした。え?延長戦?どうなんでしょう?
明日のクイズの回答者のみなさん、がんばってくださいね。
2012/03/10追記: 富永さんがT4「FireMonkeyファーストインプレッション」のフォローアップを書いています。
Team Japan » 第21回 エンバカデロ・デベロッパーキャンプ - 会場へのアクセス
今回もGotoWebinar(要登録)とUSTREAMでオンラインでも参加できます。
東京はあいにくのお天気ですね。明日まで雨の予報で気温も低めのようです。それでは移動開始です。
会場に到着。駅からはやはり10分程度はかかりますね。セッション会場は微妙に狭いような。50~60人で満員になりそう。まもなく開始です。
最初の3セッション(G1/T2/T3)が終了。神様に愛されているのは細川さんだった模様。
1日目は終了。セッションスピーカの皆さん、参加者の皆さん、関係者の皆さん、お疲れさまでした。え?延長戦?どうなんでしょう?
明日のクイズの回答者のみなさん、がんばってくださいね。
2012/03/10追記: 富永さんがT4「FireMonkeyファーストインプレッション」のフォローアップを書いています。
2012年3月1日
2012/03開催のウェブセミナー
- 2012/03/14 17:00-18:00(JST) 3/14 - デベロッパーTV - 「キャンペーン終了直前、XE2全部見せます!」
- 2012/03/16 17:00-18:00(JST) 3/16 - Webセミナー - デベロッパーキャンプ・リキャップ「実践!Delphiデバッグテクニック」
2012/03/12追記: 2012/03/16のデベロッパーキャンプ・リキャップのリンクを追加しました。
2012年2月29日
IDE Fix Pack 4.7リリース
Andreas HausladenさんのIDE Fix Pack 2009/2010/XE/XE2がアップデートされてVersion 4.7になっています。
IDE Fix Pack 4.7 – Includes support for XE2 Update 4 | Andy’s Blog and Tools
Delphi XE2 Update 4への対応を含め、いくつかの問題への対応が追加されています。
IDE Fix Pack 4.7 – Includes support for XE2 Update 4 | Andy’s Blog and Tools
Delphi XE2 Update 4への対応を含め、いくつかの問題への対応が追加されています。
RadPHP XE2 Update 4
RadPHP XE2 Update 4がリリースされています。
28759 RadPHP XE2 Update 4
RadPHP XE2 Update 4 is available now
RadPHP XE2 Update 4 が公開されました
28759 RadPHP XE2 Update 4
RadPHP XE2 Update 4 is available now
RadPHP XE2 Update 4 が公開されました
RAD Studio/Delphi/C++Builder XE2 Update 4
RAD Studio/Delphi/C++Builder XE2のUpdate 4がリリースされています。
28758 Delphi XE2 and C++Builder XE2 ISO (includes Update 4)
Update 4 for Delphi XE2, C++Builder XE2 and RAD Studio XE2
Delphi XE2/C++Builder XE2/RAD Studio XE2 Update 4 が公開されました
XE2 Update 4 のリリース ノート - RAD Studio XE2 (en)
Delphi XE2/C++Builder XE2 Update 4 における不具合修正リスト (en)
Update 4はFireMonkeyの変更が中心のようです。
28758 Delphi XE2 and C++Builder XE2 ISO (includes Update 4)
Update 4 for Delphi XE2, C++Builder XE2 and RAD Studio XE2
Delphi XE2/C++Builder XE2/RAD Studio XE2 Update 4 が公開されました
XE2 Update 4 のリリース ノート - RAD Studio XE2 (en)
Delphi XE2/C++Builder XE2 Update 4 における不具合修正リスト (en)
Update 4はFireMonkeyの変更が中心のようです。
2012年2月25日
Prism XE2 Update 5
Prism XE2 Update 5(Version 5.0.31 Build 991)がリリースされています。
28754 Embarcadero Prism XE2 Update 5 (February 2012 Release)
Embarcadero Prism XE2 Update 5 is now available
Embarcadero Prism XE2 Update 5 が公開されました
28754 Embarcadero Prism XE2 Update 5 (February 2012 Release)
Embarcadero Prism XE2 Update 5 is now available
Embarcadero Prism XE2 Update 5 が公開されました
2012年2月21日
TVirtualMethodInterceptorを使う
Delphi XEの新機能の一つであるTVirtualMethodInterceptorを使用すると、クラスインスタンスの仮想メソッドの呼び出しに外部から介入することができます(メソッドの呼出前、呼出後、例外の発生に対してそれぞれイベントとして無名メソッドを割り当てることができる)。しかしTVirtualMethodInterceptorの実際の使い方については
TVirtualMethodInterceptorを試す。 - 全力わはー
Entropy Overload: Virtual method interception
ぐらいしか参考になる情報がありません。ということで実際に試してみましょう。
TVirtualMethodInterceptorがやっていることは基本的にはtalesさんが指摘しているとおりVMTの差し替えです。従って処理に介入できるのはインスタンスの仮想(virtual)メソッドのみで、動的(dynamic)メソッドや静的メソッド、クラスメソッドは対象になりません。またProxifyしたインスタンスが全て解放されるまではTVirtualMethodInterceptorのインスタンスを解放してはいけません(デストラクタはvirtualなのでVMTを参照する)。もうひとつ気をつけなければならないのはTVirtualMethodInterceptorのコンストラクタで指定しているクラス型が実際にProxifyするクラス型と完全に一致していなければならない(代入互換性があるというのではだめ)という点です。
2012/02/29追記: TVirtualMethodInterceptor.OriginalClassプロパティを使ってVMTを書き戻すか、同じことをしてくれるUnproxify(XE2で追加)で終了時の問題をクリアすることができる、という指摘がLynaさんからありました。ということでこちらも試してみます。まずOriginalClassプロパティに格納されているもともとのVMTを書き戻す方法から。
それではDelphi XE2で追加されたUnproxifyを使う方法を。
TVirtualMethodInterceptorを試す。 - 全力わはー
Entropy Overload: Virtual method interception
ぐらいしか参考になる情報がありません。ということで実際に試してみましょう。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ActnList, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
ActionList1: TActionList;
Action1: TAction;
Action2: TAction;
Action3: TAction;
procedure Action1Execute(Sender: TObject);
procedure Action2Execute(Sender: TObject);
procedure Action3Execute(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Action1Execute(Sender: TObject);
begin
MessageDlg('Action1Execute',mtInformation,[mbOk],0)
end;
procedure TForm1.Action2Execute(Sender: TObject);
begin
MessageDlg('Action2Execute',mtInformation,[mbOk],0)
end;
procedure TForm1.Action3Execute(Sender: TObject);
begin
MessageDlg('Action3Execute',mtInformation,[mbOk],0)
end;
end.
画面上にボタンがあり、これらのボタンにはActionが割り当てられていてOnClickではこれらのActionが呼び出される、というサンプルプログラムです。ここでボタンをクリックしたときにフォーカスを残したくない、という新たな要求があり、それぞれのActionのOnExecuteの最後に"ActiveControl := nil;"という処理をを追加したいのですが、Actionが多数だと大変です。そこでTVirtualMethodInterceptorを使ってTAction.OnExecuteの呼出後に"ActiveControl := nil;"を実行するようにしてみましょう。まずusesにRTTIユニットを追加し、FormのOnCreateイベントでTVirtualMethodInterceptorを生成してprivate部に用意した変数に格納します。procedure TForm1.FormCreate(Sender: TObject);
begin
FVMI := TVirtualMethodInterceptor.Create(TAction);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
FVMI.Free;
end;
TVirtualMethodInterceptorのコンストラクタのパラメータは対象となるクラスです。次に生成したTVirtualMethodInterceptorのインスタンスのOnAfterイベントを設定します。 FVMI.OnAfter :=
procedure(Instance: TObject; Method: TRttiMethod;
const Args: TArray<TValue>; var Result: TValue)
begin
if Method.Name = 'Execute' then
begin
ActiveControl := nil;
end;
end;
メソッドを実行したあとで、そのメソッドの名前が"Execute"であれば"ActiveControl := nil;"を実行する、という処理になります(OnAfterに割り当てているのは無名メソッドなので、Form1のActiveControlをキャプチャして使用することができます)。さらにそれぞれのアクション(TActionのインスタンス)をProxifyします。 for I := 0 to ComponentCount - 1 do
begin
if Components[I] is TAction then
begin
FVMI.Proxify(TAction(Components[I]));
end;
end;
では実行してみましょう…うまくいきませんね。Method.Nameが'Execute'になった状態でOnAfterに入ってこないようです(おまけに終了時にエラーになります)。TAction.OnExecuteはTBasicAction.Executeから呼び出されているはずです。ClassesユニットにあるTBasicAction.Executeの定義を見てみましょう。 function Execute: Boolean; dynamic;
ん?dynamicですと?ヘルプには特定のクラス型の指定されたインスタンスに対する仮想メソッド呼び出しを ユーザーが動的にインターセプトできるようにします。とあります。そもそもTVirtualMethodInterceptorなので、動的(dynamic)メソッドはインターセプトできないのはあたりまえですね。どうしましょう…TAction.OnExecuteの呼出経路を探ってみると、TControlにはprotectedなActionLinkというプロパティがあり、割り当てられたActionはこのActionLinkのExecuteメソッド経由で呼び出されるようになっています。そしてこのTBasicActionLink.Executeはvirtualです。ということでここに介入することにします。とはいってもTControl.ActionLinkはprotectedですので、強引にclass helperでアクセスできるようにします。
type
TButtonHelper = class helper for TButton
public
function GetActionLink: TActionLink;
end;
function TButtonHelper.GetActionLink: TActionLink;
begin
Result := Self.ActionLink;
end;
これでActionLink.Executeに介入できるようになります。procedure TForm1.FormCreate(Sender: TObject);
var
I: Integer;
begin
FVMI := TVirtualMethodInterceptor.Create(TActionLink);
FVMI.OnAfter :=
procedure(Instance: TObject; Method: TRttiMethod;
const Args: TArray<TValue>; var Result: TValue)
begin
if Method.Name = 'Execute' then
begin
ActiveControl := nil;
end;
end;
for I := 0 to ControlCount - 1 do
begin
if Controls[I] is TButton then
begin
FVMI.Proxify(TButton(Controls[I]).GetActionLink);
end;
end;
end;
実行してみましょう。…実行時にエラーになりますね。Proxifyで型が一致していないようです。調べてみるとTButtonのActionLinkのインスタンスの型はTActionLinkではなく派生したTPushButtonActionLinkになっています。 FVMI := TVirtualMethodInterceptor.Create(TPushButtonActionLink);
こんどはうまく動作したようです。ところで終了時は?やはりEPrivilege例外が発生してエラーになります。Talesさんが指摘していますが、インターセプト対象のインスタンスが解放されるときには仮想メソッドであるdestructor Destroyが呼び出されるわけで、この時点までTVirtualMethodInterceptorのインスタンスを解放してはいけないということになります。ここではこの問題をclass destructorで解決します。type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
ActionList1: TActionList;
Action1: TAction;
Action2: TAction;
Action3: TAction;
procedure Action1Execute(Sender: TObject);
procedure Action2Execute(Sender: TObject);
procedure Action3Execute(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
class var
FVMI: TVirtualMethodInterceptor;
public
class constructor Create;
class destructor Destroy;
end;
TVirtualMethodInterceptorをclass varとして、class constructorで初期化し、class destructorで解放するようにします(TForm1のOnDestroyイベントの"FVMI.Free;"を削除するのを忘れないように)。class constructor TForm1.Create;
begin
FVMI := nil;
end;
class destructor TForm1.Destroy;
begin
FVMI.Free;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
I: Integer;
begin
if FVMI = nil then
begin
FVMI := TVirtualMethodInterceptor.Create(TPushButtonActionLink);
FVMI.OnAfter :=
procedure(Instance: TObject; Method: TRttiMethod;
const Args: TArray<TValue>; var Result: TValue)
begin
if Method.Name = 'Execute' then
begin
ActiveControl := nil;
end;
end;
end;
for I := 0 to ControlCount - 1 do
begin
if Controls[I] is TButton then
begin
FVMI.Proxify(TButton(Controls[I]).GetActionLink);
end;
end;
end;
これですべてうまく動作しました。終了時もエラーになりません。TVirtualMethodInterceptorがやっていることは基本的にはtalesさんが指摘しているとおりVMTの差し替えです。従って処理に介入できるのはインスタンスの仮想(virtual)メソッドのみで、動的(dynamic)メソッドや静的メソッド、クラスメソッドは対象になりません。またProxifyしたインスタンスが全て解放されるまではTVirtualMethodInterceptorのインスタンスを解放してはいけません(デストラクタはvirtualなのでVMTを参照する)。もうひとつ気をつけなければならないのはTVirtualMethodInterceptorのコンストラクタで指定しているクラス型が実際にProxifyするクラス型と完全に一致していなければならない(代入互換性があるというのではだめ)という点です。
2012/02/29追記: TVirtualMethodInterceptor.OriginalClassプロパティを使ってVMTを書き戻すか、同じことをしてくれるUnproxify(XE2で追加)で終了時の問題をクリアすることができる、という指摘がLynaさんからありました。ということでこちらも試してみます。まずOriginalClassプロパティに格納されているもともとのVMTを書き戻す方法から。
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
ActionList1: TActionList;
Action1: TAction;
Action2: TAction;
Action3: TAction;
procedure Action1Execute(Sender: TObject);
procedure Action2Execute(Sender: TObject);
procedure Action3Execute(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
FVMI: TVirtualMethodInterceptor;
end;
フォームのクラスコンストラクタ/クラスデストラクタを削除し、TVirtualMethodInterceptorを通常のprivateなフィールドに戻します。またフォームのOnDestroyイベントを用意します。procedure TForm1.FormCreate(Sender: TObject);
var
I: Integer;
begin
FVMI := TVirtualMethodInterceptor.Create(TPushButtonActionLink);
FVMI.OnAfter :=
procedure(Instance: TObject; Method: TRttiMethod;
const Args: TArray<TValue>; var Result: TValue)
begin
if Method.Name = 'Execute' then
begin
ActiveControl := nil;
end;
end;
for I := 0 to ControlCount - 1 do
begin
if Controls[I] is TButton then
begin
FVMI.Proxify(TButton(Controls[I]).GetActionLink);
end;
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
var
I: Integer;
begin
for I := 0 to ControlCount - 1 do
begin
if Controls[I] is TButton then
begin
PPointer(TButton(Controls[I]).GetActionLink)^ := FVMI.OriginalClass;
end;
end;
FVMI.Free;
end;
フォームのOnDestroyイベントでProxifyしたVMT(OriginalClass)を元に戻しています。うまくいきましたね。それではDelphi XE2で追加されたUnproxifyを使う方法を。
procedure TForm1.FormDestroy(Sender: TObject);
var
I: Integer;
begin
for I := 0 to ControlCount - 1 do
begin
if Controls[I] is TButton then
begin
FVMI.Unproxify(TButton(Controls[I]).GetActionLink);
end;
end;
FVMI.Free;
end;
フォームのOnDestroyイベントでUnproxifyするだけで基本的に同じです。こちらも問題なく動作しました。
2012年2月17日
Visualizing using FireMonkeyシリーズ
エンバカデロ・テクノロジーズのAnders OhlssonさんによるFireMonkeyで数式をビジュアル化する"Visualizing using FireMonkey"シリーズ(勝手に命名)が翻訳されています。
そういえばJim TierneyさんのLiveBindingチュートリアルの3本目(http://blogs.embarcadero.com/jimtierney/2011/10/14/31608)が翻訳されてないのは元記事がednにあがっていない(blogにのみある)から、とのこと。
2012/03/27追記: C++(C++Builder XE2)を使った記事2本のリンクを追加しました。
- FireMonkey でカスタムメッシュを生成することにより、数学関数を視覚化する (元記事、デモプロジェクト)
- FireMonkey で、波の干渉を視覚化する (元記事、デモプロジェクト)
- FireMonkey で物理的な動きを視覚化する(元記事、デモプロジェクト)
- FireMonkey と C++ でカスタムメッシュを生成することにより、数学関数を視覚化する (元記事、デモプロジェクト)
- FireMonkey と C++Builder XE2 で、波の干渉を視覚化する (元記事、デモプロジェクト)
そういえばJim TierneyさんのLiveBindingチュートリアルの3本目(http://blogs.embarcadero.com/jimtierney/2011/10/14/31608)が翻訳されてないのは元記事がednにあがっていない(blogにのみある)から、とのこと。
2012/03/27追記: C++(C++Builder XE2)を使った記事2本のリンクを追加しました。
2012年2月15日
2012年2月9日
例外チェーン
Delphi 2009の新機能の一つに例外チェーン、あるいはネストした例外オブジェクトというものがあります。従来の(Delphi 2007およびそれ以前の)例外処理では、発生した例外をtry...except文で捕捉した場合に、そのままendに到達することで例外処理を終了させるか、別の例外オブジェクトを生成して送出することで例外処理をさらに上位に向かって継続するか、例外を再生成("raise;")することで例外処理を継続するか、のいずれかになります。しかし、別の例外を送出する場合は元の例外オブジェクトの持つ情報は消滅してしまいますし、例外を再生成する場合は新たな情報を付け加えることができません。そこでこの例外チェーンという機能を使うことで、元の例外オブジェクトの持つ情報に新たな情報を加えて上位の処理に送出することができます。
例として、あるテキストファイルの1行目に書かれている文字列を10進数とみなして取り込む、という関数を考えてみます。
この例外チェーンに関係するメソッド、プロパティには
元ねたはDELPHI 2009 HANDBOOK。
例として、あるテキストファイルの1行目に書かれている文字列を10進数とみなして取り込む、という関数を考えてみます。
type
EFileIsEmpty = class(Exception);
function ReadIntegerValueFromFile(const Path: String): Integer;
var
Filename: String;
SL: TStringList;
begin
Filename := IncludeTrailingPathDelimiter(Path) + 'FOO.TXT';
SL := TStringList.Create;
try
SL.LoadFromFile(Filename);
if SL.Count = 0 then
begin
raise EFileIsEmpty.Create('File is empty.');
end;
Result := StrToInt(SL.Strings[0]);
finally
SL.Free;
end;
end;
ここで例外が送出される状況には、1.何らかの理由でファイルを開けない(EFOpenError)、2.ファイルが空(0行)だった(EFileIsEmpty)、3.1行目に10進数に変換できない文字があった(EConvertError)の3つがあります(正確にはリソース不足でTStringList.Createが失敗する状況を含め4つですが、今回は考えないことにします)。それぞれの原因に対応した例外クラスがあるため、呼び出し元ではエラーの理由を例外オブジェクトのクラスの違いで知ることができます。procedure TForm1.Button1Click(Sender: TObject);
begin
try
ReadIntegerValueFromFile('C:\BAR');
except
on E: EFOpenError do
begin
MessageDlg('ファイルを開けませんでした。' + sLineBreak + E.Message,
mtInformation,[mbOk],0);
Exit;
end;
on E: EFileIsEmpty do
begin
MessageDlg('ファイルが空でした。' + sLineBreak + E.Message,
mtInformation,[mbOk],0);
Exit;
end;
on E: EConvertError do
begin
MessageDlg('不正な文字列が入っていました。' + sLineBreak + E.Message,
mtInformation,[mbOk],0);
Exit;
end;
end;
end;
ここでエラーメッセージにファイル名を表示したい、ということになったとします。ところが呼出元のレベルではファイルの存在するパスはわかっていますがフルパス名はReadIntegerValueFromFileの内部に隠蔽されてしまっています。そこでtype
EFileIsEmpty = class(Exception);
EFileReadError = class(Exception)
private
FFilename: String;
public
constructor Create(const Msg: string; const AFilename: String);
property Filename: String read FFilename;
end;
function ReadIntegerValueFromFile(const Path: String): Integer;
var
Filename: String;
SL: TStringList;
begin
Filename := IncludeTrailingPathDelimiter(Path) + 'FOO.TXT';
SL := TStringList.Create;
try
try
SL.LoadFromFile(Filename);
if SL.Count = 0 then
begin
raise EFileIsEmpty.Create('File is empty.');
end;
Result := StrToInt(SL.Strings[0]);
except
raise EFileReadError.Create('Error!',Filename);
end;
finally
SL.Free;
end;
end;
constructor EFileReadError.Create(const Msg, AFilename: String);
begin
inherited Create(Msg);
FFilename := AFilename;
end;
とすることでprocedure TForm1.Button1Click(Sender: TObject);
begin
try
ReadIntegerValueFromFile('C:\BAR');
except
on E: EFileReadError do
begin
MessageDlg(Format('ファイル ''%s'' の読み込みでエラーが発生しました。' +
sLineBreak + '%s',
[E.Filename,E.Message]),
mtInformation,[mbOk],0);
Exit;
end;
end;
end;
のようにエラーがあったときにそのファイルのフルパス名を知ることができます。が、エラーの原因はわからなくなってしまいました。そこで例外チェーンの登場です。クラスプロシージャException.RaiseOuterExceptionを使用することで、その例外ハンドラで受け取った例外オブジェクトを消滅させることなく新たな例外を送出することができます。type
EFileIsEmpty = class(Exception);
EFileReadError = class(Exception)
private
FFilename: String;
public
constructor Create(const Msg: string; const AFilename: String);
property Filename: String read FFilename;
end;
function ReadIntegerValueFromFile(const Path: String): Integer;
var
Filename: String;
SL: TStringList;
begin
Filename := IncludeTrailingPathDelimiter(Path) + 'FOO.TXT';
SL := TStringList.Create;
try
try
SL.LoadFromFile(Filename);
if SL.Count = 0 then
begin
raise EFileIsEmpty.Create('File is empty.');
end;
Result := StrToInt(SL.Strings[0]);
except
Exception.RaiseOuterException(EFileReadError.Create('Error!',Filename));
end;
finally
SL.Free;
end;
end;
constructor EFileReadError.Create(const Msg, AFilename: String);
begin
inherited Create(Msg);
FFilename := AFilename;
end;
ここで送出される例外オブジェクトはEFileReadErrorのままです。しかしprocedure TForm1.Button1Click(Sender: TObject);
begin
try
ReadIntegerValueFromFile('C:\BAR');
except
on E: EFileReadError do
begin
if E.InnerException is EFOpenError then
begin
MessageDlg(Format('ファイル ''%s'' を開けませんでした。' +
sLineBreak + '%s',
[E.Filename,E.InnerException.Message]),
mtInformation,[mbOk],0);
end
else if E.InnerException is EFileIsEmpty then
begin
MessageDlg(Format('ファイル ''%s'' が空でした。' +
sLineBreak + '%s',
[E.Filename,E.InnerException.Message]),
mtInformation,[mbOk],0);
end
else if E.InnerException is EConvertError then
begin
MessageDlg(Format('ファイル ''%s'' の1行目に不正な文字列が入っていました。' +
sLineBreak + '%s',
[E.Filename,E.InnerException.Message]),
mtInformation,[mbOk],0);
Exit;
end;
Exit;
end;
end;
end;
と例外オブジェクトのInnerExceptionプロパティでException.RaiseOuterExceptionを呼び出した時点での例外オブジェクトを参照することができます。この例外チェーンに関係するメソッド、プロパティには
- RaiseOuterException: 例外ブロック内で使用し、新しく生成した例外オブジェクトをパラメータとして呼び出すことでその時点での例外オブジェクトをチェーンした例外を送出するExceptionクラスのクラスプロシージャ。
- ThrowOuterException: RaiseOuterExceptionと同じ。C++では例外はraiseするものではなくthrowするものなのでこの名前のクラスプロシージャも用意されている。
- InnerException: 最も近いRaiseOuterExceptionを送出した時点での例外オブジェクトを格納しているプロパティ。通常の例外の送出(raise EXXXX.Create)ではnilとなる。またRaiseOuterExceptionがネストして呼び出されている場合はE.InnerException.InnerException...のようにさかのぼって例外オブジェクトを参照することができる。
- BaseException: ネストしてRaiseOuterExceptionが呼び出された場合に最初に送出された例外オブジェクトを格納しているプロパティ。通常の例外の送出(raise EXXXX.Create)ではnilとなる。また1段階しかRaiseOuterExceptionが呼び出されていない場合はInnerException=BaseExceptionとなる。
- ToString例外チェーン上の全ての例外オブジェクトのMessageプロパティをCR+LFで連結したプロパティ。
元ねたはDELPHI 2009 HANDBOOK。
Category:
Delphi 2009,
Delphi 2010,
Delphi Programming Tips,
Delphi XE,
Delphi XE2
at
17:33:00
0
Comments
2012年2月2日
[書籍]Clean Coder
MARUZEN&ジュンク堂書店 渋谷店でThe Clean Coderの翻訳である
Clean Coder (amazon)/Robert C. Martin著/角征典訳/アスキー・メディアワークス/ISBN 978-4-04-886069-7/2,100円
を購入。プロフェッショナルなプログラマ(またはそれを目指す人)は読んでおくべきです。
Clean Coder (amazon)/Robert C. Martin著/角征典訳/アスキー・メディアワークス/ISBN 978-4-04-886069-7/2,100円
を購入。プロフェッショナルなプログラマ(またはそれを目指す人)は読んでおくべきです。
2012年2月1日
第21回エンバカデロ・デベロッパーキャンプ開催決定
第21回エンバカデロ・デベロッパーキャンプは2012年03月09日~2012年03月10日の2日間で開催されます。
エンバカデロ・デベロッパーキャンプ
【3/9~10】第21回 エンバカデロ・デベロッパーキャンプ
今回は全セッションオンラインで中継あり、懇親会あり、そして宿泊ありと盛り沢山で行われます。
エンバカデロ・デベロッパーキャンプ
【3/9~10】第21回 エンバカデロ・デベロッパーキャンプ
今回は全セッションオンラインで中継あり、懇親会あり、そして宿泊ありと盛り沢山で行われます。
2012/02開催のウェブセミナー
- 2012/02/15 17:00-18:00(JST) 2/15 - デベロッパーTV - 「デブサミ直前 – RAD Studio XE2」
2012/02/23追記: リプレイビデオのリンクを追加しました。
2012年1月31日
Prism XE2 Update 4
Prism XE2 Update 4(Version 5.0.31 Build 971)がリリースされています。
28726 Embarcadero Prism XE2 Update 4 (January 2012 Release)
Embarcadero Prism XE2 Update 4 is now available
Embarcadero Prism XE2 Update 4 が公開されました
Delphi Insider: Embarcadero Prism XE2 January 2012 release
28726 Embarcadero Prism XE2 Update 4 (January 2012 Release)
Embarcadero Prism XE2 Update 4 is now available
Embarcadero Prism XE2 Update 4 が公開されました
Delphi Insider: Embarcadero Prism XE2 January 2012 release
2012年1月27日
Firebirdロードマップ(2012/01)
ちょっと前のことになりますが、Firebirdのロードマップが更新されています。
Firebird: Roadmap
てきとうな要約:
元ねたはFirebird News » Firebird Roadmap updated for January 2012。
2012/03/18追記: Firebird News » Firebird roadmap has been updatedからの情報で、ロードマップが一部変更されています。具体的には、
Firebird: Roadmap
てきとうな要約:
- 1.5 - 1.5.6が最終版で、今後公式にリリースされることはない。ただし新しいバージョンからバックポートされたバグフィックスを含む修正版が必要と判断した場合はIBPhoenixから商用製品としてリリースされるかもしれない。
- 2.0 - 2.0.6(2010/06)が最新版で、年1回のメンテナンスサイクルでのリリースが宣言されている。次のリリース(2.0.7)は2012年のQ1を予定。
- 2.1 - 2.1.4(2011/03)が最新版で、こちらも年1回のメンテナンスサイクルでのリリースが宣言されている。次のリリース(2.1.5)は2012年のQ3を予定。
- 2.5 - 2.5.1(2011/10)が最新版で、年2回のメンテナンスサイクルでのリリースが宣言されている。次のリリース(2.5.2)は2012年のQ2を予定。
- 3.0 - 現在開発中の最新版で、Alpha 1は2012年のQ1にリリースを予定。キーポイントは以下のとおり。
- 新しい認証サブシステム、構成サブシステムを含む、改訂されたアーキテクチャ
- 共有ページキャッシュを備えたスケーラブルなマルチスレッドエンジン
- 新しいシステムテーブル、モニタテーブルを備えた新しいODS(Version 12)
- JavaやC++などによる外部ストアドプロシージャ、トリガ、関数
- 作り直されたオプティマイザと新しいデータアクセスメソッド
- セキュリティの強化
- さまざまなSQL拡張
元ねたはFirebird News » Firebird Roadmap updated for January 2012。
2012/03/18追記: Firebird News » Firebird roadmap has been updatedからの情報で、ロードマップが一部変更されています。具体的には、
- 2.0は現在2.0.7がRC1(これは変更なし)
- 2.1は若干早まって2.1.5を2012年のQ2に予定
- 2.5も若干早まって2.5.2を2012年のQ2に予定
- 3.0は逆にAlpha 1を2012年のQ2に遅らせる
2012年1月26日
TMS Aurelius
Delphiで使用できるORMとしてちょっと前にDORM (Delphi ORM)を取り上げましたが、TMS Softwareから
TMS Aurelius
という製品がリリースされています。Delphi 2010/XE/XE2で動作し、
TMS Aurelius
という製品がリリースされています。Delphi 2010/XE/XE2で動作し、
- 対応プラットフォーム: Windows x86/x64、Mac OS X
- 対応RDBMS: Firebird、Interbase、Microsoft SQL Server、MySQL、NexusDB、Oracle、SQLite、PostgreSQL、DB2
- 対応データアクセスコンポーネント: dbExpress、dbGo(ADO)、Interbase Express(IBX)、SQLite、AnyDac、NexusDB、SQL-Direct
2012年1月17日
IBSurgeon Log Viewer
InterBase/Firebird用の各種ツールで有名なIBSurgeonからIBSurgeon Log ViewerというツールがFREEWAREとして公開されています。
IBSurgeon Log Viewer
InterBase(interbase.log)やFirebird(firebird.log)のログファイルには(いつもではないにしても)ときどき有用な情報が記録されています。しかしログそのものが場当たり的に拡張されてきたため、メモ帳やエディタなどで開いてもなかなか必要な情報にたどりつくことができません(また必要な情報が記録されていないことも多々あります)。このIBSurgeon Log Viewerはこれらのログを見やすく表示するだけでなく、可能であればそのログの原因となるような状況についても解説を表示してくれる("Message Description"ペイン)というツールです。現時点(2012/01/17)の最新バージョンは2.0.0.5となっています。
元ねたはFirebird News » IBSurgeon Log Viewer 2.0 – free tool for viewing and analyzing firebird.log。
IBSurgeon Log Viewer
InterBase(interbase.log)やFirebird(firebird.log)のログファイルには(いつもではないにしても)ときどき有用な情報が記録されています。しかしログそのものが場当たり的に拡張されてきたため、メモ帳やエディタなどで開いてもなかなか必要な情報にたどりつくことができません(また必要な情報が記録されていないことも多々あります)。このIBSurgeon Log Viewerはこれらのログを見やすく表示するだけでなく、可能であればそのログの原因となるような状況についても解説を表示してくれる("Message Description"ペイン)というツールです。現時点(2012/01/17)の最新バージョンは2.0.0.5となっています。
元ねたはFirebird News » IBSurgeon Log Viewer 2.0 – free tool for viewing and analyzing firebird.log。
2012年1月11日
2012年1月5日
2012/01開催のウェブセミナー
- 2012/01/18 17:00-18:00(JST) デベロッパーTV - ニューイヤーキックオフレポート
2012/02/08追記: リプレイビデオのリンクを追加しました。
2012年1月4日
IDE Fix Pack 4.6.5/4.6.6リリース
Andreas HausladenさんのIDE Fix Pack 2009/2010/XE/XE2がアップデートされてVersion 4.6.5になっています。
IDE Fix Pack 4.6.5 released | Andy’s Blog and Tools
追記: IDE Fix Pack 2009/2010/XE/XE2 Version 4.6.5にはデバッガが相対パス指定のソースファイルを見つけられないという問題があり、これを修正したVersion 4.6.6がリリースされています。
IDE Fix Pack 4.6.6 – bug fix release | Andy’s Blog and Tools
IDE Fix Pack 4.6.5 released | Andy’s Blog and Tools
追記: IDE Fix Pack 2009/2010/XE/XE2 Version 4.6.5にはデバッガが相対パス指定のソースファイルを見つけられないという問題があり、これを修正したVersion 4.6.6がリリースされています。
IDE Fix Pack 4.6.6 – bug fix release | Andy’s Blog and Tools
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に関する記述が追加されたのでリンクを追加しました。
登録:
投稿 (Atom)