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月30日
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。
登録:
投稿 (Atom)