2010年5月10日

Fulcrum(次期Delphi/C++Builder)フィールドテスト

Fulcrum(次期Delphi/C++Builder)のフィールドテスト参加者の募集が始まっています。

Delphi "Fulcrum" フィールドテストプログラムのご案内

さらに今回は、マルチプラットフォームサポートを重要なフォーカスとしているため、複数バージョンの Windowsプラットフォームのほかに、Mac OS X、Linuxの主要なディストリビューションをテスト環境として利用できる方を募集します。
ということで、Delphi/C++Builder 2011はWindows/MacOS X/Linuxのクロスプラットフォームになるようです。

興味はあるものの、まだ手元にUnicode Readyじゃないライブラリが残っていたり、MacOS X/Linuxには縁がない、などの理由でたぶん参加しないような気がします。

2010年5月6日

エンバカデロがSODECに出展

2010/05/12-14に東京ビッグサイトで行われるSODEC(第19回ソフトウェア開発環境展)にエンバカデロが出展するとのことです。

5/12~5/14 第19回ソフトウェア開発環境展(SODEC)

ミニシアターセッション(10分間)では『AjaxフレームワークでカンタンWeb開発』、『開発環境のTCOを46%削減!ツールクラウドとは?』、『あなたのDBは本当に大丈夫? ― 誰もが知りたいその信頼度』が10分の休憩を置いてローテーションして、スペシャルセッションとして『SPECIAL! DBモデリング ― ボトムアップからのアプローチ』(12:10-12:20)と『SPECIAL! DBパフォーマンスチューニングの概要と評価』(16:00-16:10)が間に挟まるようです。SODECもずいぶん(5年くらい?)ご無沙汰してたけど、久しぶりに行こうかな…。

エンバカデロの新しいロゴ

Embarcadero Technologiesのコーポレートロゴが新しいものに変更されるそうです。

Team Japan » エンバカデロのロゴが変わります。

既にTopページのロゴも置き換わっています。まぁ前のロゴよりは新しいロゴほうがスマート(というかシンプル?)だとは思います。

2010年4月26日

[書籍]アルゴリズムクイックリファレンス

ジュンク堂書店の新宿店で

アルゴリズムクイックリファレンス (amazon)/George T. Heineman、Gary Pollice、Stanley Selkow著/黒川利明、黒川洋訳/オライリージャパン/ISBN 978-4-87311-428-6 (ISBN 4873114284)/3,360円

を購入。

2010/05/06追記: コードリポジトリはここ、ErrataはAlgorithms in a Nutshell Confirmed Errata | O'Reilly Media

2010年4月14日

[書籍]正規表現クックブック

ジュンク堂書店の新宿店で

正規表現クックブック (amazon)/Jan Goyvaerts、Steven Levithan著/長尾高弘訳/オライリージャパン/ISBN 978-4-87311-450-7 (ISBN 4873114500)/4,410円

を購入。

Microsoft Monthly Update 2010/04

今日はMicrosoftのセキュリティアップデートの日です。
MS10-019
MS10-020
MS10-021
MS10-022
MS10-023
MS10-024
MS10-025
MS10-026
MS10-027
MS10-028
MS10-029

2010年4月13日

C++0xのlambda

C++0xで導入予定のlambda(ラムダ、無名関数)についての江添さん(=hitoさん)による解説。

本の虫: lambda 完全解説
本の虫: シンタックスシュガーとしてのlambdaの解説
本の虫: named lambdaが必要な理由

lambdaとは名前のない(名前を付ける必要がない)データ(参照またはコピーでキャプチャされたもの)と関数の組み合わせ、つまりその場で定義されて呼び出される関数オブジェクトのこと…という理解でいいのかな?Delphiの無名メソッドreference toはC++0xのstd::functionの代替表現と考えればいいのでしょうかね。

RAD Studio/Delphi/C++Builder 2010 Hotfix 2

RAD Studio/Delphi/C++Builder 2010のHotfix 2がリリースされています。
  • Delphiオプションのタイプライブラリで[SafeCall呼び出しの割り当て]および[ソースの更新]オプションが表示されない。
  • CPP32.EXE 存在するドライブのボリューム名が9文字を超えている場合に、プリプロセッサで処理されたファイルに出力されるC++ソースファイルが常に小文字になる。
  • フィルタの使用時に発生するDataSnap通信の問題。
の3点を修正するものです。

RAD Studio 2010 Hotfix 2 リリースノート
27671 Hotfix 2 for RAD Studio 2010 (Delphi and C++Builder 2010)

2010年4月9日

Firebird 2.0.6 Release Candidate 1リリース

Firebird 2.0.6 Release Candidate 1がリリースされました。2.1/2.5の開発で発見された不具合がバックポートされたようです。

Firebird File Repositories (download)
Firebird 2.0.6 Release Candidate 1 Release Notes

2010年3月30日

Delphiのメモリマネージャ

Delphiのメモリマネージャには大きく分けて
  • Delphi 2.0-2005の標準メモリマネージャ
  • Delphi 2006以降の標準メモリマネージャ
  • カスタムメモリマネージャ
