Chris BensenさんによるDelphi 2010の新機能の一つ、タッチキーボードのhackについての解説です。
Hacking the TTouchKeyboard Part Iではまずキーボードレイアウトの名称の一覧を取得し、この名称からキーボードレイアウトをロードします。
Hacking the TTouchKeyboard Part IIでは取得したキーボードレイアウトをXMLで読み書きする、というサンプルプログラムが紹介されています(タッチキーボードとは直接関係ない部分だからか説明省略です)。
Hacking the TTouchKeyboard Part IIIでは逆にXML表現のキーボードレイアウトをコンパイルしてリソースとしてリンクすることができる形式に変換するキーボードレイアウトコンパイラが紹介されています。
Hacking the TTouchKeyboard Part IVではXML表現のキーボードレイアウトファイルの各要素が説明されています。
(以下追記予定)
2009年12月25日
2009年12月24日
Delphi 2010 DataSnap活用ガイド
Bob SwartさんによるDataSnap 2010のホワイトペーパが翻訳、公開されています。
RAD Studio 2010 In Action JP
DataSnap 2010ホワイトペーパーダウンロード
また関連して紹介記事がCodeZineに掲載されています。
Delphiユーザー必見の技術情報を集約した 「Delphi 2010 DataSnap活用ガイド」(1/2):CodeZine
2010/02/04追記: オリジナル(英語版)も公開されています。
White Paper - Delphi 2010 DataSnap: Your data - where you want it, how you want it
RAD Studio 2010 In Action JP
DataSnap 2010ホワイトペーパーダウンロード
また関連して紹介記事がCodeZineに掲載されています。
Delphiユーザー必見の技術情報を集約した 「Delphi 2010 DataSnap活用ガイド」(1/2):CodeZine
2010/02/04追記: オリジナル(英語版)も公開されています。
White Paper - Delphi 2010 DataSnap: Your data - where you want it, how you want it
2009年12月23日
IDE Fix Pack 2.9リリース
Andreas HausladenさんのIDE Fix Pack (for Delphi/C++Builder 2007/2009/2010)がアップデートされてVersion 2.9になっています。
Andy’s Blog and Tools » New IDE Fix Pack 2.9
Andy’s Blog and Tools » New IDE Fix Pack 2.9
2009年12月18日
Windows Vista以降のOSでgsecがサービス動作のFirebirdに接続できないとき
Windows Vista以降のOSにFirebirdをインストールし、サービスとして動作させた後に、ユーザを作成するためにgsecでサーバに接続しようとするとローカルプロトコルが動作せずにエラーになることがあります。この場合は一旦Firebirdのサービス("Firebird Guardian"か、存在しなければ"Firebird Server")を停止し、firebird.confの
となっている行を
としてFirebirdを起動するとローカルプロトコルが正常に動作し、gsecで接続できるようになります(Firebird 2.x)。Firebird 1.5では
とします。
元ねたはキムラデービーブログ | [IBDeveloper] FirebirdはWindows Vistaの上で動作しますか?、設定ファイル(aliases.conf/firebird.conf)のリファレンス - Firebird Wiki、Does Firebird work on Windows Vista or Windows 7?あたり。
# IpcName =
IpcName = Global\FIREBIRD
IpcName = Global\FirebirdIPI
元ねたはキムラデービーブログ | [IBDeveloper] FirebirdはWindows Vistaの上で動作しますか?、設定ファイル(aliases.conf/firebird.conf)のリファレンス - Firebird Wiki、Does Firebird work on Windows Vista or Windows 7?あたり。
RAD Studio/Delphi/C++Builder 2007 informal, unofficial fix for Windows 7
RAD Studio/Delphi/C++Builder 2007をWindows 7の64bit版で動作させるとデバッガで例外が発生してしまう問題(RAD Studio/Delphi/C++Builder 2009ではHotfix 2で修正されていた)の私的で非公式な修正をChris Hesikさんがリリースしています。
Chris’ CodeGear Debugger Blog » RAD Studio 2007 informal, unofficial fix available: Windows 7 problem addressed
ID: 27521, RAD Studio 2007 Debugger Fix for Windows 7
内容的にはOlaf Monienさんのバイナリパッチと同等のものに加えて、いくつかのWindows 7環境における問題のfixを含んでいるようです。なお
また(もうないとは思いますが)新しいアップデートがリリースされた場合はこのファイル(bordbk105N.dll)を元のものに戻すか、削除後に修復セットアップしてからアップデートを適用する必要があると思われるので注意が必要です。
Chris’ CodeGear Debugger Blog » RAD Studio 2007 informal, unofficial fix available: Windows 7 problem addressed
ID: 27521, RAD Studio 2007 Debugger Fix for Windows 7
内容的にはOlaf Monienさんのバイナリパッチと同等のものに加えて、いくつかのWindows 7環境における問題のfixを含んでいるようです。なお
This fix has not been tested at all, and it is not supported in any way by Embarcadero. If it works for you, great… if not, you’ve been warned.(超訳:この修正は完全にテストされてはおらず、エンバカデロによりサポートされません。あなたの環境で動作すれば素晴らしい…んですが、もし駄目だったとしても、警告しましたよ)だそうです。
また(もうないとは思いますが)新しいアップデートがリリースされた場合はこのファイル(bordbk105N.dll)を元のものに戻すか、削除後に修復セットアップしてからアップデートを適用する必要があると思われるので注意が必要です。
2009年12月15日
RAD Studio/Delphi/C++Builder 2010 Update 4, Update 5, Boost Library Update
RAD Studio/Delphi/C++Builder 2010のUpdate 4, Update 5 (database pack), Boost Library Updateがリリースされています。2009/11/13にwithdrawとなったUpdate 2, Update 3, Boost Updateの修正に加えてそのほかの修正も行われているとのことです。
27492 Update 4, 5 & Boost Lib for RAD Studio, Delphi & C++Builder 2010
リリース ノート: Delphi 2010 および C++Builder 2010 Update 4、Update 5(データベース パック)、Boost Library Update
27492 Update 4, 5 & Boost Lib for RAD Studio, Delphi & C++Builder 2010
リリース ノート: Delphi 2010 および C++Builder 2010 Update 4、Update 5(データベース パック)、Boost Library Update
2009年12月14日
Delphi 2010 Handbook続報
Marco CantuさんによればDelphi 2010 Handbookは大体完成して2010/01末には書籍として販売されるようです。また新たな試みとして全体を3部に分割してPDFで月曜日(2010/12/14)から先行販売するそうです。今回は日本語訳の動きはないのですかね。
Delphi 2010 Handbook Almost Ready
2009/12/15追記: 予告どおりPDF版のPart 1が9.80USD(846JPY)で発売されました。Part 2、Part 3は15日の間隔でリリースされるそうです。
Delphi 2010 Handbook Part 1 PDF Available
Delphi 2010 Handbook Almost Ready
2009/12/15追記: 予告どおりPDF版のPart 1が9.80USD(846JPY)で発売されました。Part 2、Part 3は15日の間隔でリリースされるそうです。
Delphi 2010 Handbook Part 1 PDF Available
2009年12月12日
Firebird 2.5 Release Candidate 1リリース
新しいスレッディングアーキテクチャを採用し、新たにSuperClassicが追加されたFirebird 2.5のRelease Candidate 1がリリースされています。RCはもう一度予定されているようです。
Firebird File Repositories (download)
Firebird 2.5 Release Notes
Firebird File Repositories (download)
Firebird 2.5 Release Notes
2009年12月10日
[書籍]Firebird徹底入門
ジュンク堂書店の新宿店で
Firebird徹底入門/木村明治、はやしつとむ、坂井恵著/翔泳社/ISBN 978-4798119632/3,990円
を買ってきました。結構分厚いですね。表紙は残念ながら焼き鳥ではありません。
Firebird徹底入門/木村明治、はやしつとむ、坂井恵著/翔泳社/ISBN 978-4798119632/3,990円
を買ってきました。結構分厚いですね。表紙は残念ながら焼き鳥ではありません。
2009年12月9日
2009年12月6日
DelphiSpeedUp 2.8/IDE Fix Pack 2.8リリース
Andreas HausladenさんのDelphiSpeedUpがアップデートされてVersion 2.8になっています。Delphi/C++Builder 6/7/2005/2006/2007のデバッガのステップイン([F7]キー)の動作が改善されています(Delphi 5については
またIDE Fix Pack (for Delphi/C++Builder 2009/2010)もアップデートされてVersion 2.8になっています。上記のデバッガのステップインの問題のほかに、呼び出し履歴(call Stack)とローカル変数(local variables)の表示更新を不必要に行わないようにし、Delphi/C++Builder 2010のオブジェクトインスペクタで[F1]キーが効かない問題も修正されます。
Andy’s Blog and Tools » DelphiSpeedUp 2.8 and IDE Fix Pack 2.8 released
Sorry Delphi 5 users, but I can’t support you anymoreとのこと)。
またIDE Fix Pack (for Delphi/C++Builder 2009/2010)もアップデートされてVersion 2.8になっています。上記のデバッガのステップインの問題のほかに、呼び出し履歴(call Stack)とローカル変数(local variables)の表示更新を不必要に行わないようにし、Delphi/C++Builder 2010のオブジェクトインスペクタで[F1]キーが効かない問題も修正されます。
Andy’s Blog and Tools » DelphiSpeedUp 2.8 and IDE Fix Pack 2.8 released
2009年12月4日
RAD Studio/Delphi/C++Builder 2009 Hotfix 2
RAD Studio/Delphi/C++Builder 2009のHotfix 2がリリースされています。Windows 7の64bit版におけるデバッガの問題など3点の不具合を修正するものです。RAD Studio/Delphi/C++Builder 2007用のhotfixもお願いしたいところです。
Hotfix 2 for Delphi, C++Builder and RAD Studio 2009
27476 Hotfix 2 for Delphi 2009 and C++Builder 2009
2009/12/18追記: Chris HesikさんによるRAD Studio/Delphi/C++Builder 2007用のUnofficial, informal fixがリリースされました。
Hotfix 2 for Delphi, C++Builder and RAD Studio 2009
27476 Hotfix 2 for Delphi 2009 and C++Builder 2009
2009/12/18追記: Chris HesikさんによるRAD Studio/Delphi/C++Builder 2007用のUnofficial, informal fixがリリースされました。
2009年12月2日
第15回エンバカデロ・デベロッパーキャンプ終了
スピーカの皆さん、関係者の皆さん、懇親会に参加したみなさん、おつかれさまでした。David.Iさんも下手な説明ともっと下手な英語でくだらない話を聞いていただいてありがとうございました。
ずっと放置状態でしたが、ここまでで出ていない情報をいくつか。
G1(オープニングセッション)
G2(コミュニティトーク)
2009/12/15追記: セッション資料がダウンロードできるようになっています。またはやしさんによるストリーミングビデオも見られるようになっています。
第15回 エンバカデロ・デベロッパーキャンプ - 資料ダウンロード
第15回エンバカデロ・デベロッパーキャンプ | Tomneko blog
2009/12/24追記: G1「Delphi/C++Builderの今そして未来」のセッションビデオが公開されています。またG1/G2関係の情報を追加しました。
セッションビデオ「Delphi/C++Builderの今そして未来」
ずっと放置状態でしたが、ここまでで出ていない情報をいくつか。
G1(オープニングセッション)
- 来年(2010年)は従来のような“リアル”なデベロッパーキャンプは2回(東京、大阪)にして、“バーチャル”なものをもう2回程度、というように考えている。 by 藤井さん
»“バーチャル”なら、参加者はもちろんセッションスピーカも“リアル”ではなかなか来てもらえないような人(たとえばMarco CantuさんとかDEKOさんとか)にも出てもらいやすくなる、と。ただしwebセミナーの“盛り上がらなさ”感などを考えるとある程度の聴衆は必要かも、とか、時間帯は色々な意見があって難しい(webセミナーでも時間帯の希望はばらついていたそうで)、とか、時間差をつけての録画の再配信って、とか、一度小規模な形で試してみるか、とか、うまくいくようにするには考えなければいけないことがたくさんありますね、なんてお話もさせていただきました(番外編で)。
G2(コミュニティトーク)
- Project Xでは(KylixのようにIDEを移植するのは難しいので)クロス開発、リモートデバッグの形態になる。
- VCLのWindows 7対応は(Windows 7とDelphi 2010のリリースのタイミングの関係から)まだ不足しているので今後対応を進めていきたい。
- Unicodeの扱いが難しいのは新しいやり方になれるしかない。
»Unicodeの扱いは.NETでのサポート範囲に留まり、独自のアプローチはあまり考えていない、というようなニュアンス。 - マルチコアをよりうまく使うようなもの(文法的なものやライブラリなど)は現在開発中の新しいコンパイラで考えたい。
- 分散処理へのアプローチはDataSnapで。
- クラウドコンピューティングについては未だ業界標準が存在していないのでなんとも。
»コンポーネントでサポートするような方向性はありかもしれない。
2009/12/15追記: セッション資料がダウンロードできるようになっています。またはやしさんによるストリーミングビデオも見られるようになっています。
第15回 エンバカデロ・デベロッパーキャンプ - 資料ダウンロード
第15回エンバカデロ・デベロッパーキャンプ | Tomneko blog
2009/12/24追記: G1「Delphi/C++Builderの今そして未来」のセッションビデオが公開されています。またG1/G2関係の情報を追加しました。
セッションビデオ「Delphi/C++Builderの今そして未来」
2009年11月30日
FlameRobin
はやしさんの"Firebird RDBMS 傾向と対策1"を見ていたらFlameRobinというFirebirdの管理ツールが紹介されていました。Firebird日本ユーザ会からダウンロードできる日本語版は0.8.3ですが、公式のsorceforgeでは最新が0.9.3となっています。
Firebird RDBMS 傾向と対策シリーズ無償公開
今はなきPSネットワークから出ていたFirebird RDBMS 傾向と対策(全4巻)をPDF化したものをはやしさんが公開してくださっています(焼き鳥本出版記念?)。
Firebird RDBMS傾向と対策 ◁ TomnekoSoft.com
Firebird Books :: Firebird関連の本・書籍の紹介
内容はFirebird 1.0ベースですが、それを念頭においておけばInterBase/Firebirdのユーザにとって有益なものだと思います。
Firebird RDBMS傾向と対策 ◁ TomnekoSoft.com
Firebird Books :: Firebird関連の本・書籍の紹介
内容はFirebird 1.0ベースですが、それを念頭においておけばInterBase/Firebirdのユーザにとって有益なものだと思います。
2009年11月25日
Direct2Dのデバッグについて
Chris Bensenさんによると、Intelのグラィックドライバの問題で、(Delphi/C++Builder 2010の新機能である)Direct2Dをデバッグしようとするとデバッガの動作が非常に遅くなる現象が確認されています。これはDelphi/C++Builder固有の問題ではなく、Visual Studioでも発生するとのことで、NVIDIAのビデオカードを使えば問題ないようです。
Chris Bensen: Debugging Direct2D
Chris Bensen: Debugging Direct2D
Firebird徹底入門発売決定
はやしさんからアナウンスがあった焼き鳥本ですが、2009/12/09に翔泳社から発売されるようです。
Firebird徹底入門(amazon.co.jp)/木村明治、はやしつとむ、坂井恵著/翔泳社/ISBN 978-4798119632/3,990円
Firebird徹底入門(amazon.co.jp)/木村明治、はやしつとむ、坂井恵著/翔泳社/ISBN 978-4798119632/3,990円
2009年11月20日
InterBase Roadmap
InterBaseのロードマップが公開されています。2009年にリリースされたInterBase SMP 2009ではセキュリティと暗号化にフォーカスしていましたが、2010/09にリリースを計画しているInterBase SMP 2011では
InterBase Roadmap
2009/11/24追記: 日本語のInterBaseのロードマップが公開されています(ロードマップそのものは英語のままですが)。
- Windows x64版の追加
- データベースクラウド
- パスワード暗号の強化
- Windows 7サポート
- エンバカデロのデータベースツールによるサポート
- ストアドプロシージャのデバッグ機能
- ユニバーサルトリガ
- チューニングを行うためのSQLヒント
- より大きいインデックスキー
- クライアント/サーバプロトコルの最適化
InterBase Roadmap
2009/11/24追記: 日本語のInterBaseのロードマップが公開されています(ロードマップそのものは英語のままですが)。
2009年11月12日
Webセミナー Delphi/C++Builder 2010 - タッチプログラミング
11/12 - Webセミナー「Delphi/C++Builder 2010 - タッチプログラミング」
無事に終了しました。次はDirect2Dとかやってほしいですね。
無事に終了しました。次はDirect2Dとかやってほしいですね。
RAD Studio/Delphi/C++Builder 2010 Update 2, Update 3, Boost Library Update
RAD Studio/Delphi/C++Builder 2010のNovember 2009 Update(Update 2/Update 3/Boost Library Update)がリリースされています。
27438 November 2009 Update for RAD Studio, Delphi & C++Builder 2010
リリースノート: Delphi 2010 および C++Builder 2010 Update 2、Update 3(データベース パック)、C++Builder 2010 Boost Update
またDavid DeanさんがC++Builder 2010のBoostライブラリのサポート状況を更新しています。
David Dean » C++Builder 2010 Boost support (Update)
2009/11/13追記: November 2009 Update(Update 2/Update 3/Boost Library Update)は現時点でwithdrawとなった模様です。A7Mさんが指摘しているWindows 7 x64上でのライセンスの認識の問題が原因でしょうか。
Keep seeing registration dialog after Rad Studio 2010Update 2 & 3 installed
2009/11/14追記:
Nick Hodges » Blog Archive » The Coming RAD Studio Update
27438 November 2009 Update for RAD Studio, Delphi & C++Builder 2010
リリースノート: Delphi 2010 および C++Builder 2010 Update 2、Update 3(データベース パック)、C++Builder 2010 Boost Update
またDavid DeanさんがC++Builder 2010のBoostライブラリのサポート状況を更新しています。
David Dean » C++Builder 2010 Boost support (Update)
2009/11/13追記: November 2009 Update(Update 2/Update 3/Boost Library Update)は現時点でwithdrawとなった模様です。A7Mさんが指摘しているWindows 7 x64上でのライセンスの認識の問題が原因でしょうか。
Keep seeing registration dialog after Rad Studio 2010Update 2 & 3 installed
2009/11/14追記:
we are working on a fix that will cover everyoneだそうです。
Nick Hodges » Blog Archive » The Coming RAD Studio Update
2009年11月11日
2009年11月10日
Webセミナー Delphi/C++Builder 2010 - dbExpress/DataSnap開発手法
11/10 - Webセミナー「Delphi/C++Builder 2010 - dbExpress/DataSnap開発手法」
無事終了です。参加して気が付いたことを。
今回説明に使ったPPTファイルはそのうちにPDF化してダウンロードできるようにしていただけるということです(できればサンプルソースもお願いしたいところです)。
2009/11/11追記: セミナー中に出た質問についての情報がTeam Japanに掲載されています。
Team Japan » DataSnap 2010 と HTTPS
無事終了です。参加して気が付いたことを。
- Office Live Meetingのクライアントに参加者として表示されるのは登録時の"名"(Firstname)の部分なので要注意(日本向きな仕様ではありませんが、しょせんMSですから)。
- webクライアント(Live Meeting Web Access)だと音声が出ないので、Office Live Meetingクライアントを使用しましょう。
- 質問は回答が行われるまで新しいものを出せません(質問を修正することは可能)。
今回説明に使ったPPTファイルはそのうちにPDF化してダウンロードできるようにしていただけるということです(できればサンプルソースもお願いしたいところです)。
2009/11/11追記: セミナー中に出た質問についての情報がTeam Japanに掲載されています。
Team Japan » DataSnap 2010 と HTTPS
Firebird 2.5レビュー
近日(?)公開予定のFirebird 2.5についてはやしさんがOSC 2009 Tokyo/Fallで講演したときの資料を公開しています。Firebird 2.5の目玉機能であるSuper Classic Serverについての説明やWindows/Linux上でのMySQL/PostgreSQLとのパフォーマンス比較など、なかなか興味深い資料です。
TomnekoSoft.com :: Firebird RDBMSの情報
Firebird2.5がやってきた!~MySQL、PostgreSQLとのパフォーマンス比較~ ◁ TomnekoSoft.com
また2009/12/上旬には翔泳社から木村明治さん、はやしつとむさん、坂井恵さんの共著で"Firebird徹底入門"が発売されるとのことです。Firebird=焼き鳥、ですか。
TomnekoSoft.com :: Firebird RDBMSの情報
Firebird2.5がやってきた!~MySQL、PostgreSQLとのパフォーマンス比較~ ◁ TomnekoSoft.com
また2009/12/上旬には翔泳社から木村明治さん、はやしつとむさん、坂井恵さんの共著で"Firebird徹底入門"が発売されるとのことです。Firebird=焼き鳥、ですか。
2009年11月9日
JVCL 3.39リリース
JVCL(JEDI Visual Component Library)がアップデートされてVersion 3.39(JCL Version 2.1.1)になっています。
Browse JEDI VCL for Delphi Files on SourceForge.net
Browse JEDI VCL for Delphi Files on SourceForge.net
2009年11月5日
第15回エンバカデロ・デベロッパーキャンプ日程決定
第15回エンバカデロ・デベロッパーキャンプは2009年12月02日に東京国際フォーラムのホールD1、会議室G502/G510で開催されます。今回はDavid Iさん(エンバカデロ・テクノロジーズ チーフエバンジェリスト)がいらっしゃるとのことです。
2009/11/20追記: 番外の懇親会は前回と同じところだそうです。こういうのは好き嫌いが分かれるところですが。
Team Japan » 第15回デベロッパーキャンプ番外セッション - 懇親会場決まりました
2009/11/27追記: EDNにアーティクルが追加されています。
第15回 エンバカデロ・デベロッパーキャンプ
デベロッパーキャンプ番外セッション 「デベロッパートーク BOF」
2009/11/30追記: 会場のホールD1(ホールDの1F)、会議室G502(ブロックGの5Fの北端)、会議室G510(ブロックGの5Fの南端)は相互に離れているとのことです。セッション間の移動には注意が必要ですね。また、はやしさんがUstreamによる中継を企画しているそうです。
Team Japan » いよいよ12月2日開催、デベロッパーキャンプ
第15回エンバカデロ・デベロッパーキャンプ Usream配信
2009/11/20追記: 番外の懇親会は前回と同じところだそうです。こういうのは好き嫌いが分かれるところですが。
Team Japan » 第15回デベロッパーキャンプ番外セッション - 懇親会場決まりました
2009/11/27追記: EDNにアーティクルが追加されています。
第15回 エンバカデロ・デベロッパーキャンプ
デベロッパーキャンプ番外セッション 「デベロッパートーク BOF」
2009/11/30追記: 会場のホールD1(ホールDの1F)、会議室G502(ブロックGの5Fの北端)、会議室G510(ブロックGの5Fの南端)は相互に離れているとのことです。セッション間の移動には注意が必要ですね。また、はやしさんがUstreamによる中継を企画しているそうです。
Team Japan » いよいよ12月2日開催、デベロッパーキャンプ
第15回エンバカデロ・デベロッパーキャンプ Usream配信
2009年10月30日
RAD Studio/Delphi/C++Builder 2010 Help Update 1
RAD Studio/Delphi/C++Builder 2010のHelp Update 1がリリースされています(予定よりも1ヶ月遅れのような気がしますが)。
27420 Help Update 1 for RAD Studio, Delphi & C++Builder 2010
Delphi 2010 および C++Builder 2010 Help Update 1
Known Problems in the Help - RAD Studio
27420 Help Update 1 for RAD Studio, Delphi & C++Builder 2010
Delphi 2010 および C++Builder 2010 Help Update 1
Known Problems in the Help - RAD Studio
2009年10月22日
C++Builder 2009ファーストガイド完結
2009/07から10回に分けて公開されてきたC++Builder 2009ファーストガイドが無事に完結しました。執筆者の皆さん、おつかれさまでした。
2009年10月21日
MDIアプリケーションにおけるリボンコントロールの不具合の回避
リボンコントロールをメインフォームに使用したMDIアプリケーションでは、MDI子フォームを最大化すると子フォームのリストア/クローズボタンがメインフォーム上の不正な位置に描画されてしまう、という不具合があり、QualityCentralにも報告されています(QC67835、QC70321、QC73386)。この問題を修正するコンポーネントをJED Softwareさんが公開しています(近日中にCodeCentralにも投稿予定とのこと)。
jed-software.com » Blog Archive » VCL Ribbon MDI Fix
jed-software.com » Blog Archive » VCL Ribbon MDI Fix
2009年10月15日
第14回エンバカデロ・デベロッパーキャンプ セッションビデオ
2009年09月02日に大阪で開催された第14回エンバカデロ・デベロッパーキャンプのミガロの吉原さんのテクニカルセッション(T6)のビデオが公開されています。
セッションビデオ「知って得する!現役ヘルプデスクが答えるDelphiテクニカルエッセンス4.0」
セッションビデオ「知って得する!現役ヘルプデスクが答えるDelphiテクニカルエッセンス4.0」
2009年10月14日
C++処理系のC++0xサポート状況
主要なC++処理系のC++0xサポート状況をまとめたページが2ちゃんねるのC++0xスレッドで紹介されていました(結構前の話ですが)。
C++0xCompilerSupport - Stdcxx Wiki
これを見るとC++Builder 2009の対応状況はまあまあといったところでしょうか。最もアグレッシブなのはgccで、次がIntel C++、VC++とC++Builderはどっちもどっちな感じです。
C++0xCompilerSupport - Stdcxx Wiki
これを見るとC++Builder 2009の対応状況はまあまあといったところでしょうか。最もアグレッシブなのはgccで、次がIntel C++、VC++とC++Builderはどっちもどっちな感じです。
アプリケーションの多重起動を禁止するのにglobal atomを使用するのは適切ではない
アプリケーションの多重起動を禁止するでは多重起動禁止にmutexを利用しましたが、別解としてatomの一種であるglobal atomを利用する、という方法も(あまり主流ではないにしても)出回っているようです。しかしGlobalAddAtom(ja)で追加したglobal atomは明示的にGlobalDeleteAtom(ja)で削除しなければ自動的に消滅することはありません。このためアプリケーションが何らかの理由で異常終了してしまうと再実行することができなくなってしまいます。実際にプロジェクトソースを
元ねたはTrial Delphi Programs: Allow Only One Application Execution Per Windows Session。
program Project2;
uses
Windows,
SysUtils,
Messages,
Forms,
Unit2 in 'Unit2.pas' {Form2};
{$R *.RES}
const
{ Atom name }
CAtomName: String = '{7B0C8E12-F168-4DA4-89C9-E4C86BE404FE}';
var
AppAtom: ATOM;
Wnd: HWnd;
AppWnd: HWnd;
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
if GlobalFindAtom(PChar(CAtomName)) <> 0 then
begin
{ Search main form }
Wnd := FindWindow(PChar('TForm2'),nil); // Class name of the main form
if Wnd = 0 then
begin
Exit;
end;
{ Bring foreground and activate }
SetForegroundWindow(Wnd);
{ Get window handle of TApplication }
AppWnd := GetWindowLong(Wnd,GWL_HWNDPARENT);
if AppWnd <> 0 then
begin
Wnd := AppWnd;
end;
{ Restore if iconized }
if IsIconic(Wnd) then
begin
SendMessage(Wnd,WM_SYSCOMMAND,SC_RESTORE,-1);
end;
Exit;
end;
AppAtom := GlobalAddAtom(PChar(CAtomName));
try
Application.CreateForm(TForm2, Form2);
Application.Run;
finally
GlobalDeleteAtom(AppAtom);
end;
end.
として一つ目のインスタンスを実行し、強制的に終了してから二つ目のインスタンスを実行してみましたが、GlobalFindAtom(ja)で有効なglobal atomが取得できてしまい、ログオフ/再起動を行うまでプログラムは有効に起動できません。ということでアプリケーションの多重実行を禁止するのにglobal atomを使用するのは不適切である(global atomの用途として適切ではない)、という結論に達しました。元ねたはTrial Delphi Programs: Allow Only One Application Execution Per Windows Session。
2009年10月8日
Firebird 1.5.6リリース
Firebird 1.5系列の最終版となる(予定の)Firebird 1.5.6がリリースされています。
Firebird File Repositories(download)
Firebird 1.5.6 Release Notes
Firebird File Repositories(download)
Firebird 1.5.6 Release Notes
タッチアプリケーションのデモ
Cris Bensenさんが先日のCodeRage 4で使用したタッチアプリケーションのデモについて説明しています。
Touch Demo Part IではまずフォームにDirect2Dサーフェースを用意します。WM_ERASEBKGNDメッセージハンドラではバックグラウンドの消去をしないようにして、オーバライドしたPaintでダミーの描画を、同じくオーバライドしたResizeでDirect2Dサーフェースのリサイズを行うようにします。
Touch Demo Part IIでは1秒あたりの描画フレーム数を計測、描画する処理を追加して、10msec毎に再描画を発生させます。
Touch Demo Part IIIではタッチした位置をグラフィカルに表示するためのTGlowSpotとそのリストを用意して、これらをPaintで描画するようにします。WM_TOUCHメッセージハンドラでタッチしたポイント(複数)に対応したTGlowSpotを生成するようにして、最後にRegisterTouchWindowとUnregisterTouchWindowでこのフォームでWM_TOUCHメッセージが発生するようにします。
Touch Demo Part IVではイナーシャ(inertia/慣性)をサポートするためにTGlowSpotに_IManipulationsEvents COMインタフェースを追加してその処理を行わせ、最後にマウス動作をタッチ動作に統合します。
デモはこれで完成、ということでソースコードがCodeCentralで公開されています。
27469 Touch Demo
2009/11/20追記: Part IVの内容を追加しました。
Touch Demo Part IではまずフォームにDirect2Dサーフェースを用意します。WM_ERASEBKGNDメッセージハンドラではバックグラウンドの消去をしないようにして、オーバライドしたPaintでダミーの描画を、同じくオーバライドしたResizeでDirect2Dサーフェースのリサイズを行うようにします。
Touch Demo Part IIでは1秒あたりの描画フレーム数を計測、描画する処理を追加して、10msec毎に再描画を発生させます。
Touch Demo Part IIIではタッチした位置をグラフィカルに表示するためのTGlowSpotとそのリストを用意して、これらをPaintで描画するようにします。WM_TOUCHメッセージハンドラでタッチしたポイント(複数)に対応したTGlowSpotを生成するようにして、最後にRegisterTouchWindowとUnregisterTouchWindowでこのフォームでWM_TOUCHメッセージが発生するようにします。
Touch Demo Part IVではイナーシャ(inertia/慣性)をサポートするためにTGlowSpotに_IManipulationsEvents COMインタフェースを追加してその処理を行わせ、最後にマウス動作をタッチ動作に統合します。
デモはこれで完成、ということでソースコードがCodeCentralで公開されています。
27469 Touch Demo
2009/11/20追記: Part IVの内容を追加しました。
2009年10月1日
RAD Studio 2009対応 TeeChart Standard 8.05アップデート
RAD Studio 2009対応 TeeChart Standard 8.05アップデートがリリースされています。RAD Studio 2010に含まれるものと同等になるようです。
RAD Studio 2009対応 TeeChart Standard 8.05アップデート
27339 TeeChart Standard 8.05 for RAD Studio 2009
Release Notes
RAD Studio 2009対応 TeeChart Standard 8.05アップデート
27339 TeeChart Standard 8.05 for RAD Studio 2009
Release Notes
Asphyre Sphinx
Delphi/C++Builderで2D/3Dグラフィックを扱うためのライブラリとしてはOpenGLのラッパであるGLSceneがメジャーどころですが、Stack Overflowを眺めていたらAsphyre Sphinxというフレームワークを見つけました(ライセンスはMPL 1.1)。Delphi 2006/Turbo Delphi/Delphi 2007対応(Delphi 2009/2010対応はまだ)で、DirectX 7/DirectX 9/OpenGLをサポートしているとのことです。
元ねたはStack Overflowの3D graphics in Delphi/Native TForm GUIs。
元ねたはStack Overflowの3D graphics in Delphi/Native TForm GUIs。
2009年9月29日
SourceForge TurboPowerプロジェクト
2003年にオープンソース化されたTurboPowerプロジェクト(MPL 1.1)ですが、Nick Hodgesさんが管理者(tpsfadmin)となり、準公式な形で提供されていく(
But I should note that this isn’t an "officially sponsored" Embarcadero deal. This is at best "semi-official".)ことになったそうです(オープンソース化された経緯については旧Delphi-MLの73894以下のスレッドが参考になります)。現在TurboPowerプロジェクトには以下のプロジェクトが存在しています。
- TurboPower Abbrevia (ファイルの圧縮/展開)
- TurboPower XML Partner (XML処理コンポーネント)
- TurboPower String Resource Manager (文字列リソースマネージャ)
- TurboPower B-Tree Filer (ファイルベースのデータベース)
- TurboPower Internet Professional (ネットワーク関係コンポーネント)
- TurboPower Orpheus (120種類以上のUIコンポーネント)
- TurboPower ShellShock (Windowsシェルコンポーネント)
- TurboPower Visual PlanIt (スケジュール管理コンポーネント)
- TurboPower Async Professional (シリアル、TAPI、Microsoft Speech APIなどの通信コンポーネント/インストーラ使用)
- TurboPower Essentials (13種類のUIコンポーネント)
- TurboPower LockBox (暗号コンポーネント)
- TurboPower OnGuard (有効期間、起動回数などによる動作制限コンポーネント)
- TurboPower SysTools (COMサポートコンポーネントおよびシステム補助ルーチン)
- TurboPower FlashFiler (クライアント/サーバ型データベース)
- TurboPower OfficePartner (Officeコンポーネント)
- TurboPower Async Professional CLX (Kylix用/LGPL, MPL 1.1)
- TurboPower SysTools for Kylix (Kylix用/LGPL, MPL 1.1)
- TurboPower Object Professional (DOS/TurboPascal用)
2009年9月28日
RAD Studio 2010の新機能その13
- VCL/TTimeSpanレコード型
- TTimeSpanユニットに時間差を表すTimeSpanレコード型が追加されています。詳細はWings of WindさんのRAD Studio 2010 Review #13: – The Persistence of Time。
- コンパイラ/RTTI
- 新しいRTTIを利用して別パッケージ内に存在する未知のクラスのインスタンスを生成する方法。詳細はTeam JapanのDelphi 2010: RTTI新機能を試す(動的なインスタンス生成)。
これで持ちネタは終了です(というかこの2つを書くのを忘れていました)。
2009年9月25日
RAD Studio/Delphi/C++Builder 2010 Update 1
RAD Studio/Delphi/C++Builder 2010のUpdate 1がリリースされています。またExtraディレクトリのファイルもダウンロードできるようになっています。
27356 Update 1 for RAD Studio, Delphi & C++Builder 2010
27351 Extras directory files for RAD Studio, Delphi & C++Builder 2010
リリースノート: RAD Studio 2010 Update 1
Team Japan » C++Builder/Delphi/RAD Studio 2010 Update 1と Extrasイメージ
27356 Update 1 for RAD Studio, Delphi & C++Builder 2010
27351 Extras directory files for RAD Studio, Delphi & C++Builder 2010
リリースノート: RAD Studio 2010 Update 1
Team Japan » C++Builder/Delphi/RAD Studio 2010 Update 1と Extrasイメージ
2009年9月24日
C++Builder 2010のBoostライブラリサポート
David DeanさんがC++Builder 2010におけるBoostライブラリ(日本語訳)のサポート状況を公開しています。またCodeCentralからパッチ済のBoost 1.39.0がダウンロードできるようになっています。
David Dean » C++Builder 2010 Boost support
27358 C++Builder 2010 Patched Boost 1_39_0
David Dean » C++Builder 2010 Boost support
27358 C++Builder 2010 Patched Boost 1_39_0
2009年9月17日
RAD Studio オンラインヘルプシステム
ちょっと古い話題ですが、RAD Studioのヘルプシステムがwiki上に再構築されています。
英語版(オリジナル)
日本語版
コードサンプル
Dee Ellingさんによれば、
元ねたはDee EllingさんのWiki Wiki Help2 Wiki。
英語版(オリジナル)
日本語版
コードサンプル
Dee Ellingさんによれば、
- wikiの内容をMicrosoft Help2形式に直接変換できる(Help Updateは2009/09と2009/11に予定されている)。
- 内容を簡単に編集、更新できる(当社比)。
- 登録ユーザはディスカッションタブに書き込むことができる(英語版のみ)。
- 英語版以外のものは翻訳したものが流し込まれる。
- wikiへのログオンは現時点ではEDNとは異なるシステムになっている(将来はシングルサインオンシステムに統合したい)。
元ねたはDee EllingさんのWiki Wiki Help2 Wiki。
2009年9月16日
2009年9月15日
クラスコンストラクタとクラスデストラクタ
Delphi 2010で追加されたクラスコンストラクタ、クラスデストラクタですが、その名に反してクラスだけではなくレコード型に対しても定義することができます。またジェネリクスを含むクラス/レコード型に対するクラスコンストラクタ、クラスデストラクタは複数回呼び出されることがあります(Delphiのジェネリクスの実装がC#やJavaのようにライブラリによるものではなくC++のようにコンパイラによるものであることを考えれば当然なのかもしれませんが)。
Class constructors and Generics | YAPB
元ねたはNick HodgesさんのRandom Thoughts on the Passing Scene #127。
Class constructors and Generics | YAPB
元ねたはNick HodgesさんのRandom Thoughts on the Passing Scene #127。
2009年9月14日
2009年9月13日
Delphi 2010のRTTIと属性
Robert Loveさんによる、Delphi 2010の新機能の一つであるRTTI(Run Time Type Information)の拡張と属性(Atributes)についての解説記事です(全1213回の予定)。
元ねたはRob’s Technology Corner: Delphi 2010 - RTTI & Attributes。
2009/09/15追記: Introduction to TValueのリンクを追加しました。
2009/09/16追記: Exploring TRttiMember Descendants in depth (Part I) Properties and Fieldsのリンクを追加しました。
2009/09/18追記: Exploring TRttiMember Descendants in depth (Part II) Methodsのリンクを追加しました。
2009/09/23追記: TValue in Depthのリンクを追加しました。
2009/10/08追記: INI persistence the RTTI wayおよびXml Serialization - Basic Usageのリンクを追加しました。
2009/10/09追記: TRttiContext.Create() & TRttiContext.Free()およびXml Serialization - Control via Attributesのリンクを追加しました。
- Delphi 2010 RTTI - The basics (新しいRTTI(en)の基本的な使用方法)
- Using Attributes and TCustomAttribute descendants (属性として使用するTCustomAttribute(en)とその派生クラス)
- Exploring TRttiType and descendants in Depth (実行時に取得した型情報を扱うためのTRttiType(en)とその派生クラス)
- Introduction to TValue (新しいRtti.pasのTValue(en)レコード型)
- Exploring TRttiMember Descendants in depth (Part I) Properties and Fields (RTTI情報を扱うためのTRttiMember(en)とその派生クラスで、フィールドを扱うTRttiField(en)とプロパティを扱うTRttiProperty(en))
- TRttiContext.Create() & TRttiContext.Free() (TRttiContextのCreateとFreeがコンストラクタ、デストラクタ呼出ではないことについて)
- Exploring TRttiMember Descendants in depth (Part II) Methods (TRttiMember(en)の派生クラスのTRttiMethod(en)経由でメソッドを呼び出し(invoke))
- TValue in Depth (TValue(en)レコード型の詳細)
- INI persistence the RTTI way (RTTIの属性を利用してクラスインスタンスの情報を永続化)
- Xml Serialization - Basic Usage (RTTIを利用してクラスインスタンスをXMLにシリアライズ/デシリアライズ)
- Xml Serialization - Control via Attributes (属性でXMLシリアライズ化を制御)
- Attributes: Practical Example- Object to Client Dataset
- Types by Package... Dynamic plug-in systems.
元ねたはRob’s Technology Corner: Delphi 2010 - RTTI & Attributes。
2009/09/15追記: Introduction to TValueのリンクを追加しました。
2009/09/16追記: Exploring TRttiMember Descendants in depth (Part I) Properties and Fieldsのリンクを追加しました。
2009/09/18追記: Exploring TRttiMember Descendants in depth (Part II) Methodsのリンクを追加しました。
2009/09/23追記: TValue in Depthのリンクを追加しました。
2009/10/08追記: INI persistence the RTTI wayおよびXml Serialization - Basic Usageのリンクを追加しました。
2009/10/09追記: TRttiContext.Create() & TRttiContext.Free()およびXml Serialization - Control via Attributesのリンクを追加しました。
RAD Studio 2010のUML機能
Michael RozlogさんがRAD Studio/Delphi/C++Builder 2010のUML機能、検査(オーディット)機能、計測(メトリクス)機能、ドキュメント生成機能に関するwhitepaperを公開しています。
RAD Studio 2010 UML and Audits and Metrics: not the old UML!
Delphi 2010ではPro SKUでも限定的に検査機能、計測機能が使用できるようになっています。
元ねたはMichael Rozlog » Blog Archive » New UML whitepaper for RAD Studio 2010 (Delphi and C++Builder 2010)。
RAD Studio 2010 UML and Audits and Metrics: not the old UML!
Delphi 2010ではPro SKUでも限定的に検査機能、計測機能が使用できるようになっています。
元ねたはMichael Rozlog » Blog Archive » New UML whitepaper for RAD Studio 2010 (Delphi and C++Builder 2010)。
CodeRage 4の動画公開
2009/09/08-11(PDT)に行われたオンラインカンファレンスCodeRage 4のセッションの動画が公開されています(EDNでログインする必要があります)。
CodeRage 4 Sessions & Replays
CodeRage 4 Sessions & Replays
RAD Studio Roadmap
DelphiのプロダクトマネージャであるMichael RozlogさんがRAD Studioのロードマップを公開しています。
RAD Studio Roadmap
が、全然新しくないような。Newsflash: The Roadmap. « Wings of Wind Softwareでもツッコミまくりです。見た限り新しい情報は5枚目で赤線で消されている"Windows"くらいでしょうか。
RAD Studio Roadmap
が、全然新しくないような。Newsflash: The Roadmap. « Wings of Wind Softwareでもツッコミまくりです。見た限り新しい情報は5枚目で赤線で消されている"Windows"くらいでしょうか。
2009年9月10日
Firebird 2.1.3リリース
Firebird Ver2.1.3がリリースされています。
Firebird Development: Database Engine
Firebird File Repositories(download)
Firebird 2.1 Release Notes
Firebird 2.1以降には"UPDATE OR INSERT文"なんていうのがあるんですね。
Firebird Development: Database Engine
Firebird File Repositories(download)
Firebird 2.1 Release Notes
Firebird 2.1以降には"UPDATE OR INSERT文"なんていうのがあるんですね。
第14回エンバカデロ・デベロッパーキャンプ
2009年09月02日に大阪で開催された第14回エンバカデロ・デベロッパーキャンプのセッション資料とダイジェストビデオが公開されています。
第14回 エンバカデロ・デベロッパーキャンプ - 資料ダウンロード
セッションダイジェストビデオ「ついに登場!Delphi/C++Builder 2010の概要」
第14回 エンバカデロ・デベロッパーキャンプ - 資料ダウンロード
セッションダイジェストビデオ「ついに登場!Delphi/C++Builder 2010の概要」
2009年9月9日
2009年9月8日
Delphi 2010は13をスキップしてVer14に
Delphi 2009はVer12だったので、順当にいけばDelphi 2010はVer13となるはずでした。が、キリスト教文化圏の悪癖で(というかそのことでグダグタいわれないために)13をスキップして14としたようです(確かにQCクライアントでも2010にはVer14が割り当てられています)。このあたりの経緯についてはAllen BauerさんのThe Oracle at Delphi » What happened to version 13?を参照。
2009年9月7日
RAD Studio 2010の新機能その12
- コンパイラ/Delphi
- 新しい"delayed"ディレクティブでDLL内の関数のロードを実行直前まで遅延することができるようになります。詳細はAllen BauerさんのProcrastinators Unite… Eventually!とその続きのExceptional Procrastination。
また高橋さんがdelayedディレクティブを実際に使用する方法を紹介しています。詳細はTeam JapanのDelphi 2010: 新機能 delayed ディレクティブ。 - IDE/言語構成ツール
- 言語構成ツールでIDEのUIとライブラリの言語を切り替えることができます。詳細はAndreas HausladenさんのRAD Studio 2010 now speaks multiple languages。
- DataSnap/REST+JSON
- DataSnap上でREST経由でJSON形式のデータをやり取りする方法を高橋さんが紹介しています。詳細はTeam JapanのDelphi 2010: DataSnap 2010でREST,JSONを試す。
- IDE/オブジェクトインスペクタ
- コンポーネントのプロパティエディタをオブジェクトインスペクタ最下段の"verbs"エリアからも呼び出すことができるようになります。詳細はPaweł GłowackiさんのRAD Studio 2010 - Object Inspector "verbs" area。
- VCL/JSON
- TJSONMarshal/TJSONUnMarshalを使用してクラスインスタンスをマーシャリング(シリアライズ/デシリアライズ)することができます。詳細はDaniele TetiさんのCustom Marshalling/UnMarshalling in Delphi 2010。
- コンパイラ/RTTI
- RTTIについてのまとめ。
詳細はWings of WindさんのCommunity pulse: CodeRage 4, RTTI Reloaded。- TRTTIContextはレコード型で、Create/Freeで生成、破棄する必要はありません。
- RTTI用のデータで実行ファイルのサイズは大きくなります。
- RTTIを使用するとprivateメンバにもアクセスできます($RTTI指令でメソッド、フィールド、プロパティの別に可視範囲を指定します)。
- 実行時情報を元にどのメソッドでも呼び出すことができます。
- TValueはバリアント型のように使用できます。
- コンパイラ/クラスコンストラクタ/クラスデストラクタ
- 従来initialization/finalization部に記述していた処理をクラスコンストラクタ、クラスデストラクタに置くことができるようになります。クラスコンストラクタはinitialization部よりも前に、クラスデストラクタはfinalization部よりも後に実行されることが保証されています。これによりクラス依存のコードをそのクラスの外側に記述する必要がなくなり、リンカが不要なコード/データを外すことが容易になります。詳細はAllen BauerさんのClass (, Static, or Shared) Constructors (and Destructors)とその続きのClass Constructors. Popping the hood.。
2009年9月6日
IDE Fix Pack 2.7/VCLFixPack 1.4リリース
Andreas HausladenさんのIDE Fix Pack 2007およびIDE Fix Pack 2009/2010がVersion 2.7に、VCL Fix PackがVersion 1.4にそれぞれアップデートされています(Delphi 2010にはVCL Fix Packは必要ないとのことです)。
Andy’s Blog and Tools » New IDE Fix Pack for 2007, 2009 and 2010
Andy’s Blog and Tools » New IDE Fix Pack for 2007, 2009 and 2010
2009年9月4日
Delphi 2010 Handbook
Marco Cantuさんによれば、Delphi 2010 Handbookを執筆中とのことです。発売まではまだしばらくかかるようですが、ebookのサブスクリプションという形で書きあがった分からリリースしていくようなことを考えているとのことです。でも英語をモニタ上で読むのはつらいので紙媒体のほうがいいかな…。
Delphi 2010 Handbook in the Works
Delphi 2010 Handbook in the Works
2009年9月3日
Indy10のTIdFTPコンポーネントのパッシブモードのGetメソッドの不具合
Delphi 2007またはそれ以前のバージョン用のIndy10の最新ナイトリ(Ver10.2.3 r3568)のTIdFTPのGetメソッドには、パッシブモードで呼び出したときにTransferTimeoutプロパティの値が使用されずに永久に受信待ちになってしまう不具合があります。
TIdFTP.InternalGetメソッド内でInitDataChannelを呼び出してFDataChannel.IOHandlerのReadTimeoutにTransferTimeoutを設定しているのですが、DataChannelのReadTimeoutがデフォルトの-1のままになっているため、LPasvCl.Connectの呼び出しの内部でDataChannel.IOHandler.ReadTimeoutにFDataChannel.ReadTimeoutを設定して結果的にTransferTimeoutの値が無視されてしまう、というのが原因と思われます。
回避策としてはOnDataChannelCreateイベントでDataChannel.ReadTimeoutにもTransferTimeoutを設定してしまう、という方法が考えられます。
TIdFTP.InternalGetメソッド内でInitDataChannelを呼び出してFDataChannel.IOHandlerのReadTimeoutにTransferTimeoutを設定しているのですが、DataChannelのReadTimeoutがデフォルトの-1のままになっているため、LPasvCl.Connectの呼び出しの内部でDataChannel.IOHandler.ReadTimeoutにFDataChannel.ReadTimeoutを設定して結果的にTransferTimeoutの値が無視されてしまう、というのが原因と思われます。
回避策としてはOnDataChannelCreateイベントでDataChannel.ReadTimeoutにもTransferTimeoutを設定してしまう、という方法が考えられます。
procedure TDataModule1.IdFTP1DataChannelCreate(ASender: TObject;
ADataChannel: TIdTCPConnection);
begin
if (ASender <> nil) and (ASender is TIdFTP) then
begin
if (TIdFTP(ASender).Passive = True) and
(ADataChannel <> nil) and (ADataChannel is TIdTCPClientCustom) then
begin
TIdTCPClientCustom(ADataChannel).ReadTimeout := TIdFTP(ASender).TransferTimeout;
end;
end;
end;
2009年9月1日
JVCL 3.38リリース
JVCL(JEDI Visual Component Library)がアップデートされてVersion 3.38(JCL Version 2.0.1)になっています。
Browse JEDI VCL for Delphi Files on SourceForge.net
JCLが2.0でDelphi/C++Builder 5、Kylix 3、Delphi.netをサポートしなくなったため、JVCLもこれらのバージョンでは動作しないと思われます(JVCL 3.37 with JCL 1.105が最終バージョン)。
トライアル版にはコマンドラインコンパイラが付属しておらずそのままではインストールできないため、JCL 2.0.1とJVCL 3.38のバイナリインストーラをAndreas Hausladenさんが用意してくれています。ダウンロードは下記のページから。
元ねたはAndreas HausladenさんのAndy’s Blog and Tools » JEDI Code Library 2.0.1 and JVCL 3.38。
2009/09/06追記: Andreas Hausladenさんによると、JVCL 3.38はDelphi 2010のdelayedディレクティブの影響でテーマ描画関係がうまく動作しなくなってしまっているようです(JCLには影響しないとのこと)。
Andy’s Blog and Tools » Once upon a delayed JVCL time…
Browse JEDI VCL for Delphi Files on SourceForge.net
JCLが2.0でDelphi/C++Builder 5、Kylix 3、Delphi.netをサポートしなくなったため、JVCLもこれらのバージョンでは動作しないと思われます(JVCL 3.37 with JCL 1.105が最終バージョン)。
トライアル版にはコマンドラインコンパイラが付属しておらずそのままではインストールできないため、JCL 2.0.1とJVCL 3.38のバイナリインストーラをAndreas Hausladenさんが用意してくれています。ダウンロードは下記のページから。
元ねたはAndreas HausladenさんのAndy’s Blog and Tools » JEDI Code Library 2.0.1 and JVCL 3.38。
2009/09/06追記: Andreas Hausladenさんによると、JVCL 3.38はDelphi 2010のdelayedディレクティブの影響でテーマ描画関係がうまく動作しなくなってしまっているようです(JCLには影響しないとのこと)。
Andy’s Blog and Tools » Once upon a delayed JVCL time…
Windowsユーザエクスペリエンスガイドライン
MSDNライブラリでVisual Style(Windows Vista/7)に対応した"Windows ユーザー エクスペリエンス ガイドライン"(UXガイド)が公開されています。PDF版もあります(775ページもありますね)。
Windows ユーザー エクスペリエンス ガイドライン
元ねたはCrystal Dew R&D LabsさんのWindows ユーザー エクスペリエンス ガイドライン。
Windows ユーザー エクスペリエンス ガイドライン
元ねたはCrystal Dew R&D LabsさんのWindows ユーザー エクスペリエンス ガイドライン。
2009年8月27日
RAD Studio 2010の新機能その11
- dbExpress/SOAP
- WDSLインポートウィザードを含むSOAP 1.2サポートが追加されます。詳細はWings of WindさんのRAD Studio 2010 Review #12: – Tooling, Help, UnicodeとChris BensenさんのRAD Studio 2010 - SOAP 1.2。
- DataSnap/HTTPサポート
- DataSnapでプロトコルとしてHTTPを使用するときにサーバ側をISS+ISAPIのDLLで構成することができます。詳細はJim TierneyさんのDataSnap 2010 HTTP support with an ISAPI dll。
- コンパイラ/Delphi
- as演算子、is演算子でインタフェース参照から元のクラス(インスタンス)にキャストできるようになります。詳細はMalcolm GrovesさんのCasting an Interface Reference to the Implementing Class in Delphi 2010。
- コンパイラ/RTTI
- クラスやそのメンバに属性(attribute)を付加(annotate)し、RTTIでそれを取得することにより、実行時に属性情報による処理を行うことができます。詳細はMalcolm GrovesさんのMore Attributes in Delphi 2010。
- IDE/リファクタリング
- 属性に対してもリファクタリング機能が使えます。詳細はMalcolm GrovesさんのRefactoring Support for Attributes in Delphi 2010。
- DataSnap/JSON
- DataSnapでTDBXCallbackを使用してサーバメソッド内からコールバック関数を呼び出すことができます。詳細はAdrian AndreiさんのDatabase Connectivity : Don’t call me, I’ll call you…。
2009年8月26日
RAD Studio 2010の新機能その10
ネタをためてしまうと駄目ですね。毎日少しずつでも書かないと…。
- Database/dbExpress
- dbExpressでFirebirdのサポートが追加され、BlackfishSQL、DataSnap、Sybase ASA (Adaptive Server Anywhere)、Sybase ASE (Adaptive Server Enterprise)、IBM DB2、Firebird、Informix、Interbase、Microsoft SQL Server、mySQL、Oracleといったデータソースを扱えるようになります(非常に残念なことにInterBase/FirebirdはProfessional SKUに含まれませんが)。またMidas.dllのソースコード(C++)が付属するようになります。詳細はWings of WindさんのRAD Studio 2010 Review #10: – Database Jewels。またAndreano LanusseさんによるビデオもNew dbExpress driver for Firebird in Delphi 2010 and C++Builder 2010で見られます。
- VCL/マルチタッチ
- 実機を使えば簡単にマルチタッチを扱うアプリケーションが作れますよ、というお話。詳細はTeam JapanさんのDelphi 2010/C++Builder 2010: マルチタッチを試す。
- DataSnap/サーバ-クライアント通信
- ウィザードでDataSnapサーバを簡単に作成でき、これを実行しておけばDataSnapクライアントから呼び出すサーバ側のメソッドをプロパティエディタ上からドロップダウンで選択するだけで簡単に呼び出しコードができてしまいます。またクラスインスタンスをJSONでシリアライズして転送することもできます。詳細はWings of WindさんのRAD Studio 2010 Review #11: – DataSnap。またDataSnap上でのJSONの扱いかたについてはAdrian AndreiさんのDatabase Connectivity : JSON Types for Server Methods in DataSnap 2010で、DataSnapを使用した軽量クライアントについてはTeam JapanさんのDelphi 2010: DataSnapでOracle11gに接続するで、それぞれ詳しく説明されています。
RAD Studio 2010発売紹介ビデオ
RAD Studio 2010の発売にともなって公式ページがRAD Studio 2010 エヴァリュエーションセンターになり、RAD Studio 2010についてMichael Swindellさん(製品戦略担当副社長)とJan Libandさん(マーケティング担当副社長)が紹介するビデオが追加されています。2010の次はクロスプラットフォームと64bit対応、という方向性はまだそのままのようです。
2009年8月25日
W32.Induc その2
この件に関するFAQの翻訳がリリースされています。
W32/Induc-A Virus (Compile-A-Virus)に関するQ&A
単純に今回の(現在の)ウィルスだけを考えればこれでいいのかもしれませんが、このFAQにある対応をくぐりぬけるような変種は簡単に考え付きます。この問題を完全に回避するには、ライブラリパスにリストアップされているLib、Bin、Imports、Projects\Bpl、Lib\Indy10およびデバッグdcuパスにリストアップされているLib\Debug、Lib\Debug\Indy10のように既知のパスに既知のユニット名のdcuが格納されているものを全て置き換えられないようにする必要があります(例えばIndy10に属するユニットのmalware版をLibに配置すればこちらがリンクされてしまいますよね)。
そのための方法としては、常に削除+既知でない場所に配置したバックアップからコピーする、ということも考えられますし、あるいはハッシュを保存しておいてそれを比較して検証するようなことでもいいかもしれません。なにかツールを作成してみますか…。
W32/Induc-A Virus (Compile-A-Virus)に関するQ&A
単純に今回の(現在の)ウィルスだけを考えればこれでいいのかもしれませんが、このFAQにある対応をくぐりぬけるような変種は簡単に考え付きます。この問題を完全に回避するには、ライブラリパスにリストアップされているLib、Bin、Imports、Projects\Bpl、Lib\Indy10およびデバッグdcuパスにリストアップされているLib\Debug、Lib\Debug\Indy10のように既知のパスに既知のユニット名のdcuが格納されているものを全て置き換えられないようにする必要があります(例えばIndy10に属するユニットのmalware版をLibに配置すればこちらがリンクされてしまいますよね)。
そのための方法としては、常に削除+既知でない場所に配置したバックアップからコピーする、ということも考えられますし、あるいはハッシュを保存しておいてそれを比較して検証するようなことでもいいかもしれません。なにかツールを作成してみますか…。
Delphi 2010/C++Builder 2010/RAD Studio 2010リリース
予定通りDelphi 2010/C++Builder 2010/RAD Studio 2010が発売開始になりました。現時点ではESD(Electronic Software Distribution)版のみで、パッケージ版は2009/09/中旬予定とのことです。残念ながら開発環境からWindows 2000が外れてしまいました。あとは2009で導入された
Delphi® 2010とRAD Studio™製品ファミリー新バージョンが 本日、世界同時発売開始、タッチサポートも搭載
License Terms for Delphi 2010, C++Builder 2010 and Embarcadero RAD Studio 2010
Delphi Prism 2010 使用契約
Embarcadero Delphi 2010 および C++Builder 2010 のリリース ノート
Delphi Prism 2010 リリース ノート
Embarcadero Delphi 2010 および C++Builder 2010 のインストール ノート
Delphi Prism 2010 のインストール ノート
RAD Studio 2010 Released!
PROFESSIONAL エディションおよび PROFESSIONAL ACADEMIC エディションの DB Express 配備制限に適用される追加条項の影響によりProfessional SKUでdbExpress経由のリモートデータベースアプリケーションが作れなくなったこともあり、導入は見合わせとはいわないまでも微妙です。本格導入は遠のいたかも…。
Delphi® 2010とRAD Studio™製品ファミリー新バージョンが 本日、世界同時発売開始、タッチサポートも搭載
License Terms for Delphi 2010, C++Builder 2010 and Embarcadero RAD Studio 2010
Delphi Prism 2010 使用契約
Embarcadero Delphi 2010 および C++Builder 2010 のリリース ノート
Delphi Prism 2010 リリース ノート
Embarcadero Delphi 2010 および C++Builder 2010 のインストール ノート
Delphi Prism 2010 のインストール ノート
RAD Studio 2010 Released!
2009年8月21日
W32.Induc
既に各所で報じられていますが、DelphiのVer4-7を経由して広がるコンピュータウィルスが報告されています。現時点での危険性は低いようですが、この手法を模倣したもっと凶悪なmalwareの出現の可能性を考えると、早期に対策するべきだと思われます。
まず確認方法ですが、Delphiのインストール先のLibフォルダにsysconst.bakが存在し、sysconst.dcuのタイムスタンプがつい最近になっているという場合、ウィルスに感染している可能性が濃厚です。この場合、Delphiをアンインストールして、Delphiのインストール先フォルダを完全削除し、再インストールするのが望ましいと思われます(再インストールが難しい場合は正常なsysconst.pasをコンパイルしてsysconst.dcuを再生成する方法もありますが、あまりお勧めしません)。
また対策としては今のところとりあえず怪しいプログラムをいきなり実行しない、ということぐらいでしょうか(sysconst.bakを作っておくという手はいつまで通用するのかわからないので)。Allen Bauerさんによれば、
ということなので、正式なアナウンス待ちということで。当該ディレクトリをログオンユーザの権限で書き込みできないようにする、という手も考えられますが…。
ちなみに第一発見者はロシアのGunSmokerさんのようです。
参考URL:
Team Japan: Delphiをターゲットとしたウイルスの脅威について
Embarcadero Discussion Forums: Virus use old Delphi versions to spread ...
Symantec: W32.Induc.A
Sophos security analysis: W32/Induc-A Win32 executable file virus (Virus.Win32.Induc.a)
マカフィー: W32/Induc | ウイルス情報
エフセキュアブログ: 0wn1ng Delphi(0wn1ng Delphi - F-Secure Weblog : News from the Labの翻訳)
Viruslist.com: Analyst's Diary
2009/08/25追記: この件に関するFAQがリリースされています。すぐに翻訳されると思いますが、とりあえず英文のリンクを。
Frequently Asked Questions about the W32/Induc-A Virus (Compile-A-Virus)
まず確認方法ですが、Delphiのインストール先のLibフォルダにsysconst.bakが存在し、sysconst.dcuのタイムスタンプがつい最近になっているという場合、ウィルスに感染している可能性が濃厚です。この場合、Delphiをアンインストールして、Delphiのインストール先フォルダを完全削除し、再インストールするのが望ましいと思われます(再インストールが難しい場合は正常なsysconst.pasをコンパイルしてsysconst.dcuを再生成する方法もありますが、あまりお勧めしません)。
また対策としては今のところとりあえず怪しいプログラムをいきなり実行しない、ということぐらいでしょうか(sysconst.bakを作っておくという手はいつまで通用するのかわからないので)。Allen Bauerさんによれば、
私たちは、皆さんがこのウイルスに感染しているかどうかを調べる方法、そして、感染していた場合の推奨される対応方法についてまとめる作業を進めています。この推奨されるステップでは、皆さんが再感染しないようにガードされるように作業しています。
ということなので、正式なアナウンス待ちということで。当該ディレクトリをログオンユーザの権限で書き込みできないようにする、という手も考えられますが…。
ちなみに第一発見者はロシアのGunSmokerさんのようです。
参考URL:
Team Japan: Delphiをターゲットとしたウイルスの脅威について
Embarcadero Discussion Forums: Virus use old Delphi versions to spread ...
Symantec: W32.Induc.A
Sophos security analysis: W32/Induc-A Win32 executable file virus (Virus.Win32.Induc.a)
マカフィー: W32/Induc | ウイルス情報
エフセキュアブログ: 0wn1ng Delphi(0wn1ng Delphi - F-Secure Weblog : News from the Labの翻訳)
Viruslist.com: Analyst's Diary
2009/08/25追記: この件に関するFAQがリリースされています。すぐに翻訳されると思いますが、とりあえず英文のリンクを。
Frequently Asked Questions about the W32/Induc-A Virus (Compile-A-Virus)
2009年8月18日
RAD Studio 2010 スニークプレビュー その3
RAD Studio 2010の公式ページにスニークプレビュー第3弾"Make the Connection with RAD Studio 2010"(日本語版:"RAD Studio 2010のデータベース接続")が追加されています。内容は予告どおりデータベース/DataSnap接続関係です。
これでいよいよ来週はリリースということに…あれ?カウントダウンがなくなってる…。
- Firebird 2.1/1.5サポートの追加とInterBase 2009、Microsoft SQL Server 2008、Oracle 11g、MySQL 5.1のドライバの更新
- DataSnapによるマルチティア接続
- DataSnapサーバを簡単に作成
- DataSnapサーバとクライアント間のデータストリームのフィルタリング
- RESTful Web ServicesとJSONサポートの追加
これでいよいよ来週はリリースということに…あれ?カウントダウンがなくなってる…。
RAD Studio 2010の新機能その9
- VCL/OnGestureイベント
- TTouchManagerのOnGestureイベントにはジェスチャに関する情報、位置、アングル、距離、慣性(イナーシャ)ベクタがTGestureEventInfoレコード型で渡されます。例えばInteractiveGestureOptionsにigoPanInertiaを指定するとEventInfo.GestureIDがigiPanのOnGestureが連続して発生するようになります(最初の1回はEventInfo.FlagsにgfBeginが含まれていて区別可能)。詳細はSeppy BloomさんのRAD Studio 2010 - Touch & Gestures Part 2。
2009年8月17日
RAD Studio 2010の新機能その8
- コンパイラ/RTTI
- TCustomAttributeクラスを派生してカスタム属性を定義し、これをクラスやクラスのメンバに適用することで、RTTIを使用して実行時にその属性を取得できるようになります(でいいのかな?後で再確認)。これを利用してORマッパ(object-relational mapper)のようなものも作れます、ということのようです。詳細はMalcolm GrovesさんのRTTI and Attributes in Delphi 2010とWings of WindさんのRAD Studio 2010 Review #9: – Attributes, The new RTTI and DB Access。
2009年8月15日
RAD Studio 2010の新機能その7
- VCL/グラフィック
- PNGとBMPでアルファチャンネルをサポートするようになります。TDirect2DCanvasでDirect2Dをサポートします。ジェスチャの形状をCanvasに描画することもできます。詳細はWings of WindさんのRAD Studio 2010 Review #8: – And now some feedback from us。
- VCL/新しいユニット
- Chris Bensenさんによる新しく追加されたユニットの説明です。Delphi 2010 - New Units
2009年8月13日
RAD Studio 2010の新機能その6
- IDE/メニュー項目
- 表示メニューからメッセージペインが開けるようになったり、プロジェクトメニューからQA測定、QA検査が呼び出されるようになったり、コンポーネントメニューからWSDLインポータが呼び出せるようになったりします。詳細はTeam JapanのRAD Studio 2010: メニューの地味な変更。
- VCL/タッチキーボード
- VCLのTouchカテゴリのTTouchKeyboardコンポーネントで仮想キーボードを使用することができるようになります。ファンクションキーがないとか、日本語環境で標準的な109キーレイアウトではないとか、微妙な気がしますが…。Windowsキーがない件については"Microsoftのスクリーンキーボードとは違うアプローチを選択した(
we decided to take a different approach to the Touch Keyboard than Microsoft did with their on screen keyboard
)とのことです。詳細はTeam JapanのRAD Studio 2010: タッチキーボードとChris BensenさんのRAD Studio 2010 - Touch Keyboard。Chris Bensenさんのコメントによれば、101/102/106キーボードレイアウトが入力ロケールにより選択されるが、アジア系言語は日本語だけで、中国語、韓国語、アラビア語は間に合わなかった、とのことです。 - コンパイラ/delayed属性
- externalな関数にdelayed属性を付加することでその呼び出しまでバインドを遅らせることができるようになります。詳細はWings of WindさんのRAD Studio 2010 Review #6: VCL – Language enhancements for Touch and Gestures。
- VCL/WICサポート
- WIC(Windows Imaging Component)をサポートするようになります(WICはWindows XP SP3以降で使用可能です)。BMP/GIF/ICO/JPEG/PNG/TIFF形式およびRAW形式の画像をWICで経由扱うことができます。詳細はWings of WindさんのRAD Studio 2010 Review #7: – A historical moment。
- VCL/IOUtilsユニット
- 新しく追加されたIOUtils.pasでディレクトリの列挙やファイルの列挙をfor-in構文(と無名メソッド)で簡単にできるようになります。詳細はMalcom GrovesさんのIOUtils.pas – OO File System Access in Delphi 2010。RANさん、情報ありがとうございます。
2009年8月12日
2009年8月11日
RAD Studio 2010 スニークプレビュー その2
RAD Studio 2010の公式ページにスニークプレビュー第2弾"Free Your Customer From Keyboards with Dazzling Touch Based User Interfaces"(日本語版:"タッチベースのユーザーインタフェイスでキーボード操作から解放!")が追加されています。内容は予告どおりタッチ、ジェスチャなど"Natural Input"関係です。
今回はChris Bensenさんの部屋からです。が、ん?オリジナルと日本語版で尺が違う…オリジナルは2分37秒、日本語版は8分49秒ってどういうことでしょう?
次回は2009/08/18でFirebird、DataSnapなどのデータベース接続についてとなっています。
ところでhttp://blogs.embarcadero.com/のwebサーバが落ちてます(2009/08/11 17:08JST現在)。pingは通るようですが。2009/08/12 10:20JST現在で復旧しています。2009/08/12 17:27現在でまた落ちてます。なんか不安定です。2009/08/13 10:20現在で復旧しています。
2009/08/12追記: オリジナルも8分49秒のものに入れ替えられています。
- タッチ対応
- Windows 7のマルチタッチ
- カスタムジェスチャ
- 仮想キーボード
- 既存のアプリケーションのタッチ/ジェスチャ対応
今回はChris Bensenさんの部屋からです。が、ん?オリジナルと日本語版で尺が違う…オリジナルは2分37秒、日本語版は8分49秒ってどういうことでしょう?
次回は2009/08/18でFirebird、DataSnapなどのデータベース接続についてとなっています。
ところでhttp://blogs.embarcadero.com/のwebサーバが落ちてます(2009/08/11 17:08JST現在)。pingは通るようですが。2009/08/12 10:20JST現在で復旧しています。2009/08/12 17:27現在でまた落ちてます。なんか不安定です。2009/08/13 10:20現在で復旧しています。
2009/08/12追記: オリジナルも8分49秒のものに入れ替えられています。
Delphi 2010 プレビュー その5 まとめ
2009/08/06に行われたDelphi/C++Builder次期バージョンプレビュー会のまとめなど。
まずここまで出てこなかった項目について。
プレビュー会でいろいろ見ての感想その他。
まずここまで出てこなかった項目について。
- 言語構成ツールでIDEのUIやリンクするライブラリの言語を切り替えられます。切り替えはインストール時に言語(英語、ドイツ語、フランス語、日本語)毎にインストール対象としたものから選択するようになります(例えば英語、日本語とインストールしておけばこの2ヶ国語間で切り替えられる)。
- トランスレーションリポジトリについても、事前翻訳されたリポジトリが多数用意されており、自動翻訳を使用することで、より簡単に国際化アプリケーションを作成することができるようになります。
- RTTIの拡張はProject ChromiumのライトウェイトORマッピングを実現するためにも必要だったようです。
- クラスエクスプローラのクラス階層図はSVG形式でエクスポートできるそうです。
- RAD Studio 2010はAll-AccessのInstantOn上で動作します。
- Subversion対応は見送られたようです。VCSを組み込む上で必要なサポートはOTA上に用意されているようですが。
- PostgreSQLは日本以外ではマイナーなので対応しないようです。QC41013が再度Openされたらみんなでvoteしましょう。
- 発売は意地でも2009/08/25(PDT)らしいです。
プレビュー会でいろいろ見ての感想その他。
- 言語構成ツールによる言語の切り替えのサポートは、日本語ユーザが英語を基本言語とする国際化対応アプリケーションを作成する上で嬉しい機能です。これで英語版dcuの取り出し、差し替えとか不毛なことをしなくて済みます。
- 全体としては地道に細かい改善を積み重ねた、という印象です(全く新しいのはジェスチャ関係とTDirect2DCanvasくらいでは?)。マーケティング的にはWindows 7に正式対応、でしょうけれども。
- DataSnapはもっと実用面を考えたプロモーションが必要だと思います。こういうシステムでこういうように使うと効果的ですよ、といったところを。
- RAD Studio 2010は「買い」か?ですが、2009ユーザは「買い」でしょう。バグもたくさん取れているようですし。では2007以前のユーザにとってはどうでしょう?これはいつ"Unicode Ready"に移行するか、ということになりますが、次のCommodoreやDelphi Xで少なからず混乱する可能性を考慮すれば、2010は一つのタイミングだと思います(次の次くらいまでスキップするのも一つの見識ではありますが)。
- All-AccessならDelphi 2007もDelphi 2009も使えますよ、というのはアピールするらしいです。
- 製品ロードマップは早く更新したほうがいいと思います。
- マルチタッチのデモに使ったHPのノートPCは前日に秋葉原で買ってきたそうです。
Delphi 2010 プレビュー その4 データベース
2009/08/06に行われたDelphi/C++Builder次期バージョンプレビュー会のまとめです。データベース関係。
- dbExpress
- Firebirdサポート追加
- 正式にdbExpressでFirebird 1.5/2.1に接続できるようになります。
- 各データベースの最新版に対応
- InterBase 2009、Microsoft SQL Server 2008、Oralce 11g、MySQL 5.1に対応します。
- SQL Native Clientドライバ
- Windows 2000でも動作するSQL Native Client 2005用ドライバとMARS(Multiple Active Results Sets - 複数のアクティブな結果セット)サポートの追加。
- date/time関数
- ロケール依存書式文字列とロケールに基づくTimestampのオフセットのサポート。
- MIDAS.DLLソースコード
- MIDAS.DLLのソースコードが添付されるそうです。
- Web Service SOAP 1.2クライアントのサポート
- DataSnap
- 新規DataSnapサーバ、新規DataSnap WebBrokerアプリケーションのウィザードの追加
- HTTPコミュニケーションとインプロセスコネクティビティをサポート
- HTTPトンネリングサポート
- ファイアウォール外のクライアントで使用します。
- DataSnap HTTPリクエストのためのRESTサポート
- コミュニケーションストリーム処理のためのフィルタ
- フィルタリングのための新しいDataSnap APIとコンプレッションフィルタの追加。
- コールバックおよびJSON(JavaScript Object Notation)
- サーバメソッドでTJSONValueおよびその継承を受け入れ可能。
- WebサーバアプリケーションでDataSnapサーバをホスティング
- .NETプロキシ生成
2009年8月10日
RAD Studio 2010の新機能その5
- IDE/クラシックスタイル
- Delphi 2010のIDEをDelphi 7ライクなクラシックスタイルに設定する方法をAndreano Lanusseさんが動画つきで説明しています。
Andreano Lanusse » How to configure Delphi 2010 to look, work, and feel like Delphi 7またはVideo: How to configure Delphi 2010 to look, work, and feel like Delphi 7から。 - VCL/Delphi Natural Input
- ジェスチャ、マルチタッチ、仮想キーボードなどの、従来とは異なる、あるいはWindows 7で新しく追加された入力であるNatural Inputのサポート。詳細はWings of WindsさんのRAD Studio 2010 Review #5: VCL – Natural Input Overview、Seppy BloomさんのRAD Studio 2010 - Touch & Gestures Part 1とChris BensenさんのRAD Studio 2010 - Gestures and Multi-Touch。Seppy BloomさんによればGesturesカテゴリのTGestureListView/TGesturePreview/TGestureRecorderコンポーネントはジェスチャデザイナで使用しているものだそうです。
- IDE/ソースコードフォーマッタ
- ソースコードを指定したルールに従って整形しなおすことができます。詳細はTeam JapanのRAD Studio 2010: ソースコードの整形。
Delphi 2010 プレビュー その3 VCL
2009/08/06に行われたDelphi/C++Builder次期バージョンプレビュー会のまとめです。VCL関係です。
今日はここまで。
- Delphi Natural Input
- タッチ
- ベーシックタッチ
- 一本の指でマウスのエミュレーションを行う。通常のタッチパネルでサポート。
- マルチタッチ
- 二本以上の指でタッチした位置や距離を検知する。Windows 7以降のOSと専用のハードウェアが必要になる。
- ジェスチャ
- マウスやタッチの動きでジェスチャイベントが発生する。
- ジェスチャ/仮想キーボード
- ジェスチャ
- 独自実装のジェスチャエンジンをプラグイン可能(ジェスチャマネージャコンポーネントを配置するだけ)。特殊なハードウェアは不要。標準のジェスチャもカスタム定義したジェスチャも使用可能。カスタム定義も専用デザイナで簡単にできる。ジェスチャの割り当てはコンポーネント単位に指定できる。
- 仮想キーボード
- TTouchKeyboardコンポーネントで仮想キーボードを実現。カスタマイズも可能。
- Direct2D
- Windows 7のDirect2D/DirectWriteのサポート
- TCustomCanvasから派生したTDirect2DCanvasを使用する。
- TGraphicによるWIC(Windows Imaging Component)ラッパ
- TImageでTIFF形式をサポート
- VCLの機能強化
- Gridコンポーネント
- テーマサポートの追加。
- IOUtils.pas
- 新しいI/Oユーティリティクラスの追加。
- CM_INPUTLANGCHANGE
- 言語の変更を通知するカスタムメッセージの追加。
- TIcon.AssignTo
- ビットマップへのアサインが可能に。
- Month Calendarボックスドロップダウン
- オブジェクトインスペクタで日付をカレンダで指定可能に。
- TCategoryButtonsコンポーネント
- インプレースリネーム機能のサポート。
- TCheckListBoxコンポーネント
- CheckAllメソッドの追加。
- PtInCircle関数
- Typesユニットに追加。
- TRichEditコンポーネント
- 現在のカーソル位置を返すActiveLineNoプロパティを追加。
- Boolean型プロパティ
- オブジェクトインスペクタでBooleanをチェックボックスで指定可能に。
今日はここまで。
Delphi 2010 プレビュー その2 コンパイラ
2009/08/06に行われたDelphi/C++Builder次期バージョンプレビュー会のまとめです。次にコンパイラ、言語関係。
- Delphiコンパイラ
- RTTI
- 取得可能なRTTI(実行時型情報)が拡張される。クラス型やレコード型のメンバ(メソッドやフィールド、プロパティ)を実行時に知ることができ、メソッドの呼び出しも可能になる。RTTIユニットを使用する。RTTIなのでprivate属性のものは取得できない。
- カスタム属性
- [(属性)]でクラスなどの定義にカスタム属性を付加する。
- クラスコンストラクタ/クラスデストラクタ
- 従来ユニットのinitialization部、finalization部で行っていたような処理をクラスコンストラクタ(クラスのロード時に呼び出し)、クラスデストラクタ(クラスのアンロード時に呼び出し)で行うことができるようになる。
- C++コンパイラ
- FastMM
- (やっと)FastMMが標準のメモリマネージャとして組み込まれる。
- #pragma once
- VC++と同様にインクルードガードに#pragma onceを使用できるようになる。
- XML生成オプション -Zx
- __FUNCTION__マクロのサポート
- [[deprecated]]属性のサポート
- セキュア(..._s)関数
- VC++互換のセキュア関数が使用できるようになった。
- テンプレートクラスのための__declspec(dllimport)/__declspec(dllexport)
- 実際には不具合の修正だとか。
Delphi 2010 プレビュー その1 IDE
2009/08/06に行われたDelphi/C++Builder次期バージョンプレビュー会のまとめです。まずIDE関係から。
- 操作性の改善
- IDEインサイト
- [F6]で表示されるIDEInsightでキーボードから全ての機能にアクセスできる。
- コードフォーマッタ
- パラメータに従ってソースコードを自動的に整形(パラメータはDelphiとC++で別々に設定できる)。
- バックグラウンドコンパイル
- オプションでコンパイルをバックグラウンドで実行させることができる。バックグラウンドコンパイルを実行するとソースコードなどは一時的なスナップショットが取られ、エディタ上で編集を続行可能。C++はコンパイル時間が長いので特に有効。
- コードエディタ上の検索
- Firefoxライクな検索バーで検索候補をハイライト表示し、次候補([F3])および前候補([SHIFT]+[F3])の検索が可能になる。
- 開き直す
- 開き直すことのできるプロジェクトおよびソースの数、履歴を変更可能に。
- ユニットの使用
- IDEInsight同様にフィルタリング可能に。
- 新規作成のフィルタ
- IDEInsight同様にフィルタリング可能に。
- XMLデータバインディングウィザードの改善
- ジェネリック構文のリファクタリングをサポート
- デバッガ
- ビジュアライザ
- 日付時刻型やTStringsクラスなどをデバッガ上でよりわかりやすく表示できる。
- カスタムビジュアライザ
- Open ToolsAPIでカスタムビジュアライザを作成して組み込むことができる。sourceディレクトリにサンプルとして標準添付ののビジュアライザのソースがある。
- スレッドデバッグサポート
- 選択したスレッド内でのステップ実行やデバッグが可能になる。各スレッドの停止、再開を任意に指定可能になる。ブレークポイントのプロパティで特定のスレッドをターゲットにすることができるようになる。また各スレッドに名前をつけて区別するようになる(名前がないとWindowsがつけるスレッドIDで区別することになる)。
- モデリング
- 新しいlook&feelのモデル図、グラデーションによる塗りつぶし、項目間のリンクの作成機能などが追加
- 検査/測定機能はモデリング機能を有効にしなくても利用可能になる
- C++のモデリング機能のパフォーマンス改善
- ダイアグラムエディタの強化
2009年8月8日
RAD Studio 2010の新機能その4
- IDE/細かい改善
- プロジェクトマネージャペインで並び順が指定できるようになったり、デザイン時パッケージと実行時パッケージのアイコンが区別できるようになったり、コードエディタペインのブレークポイントやブックマークが移動できるようになったりします。またIDEインサイトではフォームやデータモジュール上のコンポーネントを探したり、プロジェクトオプションを探すこともできるようになります。詳細はWings of WindさんのRAD Studio 2010 Review #4: Project Management Enhancements。
- IDE/新機能紹介ビデオ公開
- Andreano LanusseさんがIDEの新機能を紹介するビデオを公開しています。Video: What's new in Delphi 2010 and C++Builder 2010 - IDE Featuresからも見られます。
- IDE/ToolsAPI拡張
- ToolsAPIが拡張されて、IDE上のドッカブルビューが(公式に)作成できるようになったり、エディタ領域に追加のビューを組み込めるようになったり、IDEインサイトのサポートが追加されたり、プロジェクトマネージャのローカルメニューへのメニューの追加のサポートが拡張されたり、IOTAProjectインタフェースで提供される情報が増やされたり、デバッガビジュアライザの作成と登録がサポートされたり、デバッガインタフェースが新機能をサポートするように拡張されたり、ビルドシステムからの通知がサポートされたり、IDEへのバージョンコントロールシステムのサポートが追加されたり、ToolsAPIからより多くのアクションにアクセスできるようにコードフォールディングのインタフェースが拡張されたりします。詳細はChris HesikさんのRAD Studio 2010: ToolsAPI enhancements。
- IDE/ジェネリクス用のリファクタリングとヘルプインサイト
- ジェネリクスに対してもリファクタリング機能やヘルプインサイトが有効になります。詳細はDarren KosinskiさんのRAD Studio 2010 - Refactoring & Help Insight for Generics。
2009年8月7日
C++0x規格案からConceptが削除された経緯
大詰めを迎えつつある(はずの)C++0xの規格案からConceptが削除された、というニュースは一部のC++0xウォッチャな人々に驚きを持って迎えられました。C++標準化委員会の偉い人であるDouglas Gregorさんによる理由と経緯の説明をhitoさんが翻訳してくださっています。C++0xに興味がある人は読んでおくべき。
What Happened in Frankfurt? « C++Next
本の虫: Douglas Gregor、フランクフルト会議について語る
2009/08/15追記: Bjarne StroustrupさんとDanny Kalevさんのやりとりもhitoさんが翻訳してくださいました。
本の虫: Bjarne Stroustrup、Conceptと未来を語る
What Happened in Frankfurt? « C++Next
本の虫: Douglas Gregor、フランクフルト会議について語る
2009/08/15追記: Bjarne StroustrupさんとDanny Kalevさんのやりとりもhitoさんが翻訳してくださいました。
本の虫: Bjarne Stroustrup、Conceptと未来を語る
RAD Studio 2010の新機能その3
- IDE/アクションプロパティエディタ
- プロパティエディタ上のアクションプロパティから新規アクションや標準アクションを便利に設定することができるようになります。詳細はChris BensenさんのRAD Studio 2010 - Actions。
- コンパイラ/RTTI機能の拡張
- 新しいRTTIの拡張機能を使用すると従来取得できなかった情報をクラスやレコードから取り出せるようになります。しばらく前にDelphi-MLで質問が出ていたレコード型のフィールド名の取得もこれで可能になります。詳細は我らがTeam JapanのDelphi 2010: RTTI新機能を試す。
2009年8月6日
Delphi/C++Builder次期バージョンプレビュー会
Team Japan » 本日、Delphi/C++Builder次期バージョンプレビュー会
これから中目黒に行ってきます。実況はしませんが、随時更新の予定です。
18:00 準備完了。もう時間ですが誰か足りないような…。始まりました。
みなさん揃ったようです。というかいつもの人たちだけですね…。
FORUM 8さんのVRはヌルヌルに動きます。イケてます。OpenGLだそうです。
高橋さん登場でRAD Studio 2010のお話に。
時間オーバでバタバタしつつ終了しました。なかなか面白かったです。出席者および関係者のみなさん、おつかれさまでした。プレビューのまとめ、感想などは別途。
2009/08/07追記: 中継の録画が見られるようになっているようです。たぶんVRの凄さはこれではわからないと思いますが。
Delphi/C++Builder次期バージョンプレビュー会ライブ - 録画
2009/08/10追記: プレビュー会についてのリンクをまとめておきます。
Delphi 2010 プレビュー その1 IDE
Delphi 2010 プレビュー その2 コンパイラ
Delphi 2010 プレビュー その3 VCL
Delphi 2010 プレビュー その4 データベース
Delphi 2010 プレビュー その5 まとめ
2009/08/11追記: @ITさんの記事が出ています。
Delphi新版はタッチ操作のアプリケーション開発を可能に - @IT
これから中目黒に行ってきます。実況はしませんが、随時更新の予定です。
18:00 準備完了。もう時間ですが誰か足りないような…。始まりました。
みなさん揃ったようです。というかいつもの人たちだけですね…。
FORUM 8さんのVRはヌルヌルに動きます。イケてます。OpenGLだそうです。
高橋さん登場でRAD Studio 2010のお話に。
時間オーバでバタバタしつつ終了しました。なかなか面白かったです。出席者および関係者のみなさん、おつかれさまでした。プレビューのまとめ、感想などは別途。
2009/08/07追記: 中継の録画が見られるようになっているようです。たぶんVRの凄さはこれではわからないと思いますが。
Delphi/C++Builder次期バージョンプレビュー会ライブ - 録画
2009/08/10追記: プレビュー会についてのリンクをまとめておきます。
Delphi 2010 プレビュー その1 IDE
Delphi 2010 プレビュー その2 コンパイラ
Delphi 2010 プレビュー その3 VCL
Delphi 2010 プレビュー その4 データベース
Delphi 2010 プレビュー その5 まとめ
2009/08/11追記: @ITさんの記事が出ています。
Delphi新版はタッチ操作のアプリケーション開発を可能に - @IT
RAD Studio 2010の新機能その2
- IDE/ファイル|開き直すメニューの改良
- IDEの[ファイル]→[開き直す]で保持されるプロジェクト、ファイルの最大数や実際に保持されているアイテムをエディットできるようになります。詳細はChris HesikさんのRAD Studio 2010: Improved File|Reopen menuとNick HodgesさんのRAD Studio 2010 IDE Features: File|Reopen。日本語だとTeam Japan » RAD Studio 2010: ファイル・プロジェクトの再オープン。
- IDE/デバッグビジュアライザ
- デバッグ時のローカル変数をよりわかりやすく表示できるようになります。日付時刻(TDateTime)や文字列リスト(TStrings)用のものは標準で付属しますが、OTA(Open Tools API)を利用して作ることもできます。詳細はWings of WindさんのRAD Studio 2010 Review #3: Debug Visualizers.。
2009年8月5日
RAD Studio 2010の新機能その1
RAD Studio 2010の新機能についての情報が続々と公開されています。ということで可能な限りフォローしてみます。
ちなみにNick Hodgesさんの右隣の部屋はChris Bensenさん(シニアR&Dエンジニア)の部屋だそうです。
- IDE/バックグラウンドコンパイル
- Delphi/C++Builder 2010ではバックグラウンドでコンパイルを実行させることができるようになります。詳細はAndreano LanusseさんのBackground Compilation in Delphi 2010 and C++Builder 2010。
- IDE/検索機能の強化
- 検索結果がコードエディタ上でハイライト表示されます。また検索ダイアログがFirefoxのように検索バーに置き換わりました。詳細はDarren KosinskiさんのEmbarcadero RAD Studio 2010。
- IDE/IDEインサイト
- IDE上で呼び出し可能な機能を集約して一覧表示します。詳細はNick HodgesさんのRAD Studio 2010 – IDE Features: IDE InsightとMark DuncanさんのRAD Studio 2010 - IDE Insight Part 1。日本語だとTeam Japan » RAD Studio 2010: IDEインサイト。
- IDE/C++Builderクラスエクスプローラ
- C++Builderでもクラスエクスプローラが使用できるようになります。またクラスの継承関係をグラフィカルに表示できます。詳細はDavid DeanさんのC++Builder 2010 and the new Class Explorer。日本語だとTeam Japan » RAD Studio 2010: 帰ってきた C++ クラスエクスプローラー。
- IDE/スレッド指定ブレークポイント
- ブレークポイントのプロパティで実行スレッドをIDまたは名前で指定できるようになります。またデバッガ上でスレッドを扱いやすくするためにTThreadクラスでスレッドに名前をつけられるようになります。詳細はChris HesikさんのRAD Studio 2010: Thread-specific breakpoints。
- IDE/コンポーネントツールバー
- (コンポーネントパレットではなく)Delphi 7以前のようなコンポーネントツールバーを使用することができるようになります。詳細はWings of WindさんのRAD Studio 2010 Review #2: The new old Component Toolbar.とAndreano LanusseさんのThe old Component Toolbar is back and better in RAD Studio 2010、新しいツールパレットのほうが気に入ってるんだけどな、というNick HodgesさんのRAD Studio 2010 — IDE Features: "Old School" Tool Palette。日本語だとTeam Japan » RAD Studio 2010: コンポーネントツールバー。
- IDE/プロパティエディタ
- プロパティエディタ上でBooleanにチェックボックスがつきました。また日付型ではDateTimePickerライクなプロパティエディタが使えるようになります。詳細はChris BensenさんのEmbarcadero RAD Studio 2010。
- IDE/ユニット表示、フォーム表示
- ユニット表示([Ctrl]+[F12])、フォーム表示([Shift]+[F12])はIDEインサイトを使用するように変更されました。詳細はChris BensenさんのRAD Studio 2010 - The IDE。
ちなみにNick Hodgesさんの右隣の部屋はChris Bensenさん(シニアR&Dエンジニア)の部屋だそうです。
2009年8月4日
RAD Studio 2010 スニークプレビュー その1
EmbarcaderoのwebサイトにRAD Studio 2010の公式ページが登場しました。スニークプレビューの第1弾"RADically Reduce Development Time with RAD Studio 2010"はIDEの新機能についてです。
次回のプレビューはタッチ/ジェスチャ機能についてで、2009/08/11に公開だそうです。またカウントダウンによればRAD Studio 2010は2009/08/25発売ですね(もちろんPDTでしょうけど)。
元ねたはMarco CantuさんのIDE Sneak Preview of RAD Studio 2010。
2009/08/05追記: 早くも翻訳されています。
RAD Studio, C++Builder, Delphi Prism, Delphi 2010スニークプレビュー
Application Development with RAD Studio 2010 |Delphi , C++Builder & Delphi Prism
2009/08/05追記: RAD Studio/Delphi/C++Builder 2010は2009/08/25 00:00PDT(2009/08/25 16:00JST)からダウンロード版が購入可能になるとのことです。
Windows 7対応のDelphi/C++Builder新版が8月25日発売へ - ニュース:ITpro(要登録)
- IDEインサイト
- コードフォーマッタ
- クラスエクスプローラ
- データビジュアライザ
- デバッガスレッド制御
次回のプレビューはタッチ/ジェスチャ機能についてで、2009/08/11に公開だそうです。またカウントダウンによればRAD Studio 2010は2009/08/25発売ですね(もちろんPDTでしょうけど)。
元ねたはMarco CantuさんのIDE Sneak Preview of RAD Studio 2010。
2009/08/05追記: 早くも翻訳されています。
RAD Studio, C++Builder, Delphi Prism, Delphi 2010スニークプレビュー
Application Development with RAD Studio 2010 |Delphi , C++Builder & Delphi Prism
2009/08/05追記: RAD Studio/Delphi/C++Builder 2010は2009/08/25 00:00PDT(2009/08/25 16:00JST)からダウンロード版が購入可能になるとのことです。
Windows 7対応のDelphi/C++Builder新版が8月25日発売へ - ニュース:ITpro(要登録)
2009年8月3日
Micro FocusによるBorlandの買収が完了
2009/05/06の発表以来どうなることやらという雰囲気も漂っていたMicro FocusによるBorland Softwareの買収が2009/07/27に完了したとのことです。
Completion of Borland acquisition - Micro Focus
既に www.borland.com は www.microfocus.com にリダイレクトされるようになっています。と思ったら http://www.borland.com/jp/ はまだそのままですね…。
2009/08/03追記: Micro Focus Finalizes Borland Acquisition with Sweetened Deal -- Application Development Trendsによれば最終的に1株1.50USD、合計1億1千万USD(約107億円)で合意したそうです。
Completion of Borland acquisition - Micro Focus
既に www.borland.com は www.microfocus.com にリダイレクトされるようになっています。と思ったら http://www.borland.com/jp/ はまだそのままですね…。
2009/08/03追記: Micro Focus Finalizes Borland Acquisition with Sweetened Deal -- Application Development Trendsによれば最終的に1株1.50USD、合計1億1千万USD(約107億円)で合意したそうです。
2009年7月31日
2009年7月29日
2009年7月27日
Weaverプレビュー会開催
ちょっと前の情報ですが、Weaver (Delphi/C++Builder 2010)のプレビュー会が2009/08/06に行われるそうです。
Delphi/C++Builder次期バージョンプレビュー会のお知らせ
WeaverのFTには入れてもらえなかったので、どうするかなぁ…。もっとも人数制限もあるし、どうしよう以前に相手にしてもらえない可能性もあるわけですが。
2009/07/29追記: 上記リンク先にQ&Aが追加されています。別に当日PCを持っていかなくてもいいらしいです。
2009/08/05追記: 駆け込みですが出席することにしました。
Delphi/C++Builder次期バージョンプレビュー会のお知らせ
WeaverのFTには入れてもらえなかったので、どうするかなぁ…。もっとも人数制限もあるし、どうしよう以前に相手にしてもらえない可能性もあるわけですが。
2009/07/29追記: 上記リンク先にQ&Aが追加されています。別に当日PCを持っていかなくてもいいらしいです。
2009/08/05追記: 駆け込みですが出席することにしました。
2009年7月24日
Delphi Live! 2009/プレゼンテーション資料ダウンロード
2009/05に行われたDelphi Live! 2009のプレゼンテーション資料がダウンロードできるようになっています。
Presentation Download | Delphi Live ! - The Delphi Developer Conference!
元ねたはDelphi.orgのDelphiLive! Presentation Downloads。
Presentation Download | Delphi Live ! - The Delphi Developer Conference!
元ねたはDelphi.orgのDelphiLive! Presentation Downloads。
2009年7月23日
Delphi 7以降で追加された機能について
第13回エンバカデロ・デベロッパーキャンプの「Delphiコーディングスタイル バトルトーク」(A5)セッションのトークの中で、スピーカの方々を含め会場内は意外にDelphi 7以降に追加された機能をあまり知らないような雰囲気でしたが、そのあたりをわかりやすくまとめてあるアーティクルを4つ。
34361: Delphi 7以降の IDEの新機能
34409: Delphi 7以降の言語およびコンパイラの新機能
34342: Delphi 7以降のVCLの新機能
37433: あなたの環境でもきっと役に立つDelphi 7以降の新機能トップ10 - by Pawel Glowacki
34361: Delphi 7以降の IDEの新機能
34409: Delphi 7以降の言語およびコンパイラの新機能
34342: Delphi 7以降のVCLの新機能
37433: あなたの環境でもきっと役に立つDelphi 7以降の新機能トップ10 - by Pawel Glowacki
Delphiアルゴリズムトレーニング
同じくはやしさんが@ITのCoding Edgeフォーラムで連載していた"Delphiアルゴリズムトレーニング"も完結しています。
(1) TListの実装と性能
(2) 単純なキューと循環キュー
(3) AVL木で木構造を学ぼう
(4) もっとAVL木で木構造を学ぼう
(5) RDBMSで使われるB木を学ぼう
(6) B木から要素を削除する方法を学ぼう
(1) TListの実装と性能
(2) 単純なキューと循環キュー
(3) AVL木で木構造を学ぼう
(4) もっとAVL木で木構造を学ぼう
(5) RDBMSで使われるB木を学ぼう
(6) B木から要素を削除する方法を学ぼう
Yet another OSS DB:Firebird
Firebird日本ユーザ会のはやしさんが@ITのDatabase Expertフォーラムで連載していた"Yet another OSS DB:Firebird"が完結しました。
(1) Firebirdのアーキテクチャと特性、歴史
(2) データベースファイルの内部構造を探ってみた
(3) 仕組みを「見える化」してみた
(4) Firebirdの標準関数を極める
(5) 内部関数が足りない? それならUDFだ!
(6) ユーザー定義関数で日付時刻やBLOBを扱う
InterBase/FirebirdのユーザやDelphi/C++Builderでデータベースを扱うプログラマはひととおり読んでおくといいと思います。
(1) Firebirdのアーキテクチャと特性、歴史
(2) データベースファイルの内部構造を探ってみた
(3) 仕組みを「見える化」してみた
(4) Firebirdの標準関数を極める
(5) 内部関数が足りない? それならUDFだ!
(6) ユーザー定義関数で日付時刻やBLOBを扱う
InterBase/FirebirdのユーザやDelphi/C++Builderでデータベースを扱うプログラマはひととおり読んでおくといいと思います。
C++Builder 2009 ファーストガイド
C++Builder 2009 ファーストガイドが10回に分割されて公開されるようです。
第一回 「C++Builder 2009のインストールと使用許諾」
第二回 「C++Builder2009の起動と終了」
第三回「総合開発環境(IDE)の説明」
第四回「プログラミング手順(前編)」
第五回「プログラミング手順(後編)」
第六回「C++基礎知識(前編)」
第七回「C++基礎知識(後編)」
第八回 「コンポーネント」
第九回「コンポーネントの作成」
第十回「データベースアプリケーションの作成」
第一回で気になった点を2つばかり。
2009/07/31追記: 第二回のリンクを追加しました。
2009/08/12追記: 第三回のリンクを追加しました。
2009/08/21追記: 第四回のリンクを追加しました。
2009/09/02追記: 第五回のリンクを追加しました。
2009/09/11追記: 第六回のリンクを追加しました。
2009/09/22追記: 第七回のリンクを追加しました。
2009/10/02追記: 第八回のリンクを追加しました。
2009/10/11追記: 第九回のリンクを追加しました。
2009/10/22追記: 第十回のリンクを追加しました。やっと完結です。
第一回 「C++Builder 2009のインストールと使用許諾」
第二回 「C++Builder2009の起動と終了」
第三回「総合開発環境(IDE)の説明」
第四回「プログラミング手順(前編)」
第五回「プログラミング手順(後編)」
第六回「C++基礎知識(前編)」
第七回「C++基礎知識(後編)」
第八回 「コンポーネント」
第九回「コンポーネントの作成」
第十回「データベースアプリケーションの作成」
第一回で気になった点を2つばかり。
- "1.3 インストールに必要なソフトウェア"にあるとおり、Dephi 2009/C++Builder 2009では必要に応じてMicrosoft .NET Framework 2.0、Microsoft JSharp Runtime 2.0、Microsoft .NET 2.0 Japanese Language Pack、Microsoft Data Access Components(MDAC) 2.8、Microsoft Core XML Service(MSXML) 6.0、Microsoft Document Explorer 2008、Microsoft Document Explorer 2008 Language Packがインストールされますが、少なくとも.NET Framework 2.0、MDAC 2.8、MSXML 6.0についてはセキュリティ更新プログラムが存在するはずです。これらのソフトウェアが新規にインストールされたときにはWindowsUpdateやMBSAでセキュリティ更新プログラムの適用の必要性を確認するよう、注意を促しておくべきではないでしょうか。
- アップデートの確認や適用方法は第二回以降に出てくるのでしょうか…?
2009/07/31追記: 第二回のリンクを追加しました。
2009/08/12追記: 第三回のリンクを追加しました。
2009/08/21追記: 第四回のリンクを追加しました。
2009/09/02追記: 第五回のリンクを追加しました。
2009/09/11追記: 第六回のリンクを追加しました。
2009/09/22追記: 第七回のリンクを追加しました。
2009/10/02追記: 第八回のリンクを追加しました。
2009/10/11追記: 第九回のリンクを追加しました。
2009/10/22追記: 第十回のリンクを追加しました。やっと完結です。
2009年7月16日
第14回エンバカデロ・デベロッパーキャンプ
先日の第13回の懇親会のときの藤井さんの予告のとおり、次回のデベロッパーキャンプは2009年09月02日に大阪で開催です(出張でも重なれば行けるかもしれませんが…)。今回はG2セッションのWeaver (Delphi/C++Builder/RAD Stdio 2010)のプレビュー(by高橋さん)が注目です。
2009年7月15日
1st anniversary
気が付いたら1年経っていました(1週間も気付かなかったのかい)。2008/07/08から2009/07/07までの1年間で168エントリ、平均するとだいたい2日で1エントリといったところですが、最近ちょっとペースが悪いような。
totonica on EDN
totonicaさんによるEDNのTechnical Articleが順次公開中です。
39691: RawByteStringの使い方
39692: 文字列とエレメント
39696: ライブテンプレートの作り方
39697: 暗黙の文字列変換
39698: Quality Centralでのバグレポートのコツ
39699: DCC警告W1050の回避方法
39701: 無名メソッドとスレッド
39704: Delphi 2009におけるグラフィック機能の強化点
39706: 文字列型とオーバーロード
2009/07/21追記: 39691/39692/39697のアーティクルへのリンクを追加しました。
2009/07/22追記: 39701のアーティクルへのリンクを追加しました。
2009/07/24追記: 39704/39706のアーティクルへのリンクを追加しました。
2009/07/28追記: totonicaさんによれば、これで今回は打ち止めだそうです。おつかれさまでした。
39691: RawByteStringの使い方
39692: 文字列とエレメント
39696: ライブテンプレートの作り方
39697: 暗黙の文字列変換
39698: Quality Centralでのバグレポートのコツ
39699: DCC警告W1050の回避方法
39701: 無名メソッドとスレッド
39704: Delphi 2009におけるグラフィック機能の強化点
39706: 文字列型とオーバーロード
2009/07/21追記: 39691/39692/39697のアーティクルへのリンクを追加しました。
2009/07/22追記: 39701のアーティクルへのリンクを追加しました。
2009/07/24追記: 39704/39706のアーティクルへのリンクを追加しました。
2009/07/28追記: totonicaさんによれば、これで今回は打ち止めだそうです。おつかれさまでした。
2009年7月12日
Blogger Syntax Highlighter 1.5.2
Heisencoder: Adding Syntax Highlighting to Bloggerを参考にSyntax Highlighterを組み込みなおしてみました。
2009年7月11日
Delphi 2009/C++Builder 2009 Help Update 3
Delphi 2009/C++Builder 2009のHelp Update 3がリリースされています。英語版についてはHelp Update 2の不具合修正、ドイツ語、フランス語、日本語については英語版Help Update 2の翻訳となっています。
Readme: Help Update 3 for Delphi and C++Builder 2009
元ねたはNick HodgesさんのRandom Thoughts on the Passing Scene #115。
Readme: Help Update 3 for Delphi and C++Builder 2009
元ねたはNick HodgesさんのRandom Thoughts on the Passing Scene #115。
2009年7月9日
ファイルをごみ箱経由で削除
ファイルをごみ箱に送る(ごみ箱経由で削除する)にはSHFileOperationでSHFILEOPSTRUCTのwFuncにFO_DELETEを指定します。またファイル名はNUL文字で区切って最後にNUL文字を2つ重ねる("double-null terminated string")必要があります。
uses
Windows, SysUtils, Classes, ShellAPI;
function SHDeleteFiles(const Filename: String; WindowHandle: HWND;
AllowUndo: Boolean; FilesOnly: Boolean;
NoErrorUI: Boolean; Silent: Boolean): Boolean; overload;
function SHDeleteFiles(Filenames: TStrings; WindowHandle: HWND;
AllowUndo: Boolean; FilesOnly: Boolean;
NoErrorUI: Boolean; Silent: Boolean): Boolean; overload;
function InternalDeleteFiles(const Filenames: String;
WindowHandle: HWND;
AllowUndo: Boolean;
FilesOnly: Boolean;
NoErrorUI: Boolean;
Silent: Boolean): Boolean; forward;
function SHDeleteFiles(const Filename: String; WindowHandle: HWND;
AllowUndo: Boolean; FilesOnly: Boolean;
NoErrorUI: Boolean; Silent: Boolean): Boolean;
var
FilenameArray: String;
begin
FilenameArray := ExpandFileName(Filename) + #0;
Result := InternalDeleteFiles(FilenameArray,WindowHandle,
AllowUndo,FilesOnly,NoErrorUI,Silent);
end;
function SHDeleteFiles(Filenames: TStrings; WindowHandle: HWND;
AllowUndo: Boolean; FilesOnly: Boolean;
NoErrorUI: Boolean; Silent: Boolean): Boolean;
var
Index: Integer;
FilenameArray: String;
begin
FilenameArray := '';
for Index := 0 to Filenames.Count - 1 do
begin
FilenameArray := FilenameArray + ExpandFileName(Filenames.Strings[Index]) + #0;
end;
FilenameArray := FilenameArray + #0;
Result := InternalDeleteFiles(FilenameArray,WindowHandle,
AllowUndo,FilesOnly,NoErrorUI,Silent);
end;
function InternalDeleteFiles(const Filenames: String;
WindowHandle: HWND;
AllowUndo: Boolean;
FilesOnly: Boolean;
NoErrorUI: Boolean;
Silent: Boolean): Boolean;
var
SHOP: TSHFileOpStruct;
begin
with SHOP do
begin
Wnd := WindowHandle;
wFunc := FO_DELETE;
pFrom := PChar(Filenames);
pTo := nil;
fFlags := FOF_NOCONFIRMATION;
if AllowUndo = True then
begin
fFlags := fFlags or FOF_ALLOWUNDO;
end;
if FilesOnly = True then
begin
fFlags := fFlags or FOF_FILESONLY;
end;
if NoErrorUI = True then
begin
fFlags := fFlags or FOF_NOERRORUI;
end;
if Silent = True then
begin
fFlags := fFlags or FOF_SILENT;
end;
fAnyOperationsAborted := False;
hNameMappings := nil;
lpszProgressTitle := nil;
end;
Result := (SHFileOperation(SHOP) = 0) and (SHOP.fAnyOperationsAborted = False);
end;
元ねたはDelete files with the ability to UNDO他多数。
2009年7月2日
第13回エンバカデロ・デベロッパーキャンプ終了
スピーカの皆さん、関係者の皆さん、懇親会に参加したみなさん、おつかれさまでした。
今日は山本さんに神が降臨した瞬間を見られてよかったです(それが感想かい)。あとペンケースが当たりました。
2009/07/13追記: セッション資料がダウンロードできるようになっています。
今日は山本さんに神が降臨した瞬間を見られてよかったです(それが感想かい)。あとペンケースが当たりました。
2009/07/13追記: セッション資料がダウンロードできるようになっています。
2009年6月29日
JVCL 3.37リリース
JVCL(JEDI Visual Component Library)がアップデートされてVersion 3.37(JCL Version 1.105)になっています。
SourceForge.net: JEDI VCL for Delphi: Files
元ねたはNick HodgesさんのRandom Thoughts on the Passing Scene #114。
SourceForge.net: JEDI VCL for Delphi: Files
元ねたはNick HodgesさんのRandom Thoughts on the Passing Scene #114。
2009年6月19日
PowerPDF for Delphi 2009 日本語版
PDFを生成するTakeshi KannoさんのPowerPdf 0.9(開発停止/LGPL)をDelphi 2009で使用できるようにMamさんが改造したコンポーネント。
PowerPDF for Delphi 2009 Japanese
MAM'S WEBSITE 無料フリーソフトダウンロード(PCツール)
PowerPDF for Delphi 2009 Japanese
MAM'S WEBSITE 無料フリーソフトダウンロード(PCツール)
数式計算コンポーネント
数式を与えて値を計算するという、簡単なようにみえて実際には結構面倒なことをやってくれるというコンポーネント。作者のYura Pisarevさんはロシアの方でしょうか。
High-speed mathematics parser
TMathParser
ライセンス条件はどうなっているのでしょう…?
High-speed mathematics parser
TMathParser
ライセンス条件はどうなっているのでしょう…?
2009年6月16日
ローカライズリソースDLLの選択
国際化対応のためのメカニズムとしてDelphi/C++Builder(Ver3以降)にはローカライズリソースDLL(localized resource DLL)があります。これは拡張子".EXE"、".DLL"、"BPL"のファイルについて、実行時にこれらのファイルからのリソース(フォームデータ、リソース文字列、その他の埋め込みリソース)のロードをローカライズリソースDLLからのものに置き換えてしまう、というものです。
この動作はSystem.pasのLoadResourceModule関数で処理されますが、ここではまず"HKCU\Software\CodeGear\Locales"(Delphi 2009 or later)、"HKLM\Software\CodeGear\Locales"(Delphi 2009 or later)、"HKCU\Software\Borland\Locales"(Delphi 4 or later)、"HKLM\Software\Borland\Locales"(Delphi 6-2007)、"HKCU\Software\Borland\Delphi\Locales"(Delphi 3 or later)の順にレジストリキーの存在を確認し、いずれかが存在したら次に実行ファイルのフルパス名の登録があるかどうかを見て、登録されていたら代替ロケール識別子として取得します。次に実行プログラムのロケール識別子を実行ロケール識別子として取得します。その上で実行ファイルのフルパス名の拡張子を代替ロケール識別子(登録されていれば)、実行ロケール識別子、実行ロケール識別子の先頭2文字だけ、の順で置き換えてWin32APIのLoadLibraryExを呼び出し、成功したらそのモジュールハンドルを以後のリソースの取得に使用します。いずれも失敗した場合はもともとの実行ファイルのモジュールハンドルからリソースを取得することになります。
ここでロケール識別子はGetLocaleInfoのLCTYPEにLOCALE_SABBREVLANGNAMEを指定して取得される3文字の英字で、最初の2文字が言語簡略名(ISO 639)を、3文字目がサブ言語タイプ(主に地域)を示します。詳細なリストはMSDNのNational Language Support (NLS) API Referenceにあります。
ということは、実行ロケールがJPN(ロケールID=0x0411/日本語版Windows)かつ実行ファイルのロケールがJPN以外(例えばENU=0x0409)の状況でローカライズリソースDLLとして.JPNファイルが存在する場合、実行ファイルのリソースを使用する方法がない(.JPNファイルを削除するしかない)わけです。どーりでレジストリに何を指定しても駄目なわけだ…。
元ねたは"Source\RTL\SYS\System.pas"。
2009/09/06追記: 新井さんによるとDelphi 2010ではこの選択メカニズムに一部変更があったとのことです。
Embarcadero Discussion Forums: Delphi2010 国際化対応について ...
Delphi 2010を入手したら検証してみたいと思います。
2011/05/04追記: forums.codegear.comのリンクをforums.embarcadero.comのものに差し替え。
この動作はSystem.pasのLoadResourceModule関数で処理されますが、ここではまず"HKCU\Software\CodeGear\Locales"(Delphi 2009 or later)、"HKLM\Software\CodeGear\Locales"(Delphi 2009 or later)、"HKCU\Software\Borland\Locales"(Delphi 4 or later)、"HKLM\Software\Borland\Locales"(Delphi 6-2007)、"HKCU\Software\Borland\Delphi\Locales"(Delphi 3 or later)の順にレジストリキーの存在を確認し、いずれかが存在したら次に実行ファイルのフルパス名の登録があるかどうかを見て、登録されていたら代替ロケール識別子として取得します。次に実行プログラムのロケール識別子を実行ロケール識別子として取得します。その上で実行ファイルのフルパス名の拡張子を代替ロケール識別子(登録されていれば)、実行ロケール識別子、実行ロケール識別子の先頭2文字だけ、の順で置き換えてWin32APIのLoadLibraryExを呼び出し、成功したらそのモジュールハンドルを以後のリソースの取得に使用します。いずれも失敗した場合はもともとの実行ファイルのモジュールハンドルからリソースを取得することになります。
ここでロケール識別子はGetLocaleInfoのLCTYPEにLOCALE_SABBREVLANGNAMEを指定して取得される3文字の英字で、最初の2文字が言語簡略名(ISO 639)を、3文字目がサブ言語タイプ(主に地域)を示します。詳細なリストはMSDNのNational Language Support (NLS) API Referenceにあります。
ということは、実行ロケールがJPN(ロケールID=0x0411/日本語版Windows)かつ実行ファイルのロケールがJPN以外(例えばENU=0x0409)の状況でローカライズリソースDLLとして.JPNファイルが存在する場合、実行ファイルのリソースを使用する方法がない(.JPNファイルを削除するしかない)わけです。どーりでレジストリに何を指定しても駄目なわけだ…。
元ねたは"Source\RTL\SYS\System.pas"。
2009/09/06追記: 新井さんによるとDelphi 2010ではこの選択メカニズムに一部変更があったとのことです。
Embarcadero Discussion Forums: Delphi2010 国際化対応について ...
Delphi 2010を入手したら検証してみたいと思います。
2011/05/04追記: forums.codegear.comのリンクをforums.embarcadero.comのものに差し替え。
2009年6月10日
2009年6月4日
Borlandの買収に競合出現
2009/05/06にBorlandがMicro Focusに買収されるというニュースが流れましたが、ここにきて1株1.20USDで買収したいという競合相手(BorlandによればNDAで相手を明かすことはできないが、"E社"(Company E)と呼んでいる)が出現した模様です。
Tech Trader Daily - Barron’s Online : Borland Shrs Spikes; Second Bidder Offers $1.20/Shr
Borlandはどうもこっちになびいているようで、Micro Focusによる買収は不透明な情勢のようです。
元ねたは公式フォーラムのEmbarcadero Discussion Forums: Is "Company E" Embaracadero...? ...あたり。
Tech Trader Daily - Barron’s Online : Borland Shrs Spikes; Second Bidder Offers $1.20/Shr
Borlandはどうもこっちになびいているようで、Micro Focusによる買収は不透明な情勢のようです。
元ねたは公式フォーラムのEmbarcadero Discussion Forums: Is "Company E" Embaracadero...? ...あたり。
2009年6月3日
DelphiのASLR/DEP(NX)サポート
ASLR(Address Space Layout Randomization)とは、実行ファイルからリンクされるDLLをユーザメモリ空間上に配置するときにその位置をランダムにすることにより特定のアドレスに既知のDLLがロードされていることを前提とした攻撃を防ぐもので、Windows Vistaで導入されました。
一方DEP/NX(Data Execution Prevention/Non-eXecutable)とはNXであるとマークしたメモリ空間上の領域でコードを実行することを禁止することによりバッファオーバランなどを利用した攻撃を防ぐもので、Windows XP SP2で導入されました。
Delphiでは2007以降でASLRおよびDEP/NXをサポートするようになりました。またDelphiのデバッガも2007以降でDEP/NXに対応した(DEP/NXが有効なWindows上でもエラーにならないようにした)とのことです。
ASLRを有効にするにはソースコード上で
DEP/NXを有効にするにはソースコード上で
ASLRとDEP/NXを同時に有効したい場合はソースコード上で
コンパイラ指令$SETPEFLAGS/$SETPEOPTFLAGSはDelphiのヘルプのPE ヘッダーフラグ(Delphi)(英語ヘルプ)にあるように、PEファイルヘッダのCharacteristicsフィールドとPEファイルオプションヘッダのDLLCharacteristicsフィールド上のフラグをセットする(指定は累積されます)ためのもので、これらのコンパイラ指令はプロジェクトソース(*.dpr/*.dpk)に記述するのが望ましいとのことです。PEファイルヘッダのCharacteristicsフィールドとPEファイルオプションヘッダのDLLCharacteristicsフィールドの詳細はIMAGE_FILE_HEADER Structure (Windows)(PEファイルヘッダ)およびIMAGE_OPTIONAL_HEADER Structure (Windows)(PEファイルオプションヘッダ)を参照してください。
元ねたはMichael Howard's Web Log : CodeGear’s new Delphi 2007 supports ASLR and NX、Mike Devery » Delphi 2007 supports ASLR and NX、Chris’ CodeGear Debugger Blog » The Delphi 2007 Debugger and DEP/NX (Internet Archive)あたり。
2011/05/05追記: Chris Hesikさんの"Chris’ CodeGear Debugger Blog"のInternet Archiveのリンクを追加。
一方DEP/NX(Data Execution Prevention/Non-eXecutable)とはNXであるとマークしたメモリ空間上の領域でコードを実行することを禁止することによりバッファオーバランなどを利用した攻撃を防ぐもので、Windows XP SP2で導入されました。
Delphiでは2007以降でASLRおよびDEP/NXをサポートするようになりました。またDelphiのデバッガも2007以降でDEP/NXに対応した(DEP/NXが有効なWindows上でもエラーにならないようにした)とのことです。
ASLRを有効にするにはソースコード上で
{$DYNAMICBASE ON}
または
{$SETPEOPTFLAGS $40}
とします(コマンドライン版では"–dynamicbase"スイッチを使用します)。DEP/NXを有効にするにはソースコード上で
{$SETPEOPTFLAGS $100}
とします。ASLRとDEP/NXを同時に有効したい場合はソースコード上で
{$SETPEOPTFLAGS $140}
とすれば1回の指定で済みます。コンパイラ指令$SETPEFLAGS/$SETPEOPTFLAGSはDelphiのヘルプのPE ヘッダーフラグ(Delphi)(英語ヘルプ)にあるように、PEファイルヘッダのCharacteristicsフィールドとPEファイルオプションヘッダのDLLCharacteristicsフィールド上のフラグをセットする(指定は累積されます)ためのもので、これらのコンパイラ指令はプロジェクトソース(*.dpr/*.dpk)に記述するのが望ましいとのことです。PEファイルヘッダのCharacteristicsフィールドとPEファイルオプションヘッダのDLLCharacteristicsフィールドの詳細はIMAGE_FILE_HEADER Structure (Windows)(PEファイルヘッダ)およびIMAGE_OPTIONAL_HEADER Structure (Windows)(PEファイルオプションヘッダ)を参照してください。
元ねたはMichael Howard's Web Log : CodeGear’s new Delphi 2007 supports ASLR and NX、Mike Devery » Delphi 2007 supports ASLR and NX、Chris’ CodeGear Debugger Blog » The Delphi 2007 Debugger and DEP/NX (Internet Archive)あたり。
2011/05/05追記: Chris Hesikさんの"Chris’ CodeGear Debugger Blog"のInternet Archiveのリンクを追加。
2009年5月31日
IDE Fix Pack 2.6/VCLFixPack 1.3リリース
Andreas HausladenさんのIDE Fix Pack 2009がVersion 2.6に、VCLFixPackがVersion 1.3にそれぞれアップデートされています。IDE Fix Pack 2009 Version 2.6はDelphi 2009 Update 3適用済の環境でのみ動作するとのことです。
Andy’s Blog and Tools » IDE Fix Pack 2.6 for 2009 Update 3 / VCL Fix Pack 1.3
Andy’s Blog and Tools » IDE Fix Pack 2.6 for 2009 Update 3 / VCL Fix Pack 1.3
2009年5月29日
リリースは月火水のみ
公式フォーラムでNick Hodgesさんが以下のように発言しています。
Embarcadero Discussion Forums: When the heck is Update 3 going to be ...
要は公式な方針として(PST/PDTで)月曜日、火曜日、水曜日にのみリリースを行う、ということのようです(JSTだと概ね火曜日~木曜日になりますね)。
Embarcadero Discussion Forums: When the heck is Update 3 going to be ...
Actually, we now only ship on a Monday, Tuesday, or Wednesday. We've set that as an official policy.
要は公式な方針として(PST/PDTで)月曜日、火曜日、水曜日にのみリリースを行う、ということのようです(JSTだと概ね火曜日~木曜日になりますね)。
2009年5月28日
Delphi 2009/C++Builder 2009 Update 3, Update 4 and Boost Update
Delphi 2009/C++Builder 2009のUpdate 3/4がリリースされています。Update 3はIDE/VCL関係の、Update 4はデータベース関係のアップデートになります。またC++Builder用のBoostライブラリもアップデートされます。
なおリリースが遅れた理由は秘密だそうです。
リリース ノート: Delphi 2009 および C++Builder 2009 Update 3、Update 4(データベース パック)、C++Builder 2009 Boost Update
List of Bug Fixes in Update 3 for Delphi 2009
List of Bug Fixes in Update 3 for C++Builder 2009
List of Bug Fixes in Update 4 (Database Pack) for Delphi and C++Builder 2009
なおリリースが遅れた理由は秘密だそうです。
リリース ノート: Delphi 2009 および C++Builder 2009 Update 3、Update 4(データベース パック)、C++Builder 2009 Boost Update
List of Bug Fixes in Update 3 for Delphi 2009
List of Bug Fixes in Update 3 for C++Builder 2009
List of Bug Fixes in Update 4 (Database Pack) for Delphi and C++Builder 2009
登録:
投稿 (Atom)