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