があります(Win16は気にしないってことで)。Delphi 2.0-2005の標準メモリマネージャはWin32初期の(あまりリソースが潤沢でなかった)環境に合わせて作られており、小さいメモリブロックの割当と解放を繰り返すと空きメモリの断片化が生じたり、パフォーマンスがあまりよくないなどの欠点が指摘されてきました。一方でDelphiのRTLではメモリマネージャの置き換え(カスタムメモリマネージャ)が当初(Delphi 2.0)から考慮されており、このメカニズムを利用してこれらの問題点を改善しようというオープンソースプロジェクトがFastMMです。Delphi 2006(C++Builder 2010)ではこの成果を取り入れて新しい(FastMMベースの)メモリマネージャが採用されました。Delphi 2006(C++Builder 2010)以降でも依然としてFastMMは使用可能で、標準の新しいメモリマネージャでは省略されている詳細レポート機能などを使用することでメモリリークの発生状況をより詳細に報告させることができます。またカスタムメモリマネージャとしてはFastMMの他に中村さんのNkMM(DHGLに付属)などもあります。NkMMの詳細については

Delphi Graphic Secrets Know-how & Libraries (amazon)/中村拓男著/ソフトバンククリエイティブ(ソフトバンク パブリッシング)/ISBM 978-4797319224 (ISBN 4-7973-1922-4)/3,129円

のp.202-204のNOTE"Delphiのメモリ管理の大きな問題点"を参照してください(Delphi Graphic Secretsは復刊ドットコムで2010/03/30現在41票となっています)。

FastMMやDelphi 2006以降の標準メモリマネージャについては以下のURLが参考になります。

Borland Developer Studio 2006の新しいメモリマネージャ - by Pierre le Riche
Delphiアプリケーションのメモリリーク検出法
某所 - 新しいメモリマネージャの仕組み
FastMMの導入

またDelphi 2.0の標準メモリマネージャについては

Inside Delphi (amazon)/Ray Lischner著/光田秀訳/アスキー/ISBN 978-4756119513 (ISBN 4-7561-1951-4)/9,240円

の"第19章 ヒープの秘密"に詳細な解説があります。

2010年3月18日

IDE Fix Pack 3.01 for Delphi 2010リリース

Andreas HausladenさんIDE Fix Pack for Delphi/C++Builder 2010がアップデートされてVersion 3.01になっています。Delphi 2010版のみの更新で、リリース時の手違いによるものとのことです。

Andy’s Blog and Tools » IDE Fix Pack 3.01 for RAD Studio 2010

2010年3月17日

IDE Fix Pack 3.0リリース

Andreas HausladenさんのIDE Fix Pack (for Delphi/C++Builder 2007/2009/2010)がアップデートされてVersion 3.0になっています。

Andy’s Blog and Tools » IDE Fix Pack 3.0 released

2010年3月16日

[書籍]Delphi 2010 Handbook

2010/03/06の発売時に注文したMarco CantuさんDelphi 2010 Handbook書籍版が今日(2010/03/16)配送されてきました。さていつ読み終わることやら。
ちなみに先日のデベロッパーキャンプで藤井さんはDelphi 2010 Handbookはたぶん翻訳されないようなことを言ってました。まぁこんなご時世なので致し方ないかとは思います。

2010年3月12日

第16回 エンバカデロ・デベロッパーキャンプ 2日目

b-mobileでもLive Meetingの専用クライアントなら辛うじて動作する模様(音声なしで画像のみですけど)。
  • [2A]Delphiテクニカルセッション「Delphi 2010 言語の新機能」
    Davidさんのセッションスタート。会場でも音声状態がよくないですね(通訳さんのものを含めて)。まぁスライドを見てればいいって話ですか。英語ですけど。

  • [2B]テクニカルセッション「ソフトウェア・アーキオロジー- もしあなたが100万行のコードの引き継ぎをすることになったらどうしますか?」
    Michaelさんのセッションでもやはり音声状態がよろしくないですね。archeology(archaeology)は考古学、という言葉です。引き継いだコードは発掘した遺物のように全く未知の状態から順番に解明していく必要がある、というような比喩でしょうか。

  • Live Meetingは接続できてもイメージが来ない…b-mobileだめか。接続し直して復帰。会場内の音声も多少は改善されたかな。

  • [2C]Delphi/C++テクニカルセッション「正しいGUIの作り方 - 重い処理でGUIが固まるのを防ぐ」
    高橋さんのセッションでスレッドの内部変数のアクセスは何らかの排他処理が必要、という部分はクリティカルセクション、System.TMonitor(ja)(Delphi 2010 2009 or later)、InterlockedExchangeAddのようなInterlocked系APIなど。クリティカルセクションについては以下の問題に注意。ってQC73347は"Cannot Fix"でClosedになってますね。It is not Delphi's issue. って話じゃないと思うんだけど。
    Team Japan » InitializeCriticalSectionEx
    早くもサンプルコードが公開されています(15:56)。
    Team Japan » サンプルコードを用意しました: 【2C】 Delphi/C++テクニカルセッション

  • 昼食時間が…。

  • [2D]スペシャルスポンサーセッション「Delphi, UC-win/Road SDKによるVRアプリケーション開発事例」
    宮本さんのセッションは3Dの絵がぬるぬる動く感じが出なかったのが残念。パッケージを使ったシステムの拡張という面で非常に興味深い。書籍も出すようです。

  • [2E]Delphiコミュニティセッション「インストーラ対決一本勝負!」
    インストーラ対決で、山本さんがInstallAwareを扱っていますが、具体的なところをもっと知りたい人はとりあえずここを読んでおくべき。ちなみに奇特なってのは山本さんの表現ですから。
    ちっぷす
    インストーラでシリアル番号の認証をしたりするのであればInstall Shield Express(113,400JPY)かInstallAware Developer(1,499USD=135,900JPY)が必要です。またInno Setupでは[Code] セクションでイベント関数 CheckSerial を記述している場合には、シリアル番号入力欄が表示される。ということで可能なようです。
    Inno Setup 日本語 デベロッパーズガイド: ウィザードページ(ダイアログ)について

  • [2F]Delphiテクニカルセッション「Delphiでキカイを制御する - アプリケーションの設計とテクニック」
    高木さんのセッションは機器不調のためディレイ中(15:11)。始まりました(15:17)。説明で使用しているソースコード(ライブラリ)は後日イマジオムさんのwebページで公開されるとのこと。TCommandQueueやSynchronizeは無名関数やジェネリクスを応用したら更にいろんなことができるかも。って早っ。25分も巻いて終わりました。

  • [2G]クロージング~抽選会
    クロージングセッションには藤井さんとJasonさんが登場。Tシャツありがとうございます。QueryPerformanceCounterとか呼んでますね、このコード。ん?TThreadPoolってどこのもんでしょう?これ(Allen Bauerさんの解説)かな?どうもマルチスレッドで素数を計算するようなプログラムのような気がする…。どっちかというと.NETなのかな?

無事終了。みなさまお疲れさまでした。会場を提供していただいたフォーラムエイトさま、コンセントがあって助かりました。

2010/03/17追記: プレゼンテーション資料がダウンロードできるようになっています。

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

2010/03/18追記: ビデオもダウンロード/リプレイできるようになっています(要登録)。またアンケートも実施されています。そういえばアンケートやらなかったな、とは思っていました。

第16回 エンバカデロ・デベロッパーキャンプ ビデオ視聴/ダウンロード
第16回 エンバカデロ・デベロッパーキャンプ アンケート

2010年3月11日

第16回 エンバカデロ・デベロッパーキャンプ 1日目

会場は20人弱、中継は同時に最大140人くらいですかね(藤井さんによれば合計で200人くらいとのこと)。b-mobileでLive Meetingに参加するのはちょっと難しいみたいです。Javaのクライアント(Web Access)は動作しないし、Office Live Meetingクライアントはダウンロードできないし。期限が切れたらauかDoCoMoにするか?(仕事の都合上僻地で使えないWiMaxは選択肢に入らない)
  • [1A]イントロダクションセッション「デベロッパーキャンプを2倍楽しむ方法・新企画のご紹介」
    堀江さん頑張れ。Delphi and C++Builder Application Showcaseに日本発のものがないということでなにやら企画中とのことです。でもうちみたいに委託だとお客さんに無断で、というわけにはいかないわけでねぇ。

  • [1B]C++チュートリアルセッション「C++Builder 5/6ユーザと初心者のためのC++Builder 2010入門」
    個人的にはPadding/Marginsプロパティの意味がわかったのが収穫(C++Builder使いじゃないもので)。

  • [1C]Delphiチュートリアルセッション「Delphi 7ユーザと初心者のためのDelphi 2010入門」
    細川さんのセッションは音声トラブルのため遅延中…(14:40)。直ったのかな?リスタート(14:44)。

  • 一応各セッションは5分前終了のような雰囲気だけど、会場にいると明示的な休憩がなくてちょっと不便かも。

  • [1D]グランドオープニングセッション「エンバカデロ製品戦略 ソフト開発者・DB管理者のための真に自由なIT環境」
    Jasonさんの"What's Next?"ではToolCloud、Commodore、Fulcrum、InterBaseに言及あり。

  • [1E]Delphiテクニカルセッション「Delphiでの文字コードのハンドリングについて 」
    富永さんのセッションで出てくるWindowsのCodePageの一覧。
    Code Page Identifiers (Windows)
    新しいIPAexフォントではJIS0213:2004制定時に字体変更された文字の旧字体を異体字として収容とのこと。
    IPAフォントのダウンロード || OSS iPedia
    IPAフォントリリースノート || OSS iPedia

  • [1F]C++テクニカルセッション「C++言語のパワーとRAD/ビジュアルアプリケーション開発の活用」
    JasonさんのC++BuilderのセッションはC++0x draft準拠機能、Boostの正規表現、新しいTDirectoryクラス、デバッガのビジュアライザ、スレッドのデバッグ機能などのデモ。


1日目は無事終了。[1B][1F]を見ていて思ったのは、C++BuilderはVSユーザのなかでもC++を使いたいんだけどC++/CLIはありえない、かといってMFCはいまさら、という人にフォーカスしてアピールするといいのでは、ということ。そのためにはC++0xなどの標準準拠度の向上やBoostのようなライブラリへの積極的な対応が重要なのではないでしょうか。

2010年3月10日

Microsoft Monthly Update 2010/03

今日はMicrosoftのセキュリティアップデートの日です。
MS10-016
MS10-017

2010年3月6日

Delphi 2010 Handbook (書籍版)出版

Marco CantuさんDelphi 2010 Handbookの書籍版がAmazon(US)から発売されました。全318ページで、定価は43.50USD(3,930JPY)ですが、現時点(2010/03/06)では34.25USD(3,095JPY)のディスカウントが設定されています。またDelphi/C++Builder/RAD Studio 2010の登録ユーザはEDNのCodeCentralからPDF形式のものをダウンロードできるようになっています。

元ねたはDelphi 2010 Handbook on Amazon, Developer Network

2010/03/17追記: Delphi/C++Builder/RAD Studio 2010の登録ユーザ向のDelphi 2010 HandbookとTMS Smooth Controls Packの無償ダウンロードについての記事がEDNに追加されています。

Delphi 2010, C++Builder 2010 および RAD Studio 2010 の登録ユーザーの方へ、 2つの無償ダウンロードの提供

2010/03/27追記: Amazon(JP)での取り扱いを確認しました。4,956円で配送料無料ですし、日本語で注文できるので、こちらのほうがいいかもしれません。

Amazon.co.jp: Delphi 2010 Handbook: A Guide to the New Features of Delphi 2010; Upgrading from Delphi 2009: Marco Cantu: 洋書

元ねたはDelphi 2010 Handbook in Europe

2010年3月1日

[書籍]プログラマのための文字コード技術入門

ジュンク堂書店の新宿店で

WEB+DB PRESS plusシリーズ プログラマのための文字コード技術入門/矢野啓介著/技術評論社/ISBN 978-4-7741-4164-0/2,709円

を見かけたので購入。

2010年2月23日

Delphi 2010 Handbook (PDF版)出版

Marco CantuさんDelphi 2010 Handbookが完成してPDF版(28.00USD/2,474JPY)が発売されました。書籍版(43.50USD/約3,970JPY)は来週くらいにCreateSpaceから、その後数週間でAmazonなどでも入手可能になるようです。
またPDF版をDelphi 2010登録ユーザ向にEmbarcaderoから無償でダウンロードできるように交渉中とのことです。

元ねたはDelphi 2010 Handbook Released

2010/03/01追記: Delphi 2010 Handbook In Printによると書籍版(print on demand)がCreateSpaceで発売になっています。

2010年2月17日

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

第16回 エンバカデロ・デベロッパーキャンプ前回予告されたとおりにウェブセミナー形式(Mircosoft Live Meeting)で2010年03月11日-12日の2日間で開催されます。今回は中継が可能になったということでDavid Intershimoneさん(エンバカデロ・テクノロジーズ チーフエヴァンジェリスト)、Jason Vokesさん(エンバカデロ・テクノロジーズ テクノロジー&インターナショナルマーケティング シニアディレクタ)、富永英明さん(有限会社エイブル)といった豪華布陣です(あっいつものみなさんが豪華じゃない、という意味ではありません)。
再放送が可能になれば時間や日付が合わない人も見られるようになっていいと思います。

2010/03/05追記: ライブ会場に行きます。仕事はいいのか…?

2010年2月10日

Microsoft Monthly Update 2010/02

今日はMicrosoftのセキュリティアップデートの日です。
MS10-003
MS10-004
MS10-005
MS10-006
MS10-007
MS10-008
MS10-009
MS10-010
MS10-011
MS10-012
MS10-013
MS10-014
MS10-015

Delphi 2010におけるREST

Marco CantuさんによるDelphi 2010を使用したRESTの扱いに関するホワイトペーパが翻訳、公開されています。また解説ビデオ(英語)も公開されています。

Rad Studio 2010 in Action JP Marco
「Delphi 2010におけるREST」ホワイトペーパーダウンロード

元ねたはMarco CantuさんDelphi REST White Paper in Japanese

2010年2月9日

Firebird 2.5 Release Candidate 2リリース

firebirdsql.orgのサーバクラッシュの影響で遅れていたFirebird 2.5のRelease Candidate 2ですが、やっとリリースされました。

Firebird File Repositories (download)
Firebird 2.5 Release Notes

2010年2月8日

一定時間ユーザ入力がないことを検知する

一定時間ユーザがPCの操作が行わなかったことを検知するにはGetLastInputInfo(ja)で最後に操作したタイミング(LASTINPUTINFO構造体のdwTime)と現在のGetTickCount(ja)の値(いずれもmsec単位)を比較します。注意点としてはGetLastInputInfoはシステム全体ではなく現在のセッションのユーザ入力のみを扱うというところでしょうか。
このサンプルではボタンをクリックしてポーリングを開始した後でユーザ入力(キーボード、マウス操作)が10秒間発生しなかったときにメッセージダイアログを表示します。またポーリング毎に前回からユーザ入力が発生していない場合はLabel1に表示しているGetTickCountの表示をclRedに変更しています。
procedure TForm1.Button1Click(Sender: TObject);
begin

  Timer1.Enabled := True;
  Button1.Enabled := False;

  FLastTick := 0;
  Timer1Timer(Sender);

end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  LII: TLastInputInfo;
begin

  FillChar(LII,SizeOf(LII),0);
  LII.cbSize := SizeOf(LII);
  if GetLastInputInfo(LII) = False then
  begin
    Exit;
  end;

  Label1.Caption := 'Last user input: ' + IntToStr(LII.dwTime);
  if FLastTick <> LII.dwTime then
  begin
    Label1.Font.Color := clWindowText;
    FLastTick := LII.dwTime;
  end
  else
  begin
    Label1.Font.Color := clRed;
  end;

  if (GetTickCount - LII.dwTime) > (10 * MSecsPerSec) then
  begin
    Timer1.Enabled := False;
    Button1.Enabled := True;
    MessageDlg('Detect for input idle (10 seconds).',
               mtInformation,[mbOk],0);
    Label1.Caption := '';
  end;

end;
別解としてSetWindowsHookEx(ja)にWH_KEYBOARD_LL(ja)/WH_MOUSE_LL(ja)を指定して低レベルフックをかけ、フック関数内でGetTickCountの値を取得、というものも考えられますが、
  1. DelphiのIDEから実行するとデバッガでブレークしたときにやたらに時間がかかる。
  2. Windows XPのVisual Style(Luna)とマウスの低レベルフックの相性が悪く(どちらかというとLunaの不具合)、フォームの最小化、最大化ボタンをクリックしたときに極端に反応が悪くなる。
という問題があるため、こちらはあまりお勧めできません。

2010/03開催のウェブセミナー

2010/03/03 18:00-19:00(JST) 3/3 - Webセミナー「DB Optimizerによるデータベース パフォーマンスチューニングの概要と評価方法」
2010/03/24 18:00-19:00(JST) 3/24 - Webセミナー「DBArtisan チュートリアル」

2010年1月28日

RAD Studio/C++Builder 2010 Hotfix 1

RAD Studio/C++Builder 2010のHotfix 1がリリースされています。QC79954のCコマンドラインプリプロセッサの不具合を修正するものです。

RAD Studio 2010 (C++Builder 2010) 用 Hotfix1
27567 Hotfix 1 for RAD Studio 2010 (C++Builder 2010)

2010/02/02追記: EDNの日本語の記事が出たのでリンクを差し替えました。

2010年1月27日

Fulcrum

Allen BauerさんThe Oracle at Delphi » Requiem for the {$STRINGCHECKS xx} directive…によれば、従来"Project X"と呼ばれていた(現在開発中のMac/Linuxクロス対応)次期RAD Studioのコードネームは"Fulcrum"だそうです(さっそく"Fulcrumだって?Mig-29かよ"というツッコミが入っていますが)。それにしてもCommodoreはいずこへ…。
ちなみに本題である$STRINGCHECKSコンパイラディレクティブ(日本語ページはない)というのは、Delphi 2009/2010でUnicodeStringがデフォルトになった一方でC++Builderでは(Stringではなく)明示的にAnsiStringが使用されてきたため、この間を取り持つ変換処理を挿入するかどうかを指定するためもの(プロジェクトオプションのコンパイラオプションでデフォルトを指定可能)。Fulcrumではこれが廃止される(無視されるようになる)、というお話みたいです。

2010年1月22日

WindowsのサービスからGUIを持つプロセスを起動

Windows Vista/7ではセッション0の分離が行われたため、単純にサービスからGUIプロセスを起動できなくなりました。そこで
  1. Win32APIのWtsGetActiveConsoleSessionID関数で現在ログオンしているユーザのセッショントークンを取得。
  2. サービス(SYSTEMアカウント上で動作している)のプロセスのユーザトークンを取得。
  3. ユーザトークンを複製。
  4. ログオンユーザのセッションを複製したトークンに設定。
  5. 複製したトークンを使用してWin32APIのCreateProcessAsUser(ja)関数でプロセスを起動。
という手順を踏み、サービスからGUIを持つプロセスを起動する方法を説明した記事。興味深い。とりあえずメモ。

From Zero To One » Blog Archive » How to start a GUI process from service, under Windows Vista/7

Microsoft OOB Update 2010/01

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

2010年1月21日

RAD Studio/Delphi/C++Builder 2010 Update 4/5適用後のTTimerの振る舞いについて

Team Japanの高橋さんの

Team Japan » TTimerコンポーネント

によれば、TTimerのSetEnabled(True)の実装がRAD Studio/Delphi/C++Builder 2010 Update 4/5適用で変更され、これに伴なってメインスレッド以外のスレッドからTTimerをスタートしようとするとうまくいかないという報告があるようです。

QC81256: Changing TTimer.Enabled from thread does not work anymore since Update 4 for Delphi 2010
QC80376: RAD Studio 2010 IdTCPServer1Execute Error (After latest updates)

2010年1月19日

RAD Studio/Delphi/C++Builder 2009 Hotfix 3

RAD Studio/Delphi/C++Builder 2009のHotfix 3がリリースされています。IntraWebでUTF-8のWebRequestの内容を解析するTUTF8ContentParserの中国語(繁字体)マルチバイト文字の処理の問題を解決するようです(高橋さんによれば従来サポートでのみ配布していたものが正式公開になったようです)。IntraWebを10.0.21に更新した上でUTF8ContentParser.pasをプロジェクトフォルダに配置してリンク対象にし、かつ実行時パッケージを使用しないようにする、という変則的なものです。

Delphi/C++Builder/RAD Studio 2009用 Hotfix 3
27563 Hotfix 3 for Delphi 2009 and C++Builder 2009
Team Japan » Delphi/C++Builder 2009向けHotfix 3 for IntraWeb 10

なおこの問題は最新のRAD Studio/Delphi/C++Builder 2010では発生しない(The problem does not occur in the latest 2010 version.)とのことです。

2010/01/20追記: IntraWeb 10.0.21についてはTeam Japanのこちらの記事も参考になります。

Team Japan » IntraWeb Ver10.0.21 がリリースされました

2010/01/25追記: EDNの日本語の記事が出たのでリンクを差し替えました。

2010年1月13日

Microsoft Monthly Update 2010/01

今日はMicrosoftのセキュリティアップデートの日です。
MS10-001

2010年1月7日

2010/01開催のウェブセミナー

2010/01/14 18:00-19:00(JST) 1/14 - Webセミナー「詳細!DataSnap」
2010/01/21 17:00-18:00(JST) 1/21 - Webセミナー「エンバカデロ・テクノロジーズによるツール・クラウド All-Access」Replay download
2010/01/27 18:00-19:00(JST) 1/27 - Webセミナー「DB Optimizerによるデータベース パフォーマンスチューニングの概要と評価方法」

時間があれば…。

2010/01/14追記: 「詳細!DataSnap」は気がついたら終わっていた。だめじゃん…。

2010/01/26追記: うぅむ、時間がない…。

2010/02/25追記: 2010/01/21分のリプレイのリンクを追加しました。

2009年12月25日

TTouchKeyboardのハッキング

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月24日

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

2009年12月18日

Windows Vista以降のOSでgsecがサービス動作のFirebirdに接続できないとき

Windows Vista以降のOSにFirebirdをインストールし、サービスとして動作させた後に、ユーザを作成するためにgsecでサーバに接続しようとするとローカルプロトコルが動作せずにエラーになることがあります。この場合は一旦Firebirdのサービス("Firebird Guardian"か、存在しなければ"Firebird Server")を停止し、firebird.confの

# IpcName = 
となっている行を

IpcName = Global\FIREBIRD
としてFirebirdを起動するとローカルプロトコルが正常に動作し、gsecで接続できるようになります(Firebird 2.x)。Firebird 1.5では

IpcName = Global\FirebirdIPI
とします。

元ねたはキムラデービーブログ | [IBDeveloper] FirebirdはWindows Vistaの上で動作しますか?設定ファイル(aliases.conf/firebird.conf)のリファレンス - Firebird WikiDoes 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を含んでいるようです。なお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

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

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

2009年12月10日

[書籍]Firebird徹底入門

ジュンク堂書店の新宿店で

Firebird徹底入門/木村明治はやしつとむ坂井恵著/翔泳社/ISBN 978-4798119632/3,990円

を買ってきました。結構分厚いですね。表紙は残念ながら焼き鳥ではありません。

2009年12月9日

Microsoft Monthly Update 2009/12

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

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については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がリリースされました。

2009年12月2日

第15回エンバカデロ・デベロッパーキャンプ終了

スピーカの皆さん、関係者の皆さん、懇親会に参加したみなさん、おつかれさまでした。David.Iさんも下手な説明ともっと下手な英語でくだらない話を聞いていただいてありがとうございました。

ずっと放置状態でしたが、ここまでで出ていない情報をいくつか。

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のユーザにとって有益なものだと思います。

2009年11月25日

Direct2Dのデバッグについて

Chris Bensenさんによると、Intelのグラィックドライバの問題で、(Delphi/C++Builder 2010の新機能である)Direct2Dをデバッグしようとするとデバッガの動作が非常に遅くなる現象が確認されています。これはDelphi/C++Builder固有の問題ではなく、Visual Studioでも発生するとのことで、NVIDIAのビデオカードを使えば問題ないようです。

Chris Bensen: Debugging Direct2D

Firebird徹底入門発売決定

はやしさんからアナウンスがあった焼き鳥本ですが、2009/12/09に翔泳社から発売されるようです。

Firebird徹底入門(amazon.co.jp)/木村明治、はやしつとむ、坂井恵著/翔泳社/ISBN 978-4798119632/3,990円

2009年11月20日

InterBase Roadmap

InterBaseのロードマップが公開されています。2009年にリリースされたInterBase SMP 2009ではセキュリティと暗号化にフォーカスしていましたが、2010/09にリリースを計画しているInterBase SMP 2011では
  • Windows x64版の追加
  • データベースクラウド
  • パスワード暗号の強化
  • Windows 7サポート
  • エンバカデロのデータベースツールによるサポート
が行われるようです。また将来的(2011年以降)には
  • ストアドプロシージャのデバッグ機能
  • ユニバーサルトリガ
  • チューニングを行うためのSQLヒント
  • より大きいインデックスキー
  • クライアント/サーバプロトコルの最適化
も計画されているようです。

InterBase Roadmap

2009/11/24追記: 日本語のInterBaseのロードマップが公開されています(ロードマップそのものは英語のままですが)。

2009年11月12日

Webセミナー Delphi/C++Builder 2010 - タッチプログラミング

11/12 - Webセミナー「Delphi/C++Builder 2010 - タッチプログラミング」
無事に終了しました。次は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追記: we are working on a fix that will cover everyoneだそうです。
Nick Hodges » Blog Archive » The Coming RAD Studio Update

2009年11月11日

Microsoft Monthly Update 2009/11

今日はMicrosoftのセキュリティアップデートの日です。
MS09-063
MS09-064
MS09-065
MS09-066
MS09-067
MS09-068

2009年11月10日

Webセミナー Delphi/C++Builder 2010 - dbExpress/DataSnap開発手法

11/10 - Webセミナー「Delphi/C++Builder 2010 - dbExpress/DataSnap開発手法」
無事終了です。参加して気が付いたことを。
  • 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=焼き鳥、ですか。

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

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年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

2009年10月22日

C++Builder 2009ファーストガイド完結

2009/07から10回に分けて公開されてきたC++Builder 2009ファーストガイドが無事に完結しました。執筆者の皆さん、おつかれさまでした。

2009年10月21日

MDIアプリケーションにおけるリボンコントロールの不具合の回避

リボンコントロールをメインフォームに使用したMDIアプリケーションでは、MDI子フォームを最大化すると子フォームのリストア/クローズボタンがメインフォーム上の不正な位置に描画されてしまう、という不具合があり、QualityCentralにも報告されています(QC67835QC70321QC73386)。この問題を修正するコンポーネントをJED Softwareさんが公開しています(近日中にCodeCentralにも投稿予定とのこと)。

jed-software.com » Blog Archive » VCL Ribbon MDI Fix

2009年10月15日

第14回エンバカデロ・デベロッパーキャンプ セッションビデオ

2009年09月02日に大阪で開催された第14回エンバカデロ・デベロッパーキャンプのミガロの吉原さんのテクニカルセッション(T6)のビデオが公開されています。

セッションビデオ「知って得する!現役ヘルプデスクが答える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はどっちもどっちな感じです。

アプリケーションの多重起動を禁止するのにglobal atomを使用するのは適切ではない

アプリケーションの多重起動を禁止するでは多重起動禁止にmutexを利用しましたが、別解としてatomの一種であるglobal atomを利用する、という方法も(あまり主流ではないにしても)出回っているようです。しかしGlobalAddAtom(ja)で追加したglobal atomは明示的にGlobalDeleteAtom(ja)で削除しなければ自動的に消滅することはありません。このためアプリケーションが何らかの理由で異常終了してしまうと再実行することができなくなってしまいます。実際にプロジェクトソースを
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

Microsoft Monthly Update 2009/10

今日はMicrosoftのセキュリティアップデートの日です。
MS09-050
MS09-051
MS09-052
MS09-053
MS09-054
MS09-055
MS09-056
MS09-057
MS09-058
MS09-059
MS09-060
MS09-061
MS09-062

2009年10月8日

Firebird 1.5.6リリース

Firebird 1.5系列の最終版となる(予定の)Firebird 1.5.6がリリースされています。

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を生成するようにして、最後にRegisterTouchWindowUnregisterTouchWindowでこのフォームで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

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 Overflow3D graphics in Delphi/Native TForm GUIs

2009年9月29日

IDE Fix Pack 2.71リリース (RAD Stdio 2009のみ)

Andreas HausladenさんIDE Fix Pack 2009がVersion 2.71にアップデートされています

Andy’s Blog and Tools » IDE Fix Pack 2.71 for RAD Studio 2009 (only)

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プロジェクトには以下のプロジェクトが存在しています。

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 JapanDelphi 2010: RTTI新機能を試す(動的なインスタンス生成)

これで持ちネタは終了です(というかこの2つを書くのを忘れていました)。

2009年9月25日

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

2009年9月17日

RAD Studio オンラインヘルプシステム

ちょっと古い話題ですが、RAD Studioのヘルプシステムがwiki上に再構築されています。

英語版(オリジナル)
日本語版
コードサンプル

Dee Ellingさんによれば、
  • wikiの内容をMicrosoft Help2形式に直接変換できる(Help Updateは2009/09と2009/11に予定されている)。
  • 内容を簡単に編集、更新できる(当社比)。
  • 登録ユーザはディスカッションタブに書き込むことができる(英語版のみ)。
  • 英語版以外のものは翻訳したものが流し込まれる。
  • wikiへのログオンは現時点ではEDNとは異なるシステムになっている(将来はシングルサインオンシステムに統合したい)。
だそうです。システムのレスポンスがあまりよくないのが難点ですね。

元ねたはDee EllingさんWiki Wiki Help2 Wiki

2009年9月15日

クラスコンストラクタとクラスデストラクタ

Delphi 2010で追加されたクラスコンストラクタクラスデストラクタですが、その名に反してクラスだけではなくレコード型に対しても定義することができます。またジェネリクスを含むクラス/レコード型に対するクラスコンストラクタ、クラスデストラクタは複数回呼び出されることがあります(Delphiのジェネリクスの実装がC#やJavaのようにライブラリによるものではなくC++のようにコンパイラによるものであることを考えれば当然なのかもしれませんが)。

Class constructors and Generics | YAPB

元ねたはNick HodgesさんRandom Thoughts on the Passing Scene #127

2009年9月13日

Delphi 2010のRTTIと属性

Robert Loveさんによる、Delphi 2010の新機能の一つであるRTTI(Run Time Type Information)の拡張と属性(Atributes)についての解説記事です(全1213回の予定)。
  1. Delphi 2010 RTTI - The basics (新しいRTTI(en)の基本的な使用方法)
  2. Using Attributes and TCustomAttribute descendants (属性として使用するTCustomAttribute(en)とその派生クラス)
  3. Exploring TRttiType and descendants in Depth (実行時に取得した型情報を扱うためのTRttiType(en)とその派生クラス)
  4. Introduction to TValue (新しいRtti.pasのTValue(en)レコード型)
  5. Exploring TRttiMember Descendants in depth (Part I) Properties and Fields (RTTI情報を扱うためのTRttiMember(en)とその派生クラスで、フィールドを扱うTRttiField(en)とプロパティを扱うTRttiProperty(en))
  6. TRttiContext.Create() & TRttiContext.Free() (TRttiContextのCreateとFreeがコンストラクタ、デストラクタ呼出ではないことについて)
  7. Exploring TRttiMember Descendants in depth (Part II) Methods (TRttiMember(en)の派生クラスのTRttiMethod(en)経由でメソッドを呼び出し(invoke))
  8. TValue in Depth (TValue(en)レコード型の詳細)
  9. INI persistence the RTTI way (RTTIの属性を利用してクラスインスタンスの情報を永続化)
  10. Xml Serialization - Basic Usage (RTTIを利用してクラスインスタンスをXMLにシリアライズ/デシリアライズ)
  11. Xml Serialization - Control via Attributes (属性でXMLシリアライズ化を制御)
  12. Attributes: Practical Example- Object to Client Dataset
  13. 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で拡張されたToolsAPIのサンプルコード

Chris HesikさんがRAD Studio 2010で拡張されたToolsAPIのサンプルコードを公開しています。

27315 ToolsAPI demo for plugging into the code editor in Delphi 2010

元ねたはChris’ CodeGear Debugger Blog » RAD Studio 2010 ToolsAPI: Plugging into the code editor space in the IDE

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)

CodeRage 4の動画公開

2009/09/08-11(PDT)に行われたオンラインカンファレンスCodeRage 4のセッションの動画が公開されています(EDNでログインする必要があります)。

CodeRage 4 Sessions & Replays

RAD Studio Roadmap

DelphiのプロダクトマネージャであるMichael RozlogさんがRAD Studioのロードマップを公開しています。

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文"なんていうのがあるんですね。

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

2009年09月02日に大阪で開催された第14回エンバカデロ・デベロッパーキャンプのセッション資料とダイジェストビデオが公開されています。

第14回 エンバカデロ・デベロッパーキャンプ - 資料ダウンロード
セッションダイジェストビデオ「ついに登場!Delphi/C++Builder 2010の概要」

2009年9月9日

Microsoft Monthly Update 2009/09

今日はMicrosoftのセキュリティアップデートの日です。
MS09-045
MS09-046
MS09-047
MS09-048
MS09-049

MS09-048のWindows 2000/XP用の更新プログラムが存在しない(対応不能)件はいかがなものかと。

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 JapanDelphi 2010: 新機能 delayed ディレクティブ

IDE/言語構成ツール
言語構成ツールでIDEのUIとライブラリの言語を切り替えることができます。詳細はAndreas HausladenさんのRAD Studio 2010 now speaks multiple languages

DataSnap/REST+JSON
DataSnap上でREST経由でJSON形式のデータをやり取りする方法を高橋さんが紹介しています。詳細はTeam JapanDelphi 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についてのまとめ。
  • TRTTIContextはレコード型で、Create/Freeで生成、破棄する必要はありません。
  • RTTI用のデータで実行ファイルのサイズは大きくなります。
  • RTTIを使用するとprivateメンバにもアクセスできます($RTTI指令でメソッド、フィールド、プロパティの別に可視範囲を指定します)。
  • 実行時情報を元にどのメソッドでも呼び出すことができます。
  • TValueはバリアント型のように使用できます。
  • 詳細はWings of WindさんCommunity pulse: CodeRage 4, RTTI Reloaded

    コンパイラ/クラスコンストラクタ/クラスデストラクタ
    従来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

    2009年9月4日

    Delphi 2010 Handbook

    Marco Cantuさんによれば、Delphi 2010 Handbookを執筆中とのことです。発売まではまだしばらくかかるようですが、ebookのサブスクリプションという形で書きあがった分からリリースしていくようなことを考えているとのことです。でも英語をモニタ上で読むのはつらいので紙媒体のほうがいいかな…。

    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を設定してしまう、という方法が考えられます。
    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…

    Windowsユーザエクスペリエンスガイドライン

    MSDNライブラリでVisual Style(Windows Vista/7)に対応した"Windows ユーザー エクスペリエンス ガイドライン"(UXガイド)が公開されています。PDF版もあります(775ページもありますね)。

    Windows ユーザー エクスペリエンス ガイドライン

    元ねたはCrystal Dew R&D LabsさんのWindows ユーザー エクスペリエンス ガイドライン