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。
2009年7月11日
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
2009年5月27日
Indy 10のアップデート
最近のDelphi/C++Builder/RAD Studioではネットワーク関係のライブラリとしてIndyの使用が推奨されており、実際にDelphi 2007には10.1.5が、Delphi 2009には10.2.3がそれぞれ標準で添付されています。しかし最新のnightlyは10.5.5(2009/05/27現在)となっており、DEKOさんの指摘のとおり不具合を修正するには最新にアップデートすることが必要です。ということでメモ。
Delphi 2009 に最新版の Indy10 をインストールする
Delphi 5~2007 に最新版の Indy10 をインストールする
Unicode 版 Delphi (2009 以降) に最新版の Indy10 をインストールする [Delphi Programming]
ANSI 版 Delphi (5~2007) に最新版の Indy10 をインストールする [Delphi Programming]
ところでindy10.zipは10.2.3、IndyTiburon.zipは10.5.5ですが、名前に反してIndyTiburon.zipはDelphi 2007およびそれ以前にも導入可能のような気がします。あとでDelphi 2007で更新を試してみます。
Unicode 版 Delphi (2009 以降) に最新版の Indy10 をインストールする [Delphi Programming]
ANSI 版 Delphi (5~2007) に最新版の Indy10 をインストールする [Delphi Programming]
ところでindy10.zipは10.2.3、IndyTiburon.zipは10.5.5ですが、名前に反してIndyTiburon.zipはDelphi 2007およびそれ以前にも導入可能のような気がします。あとでDelphi 2007で更新を試してみます。
2009年5月26日
C++0xの右辺値参照とムーブセマンティクス
C++0xの新機能の一つである右辺値参照とムーブセマンティクスについてのわかりやすい説明のわかりやすい翻訳。C++プログラマではありませんが、非常に興味深いテーマです。
Visual C++ Team Blog : Rvalue References: C++0x Features in VC10, Part 2
和訳:Rvalue References: C++0x Features in VC10, Part 2 - ntnekの日記
Visual C++ Team Blog : Rvalue References: C++0x Features in VC10, Part 2
和訳:Rvalue References: C++0x Features in VC10, Part 2 - ntnekの日記
InitializeCriticalSectionEx
Team Japanの高橋さんの記事によると、Windows Vista(NT 6.0)以降ではInitializeCriticalSectionによる初期化ではリソースリークが発生するとのこと。
Team Japan » InitializeCriticalSectionEx
まぁそもそもマルチCPUではInitializeCriticalSectionAndSpinCountでスピンカウントの指定をしないとパフォーマンスに影響が出るらしいし、新しいOSではInitializeCriticalSectionExを呼び出しなさない、というのは判るのだが、もう少し互換性のある拡張はできないのかと。スピンカウントもどのくらいの値が適当なのかよくわからないし。
ちょうどいま流し読み中のWindowsデバッグの極意(Mario Hewardt、Daniel Pravat著/長尾高弘訳/アスキー・メディアワークス/ISBN978-4-04-867608-3)の"第10章 同期"でクリティカルセクションに触れています。以下引っ掛かる点を引用。
追記: 高橋さん、フォローありがとうございます。
Team Japan » InitializeCriticalSectionEx
まぁそもそもマルチCPUではInitializeCriticalSectionAndSpinCountでスピンカウントの指定をしないとパフォーマンスに影響が出るらしいし、新しいOSではInitializeCriticalSectionExを呼び出しなさない、というのは判るのだが、もう少し互換性のある拡張はできないのかと。スピンカウントもどのくらいの値が適当なのかよくわからないし。
ちょうどいま流し読み中のWindowsデバッグの極意(Mario Hewardt、Daniel Pravat著/長尾高弘訳/アスキー・メディアワークス/ISBN978-4-04-867608-3)の"第10章 同期"でクリティカルセクションに触れています。以下引っ掛かる点を引用。
- RTL_CRITICAL_SECTION.DebugInfo
- クリティカルセクションに関する追加情報を格納する構造体で、これを格納するメモリはシステムにより確保される。(p.502)
- RTL_CRITICAL_SECTION_DEBUG
- RTL_CRITICAL_SECTION_DEBUGは主としてデバッグ用の情報を格納しているように見えるが、初期バージョンのWindowsでは、これがなければクリティカルセクションが使える状態だと見なされなかった。実際、オペレーティングシステムが初期化中にこの構造体のメモリを確保できなければ、APIは失敗していたのである。Windows Server 2003 SP1以降、このデバッグ情報がなくても、クリティカルセクションは機能するようになった。(p.504)
- EnterCriticalSection
- Windows 2000のEnterCriticalSection APIについては注意が必要だ。メモリの残量が少なくなったときにこれを呼び出すと、メモリ不足例外が投げられることがあるのだ。クリティカルセクションはイベントを使っており、EnterCriticalSection APIではこのイベントが初期化される。システムのメモリの残量が少なくなっていると、そのために例外が起きる。Windows 2000のもとでクリティカルセクションを信頼できる形で実行したければ、クリティカルセクションの初期化時にイベントを確保し、その後は例外を投げないInitializeCriticalSectionAndSpinCount APIを使うようにするとよい。(p.505)
追記: 高橋さん、フォローありがとうございます。
第13回エンバカデロ・デベロッパーキャンプ
第13回エンバカデロ・デベロッパーキャンプは2009年07月02日にOpenSource World 2009の一部として開催されます。OpenSource World 2009そのものは2009年07月01日~07月02日の開催です。今回はPhilip Rathleさん(All-Accessのプロダクトマネージャ)やmatzさんがいらっしゃるようです。
2009年5月23日
Delphi Live! 2009/スピーカインタビュー
Anders OhlssonさんがYouTubeにDelphi Live! 2009のスピーカのインタビューを大量アップロードしています。
The Hacker’s Corner » Blog Archive » Speaker video interviews from Delphi Live! 2009
Video interviews from Delphi Live! 2009
2009/05/26追記: EDNの紹介記事が翻訳されています。
Delphi Live! 2009からのビデオインタビュー(英語)
The Hacker’s Corner » Blog Archive » Speaker video interviews from Delphi Live! 2009
Video interviews from Delphi Live! 2009
2009/05/26追記: EDNの紹介記事が翻訳されています。
Delphi Live! 2009からのビデオインタビュー(英語)
2009年5月22日
アプリケーション開発者向けMicrosoft Windows 7対応アプリケーションの互換性
MSDNのWindows 7 互換性情報ページで"アプリケーション開発者向けMicrosoft Windows 7対応アプリケーションの互換性"というドキュメントがダウンロードできるようになっています。このドキュメントではWindows Vista/Windows 7向のアプリケーションで注意しなければならない点について解説されています(Vistaのときのお粗末な文書に比べると結構詳細でわかりやすくなっています)。
Delphi Live! 2009/プロダクトアドレス
Delphi Live! 2009のプロダクトアドレスの画面キャプチャ+音声が公開されています。
Delphi 2009! Live Recap
26915 Delphi Live! 2009 Recap and Product Address
英語で70分間はかなりきついですが、画面(PowerPoint)を見ているだけでも雰囲気はつかめます。
Delphi 2009! Live Recap
26915 Delphi Live! 2009 Recap and Product Address
英語で70分間はかなりきついですが、画面(PowerPoint)を見ているだけでも雰囲気はつかめます。
2009年5月21日
Delphi Live! 2009の動画
Delphi.orgに"What is Cooking in the Delphi Labs"セッションの動画が順次アップロードされていくようです。
Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 1 - The Podcast at Delphi.org
Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 2 - The Podcast at Delphi.org
Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 3 - The Podcast at Delphi.org
Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 4 - The Podcast at Delphi.org
Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 5 - The Podcast at Delphi.org
Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 6 - The Podcast at Delphi.org
Delphi Live! 2009 - What’s Cooking in the Delphi Labs - Part 7 - The Podcast at Delphi.org
Fun Side of Delphi with Marco Cantu at Delphi Live 2009! - The Podcast at Delphi.org
またYouTubeにもアップロードされています。
YouTube - Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 1
YouTube - Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 4
YouTube - Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 5
YouTube - Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 6
YouTube - Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 7
Marco Cantuさんによれば、この"What is Cooking in the Delphi Labs"セッションではNick HodgesさんのIDEインサイト機能やコードフォーマッタ、Allen BauerさんのDirect2DサポートやRTTI拡張によるリフレクション機能、Carlさん(誰?)のDelphi for MacによるMacOS上のコンソールアプリケーション、Anders OhlssonさんのDelphiコードのANSI->Unicode変換ツール、David IさんのVS2010上のDelphi Prismでの.NET 4.0やパラレルエクステンションのサポートなどがデモされたようです。
(更新中)
Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 1 - The Podcast at Delphi.org
Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 2 - The Podcast at Delphi.org
Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 3 - The Podcast at Delphi.org
Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 4 - The Podcast at Delphi.org
Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 5 - The Podcast at Delphi.org
Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 6 - The Podcast at Delphi.org
Delphi Live! 2009 - What’s Cooking in the Delphi Labs - Part 7 - The Podcast at Delphi.org
Fun Side of Delphi with Marco Cantu at Delphi Live 2009! - The Podcast at Delphi.org
またYouTubeにもアップロードされています。
YouTube - Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 1
YouTube - Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 4
YouTube - Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 5
YouTube - Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 6
YouTube - Delphi Live! 2009 - What is Cooking in the Delphi Labs - Part 7
Marco Cantuさんによれば、この"What is Cooking in the Delphi Labs"セッションではNick HodgesさんのIDEインサイト機能やコードフォーマッタ、Allen BauerさんのDirect2DサポートやRTTI拡張によるリフレクション機能、Carlさん(誰?)のDelphi for MacによるMacOS上のコンソールアプリケーション、Anders OhlssonさんのDelphiコードのANSI->Unicode変換ツール、David IさんのVS2010上のDelphi Prismでの.NET 4.0やパラレルエクステンションのサポートなどがデモされたようです。
(更新中)
2009年5月20日
Blaise Pascal Special Issue
BLAISE PASCAL MAGAZINEの(通常はダウンロード版が4号で30.00EURですが)特別版が無償で読めるようになっています。英語ですけど。
でさらっと目次を見ていたのですが、Borlandの創業者であるPhilipe Kahnさんのインタビューが掲載されています。懐かしいですね。
元ねたはRave, Delphi and more: BlaisePascal magazine - special edition -。
2009/05/21追記: EDNでも紹介されています。
Free special issue of Blaise Pascal Magazine and Free One-Year Subscription
26909 Blaise Pascal Magazine Special Issue & Free 1-year Subscription
でさらっと目次を見ていたのですが、Borlandの創業者であるPhilipe Kahnさんのインタビューが掲載されています。懐かしいですね。
元ねたはRave, Delphi and more: BlaisePascal magazine - special edition -。
2009/05/21追記: EDNでも紹介されています。
Free special issue of Blaise Pascal Magazine and Free One-Year Subscription
26909 Blaise Pascal Magazine Special Issue & Free 1-year Subscription
2009年5月19日
Delphi/C++Builder/RAD Studioのコマンドラインオプション
Delphi/C++Builder/RAD Studioで使用できるコマンドラインオプションをまとめてみました。
-rオプションで指定した文字列はレジストリ"HKEY_CURRENT_USER\Software\Borland\BDS\6.0"(Delphi 2009の場合)の"BDS"部分の置き換えに使用されます。
-pオプションで指定するのは、実際にはレジストリ"HKEY_CURRENT_USER\Software\Borland\BDS\6.0\Known IDE Packages"(Delphi 2009の場合)の下にあるキーの名称で、指定したキーの下にあるIDEパッケージが起動時に読み込まれます。ここに新たにキー/エントリを追加して-pオプションで指定することで、カスタマイズしたプロファイルでIDEを起動することができます(ただしコンポーネントパッケージは対象にならない)。詳細は下記のMark Edingtonさんの記事を参照。
Delphi/C++Builder/RAD Studio XE以降については以下のリンクに詳細な記述があります。
2016/04/20追記: Delphi/C++Builder/RAD Studio XE以降のオンラインヘルプのコマンドラインオプションのページへのリンクを追加。
2017/03/23追記: Delphi/C++Builder 10.2 Tokyoの情報を追加。
- -r
- カスタムレジストリ設定を使用 (-rXYZ : XYZレジストリを使用)
- -idecaption
- IDEのキャプションを指定 (-idecaption="NEW CAPTION" : キャプションを"NEW CAPTION"に変更)
- -p
- 使用パーソナリティの指定 (-pDelphi : Delphi, -pCBuilder : C++Builder, -pDelphiDotNet : Delphi.NET, -pCSharp : C#Builder)
- -np
- Welcome pageの非表示 (Delphi 7およびそれ以前ではデフォルトプロジェクトの非作成)
- -ns
- スプラッシュの非表示
-rオプションで指定した文字列はレジストリ"HKEY_CURRENT_USER\Software\Borland\BDS\6.0"(Delphi 2009の場合)の"BDS"部分の置き換えに使用されます。
-pオプションで指定するのは、実際にはレジストリ"HKEY_CURRENT_USER\Software\Borland\BDS\6.0\Known IDE Packages"(Delphi 2009の場合)の下にあるキーの名称で、指定したキーの下にあるIDEパッケージが起動時に読み込まれます。ここに新たにキー/エントリを追加して-pオプションで指定することで、カスタマイズしたプロファイルでIDEを起動することができます(ただしコンポーネントパッケージは対象にならない)。詳細は下記のMark Edingtonさんの記事を参照。
Delphi/C++Builder/RAD Studio XE以降については以下のリンクに詳細な記述があります。
- Delphi/C++Builder/RAD Studio XE
- Delphi/C++Builder/RAD Studio XE2
- Delphi/C++Builder/RAD Studio XE3
- Delphi/C++Builder/RAD Studio XE4
- Delphi/C++Builder/RAD Studio XE5
- Delphi/C++Builder/RAD Studio XE6
- Delphi/C++Builder/RAD Studio XE7
- Delphi/C++Builder/RAD Studio XE8
- Delphi/C++Builder/RAD Studio 10 Seattle
- Delphi/C++Builder/RAD Studio 10.1 Berlin
- Delphi/C++Builder/RAD Studio 10.2 Tokyo
2016/04/20追記: Delphi/C++Builder/RAD Studio XE以降のオンラインヘルプのコマンドラインオプションのページへのリンクを追加。
2017/03/23追記: Delphi/C++Builder 10.2 Tokyoの情報を追加。
2009年5月16日
Delphi Roadmap - 遠い将来には
- クラウドコンピューティング
- Web 3.0
- RIA(Rich Internet Application)を超えて
- 組み込みデバイス
- ソフトウェアアプライアンス
- セキュリティ
- コンプライアンス
- 関数型プログラミング、宣言型プログラミング、自然言語入力、もっと多くのプラットフォーム…
元ねたはRob’s Technology Corner: DelphiLive - Where is Delphi Going?、Delphi Tweet Day (delphitweetday) on Twitterなど。
Delphi Roadmap - "Project Commodore"
- 64bitネイティブ
- コンパイラ、RTL(Run Time Library)、VCL(Visual Component Library)の64bitネイティブフルサポート
- マルチコア、マルチスレッドアプリケーション
元ねたはRob’s Technology Corner: DelphiLive - Where is Delphi Going?、Delphi Tweet Day (delphitweetday) on Twitterなど。
Delphi Roadmap - "Project Chromium"
- とにかく品質
- Pascalコードフォーマッタ
- OTA(Open Tools API)のドキュメント化
- コントロールのあらゆるプロパティにバインド可能な新しいデータバインディングモデル
- データベースツールの更なる統合
元ねたはRob’s Technology Corner: DelphiLive - Where is Delphi Going?、Delphi Tweet Day (delphitweetday) on Twitterなど。
Delphi Roadmap - "Project X"
- Windows、Mac OS、Linuxのクロスプラットフォーム
- クロスプラットフォームコンポーネントライブラリ
- 全てのプラットフォームでDataSnapを使用可能に
- Delphi Live! 2009の2日目(2009/05/15)にデモ予定
元ねたはRob’s Technology Corner: DelphiLive - Where is Delphi Going?、Delphi Tweet Day (delphitweetday) on Twitterなど。
2009/05/21追記: Allen Bauerさんによれば、"Project X"に興味がある人はEli Bolingさんのblogをチェックすべしとのこと。
Delphi Roadmap - "Project Weaver"
主要な目標はユーザエクスペリエンスの向上、データベース接続の拡張、ドキュメントの充実。
元ねたはRob’s Technology Corner: DelphiLive - Where is Delphi Going?、Delphi Tweet Day (delphitweetday) on Twitterなど。
2009/05/21追記: タッチインタフェースのデモの動画がThe best of DelphiLive was [Video]: « Daniel Magin’s Weblogにあります。最後の動画ではDelphi付属のfishfactデモにGestureManagerコンポーネントでジェスチャーを追加しています。
- IDEのユーザビリティ
- チーム生産性
- タッチ
- "Delphi Natural Input"
- GestureManagerコンポーネント
- ジェスチャーはActionと結びつけるか、OnGestureイベントでハンドルする
- IDEインサイト
- FastAction
- キーボードであらゆる機能にすばやくアクセス
- DataSnapの改良
- Firebirdのサポート
- .NETにおけるAOP(Aspect Oriented Programming)
- SCM(ソフトウェア構成管理)サポート
- 拡張RTTIサポート
- Attributeサポート
- シームレスな.NET-Native間通信
- Windows 7 APIとDirect 2D
- SOAP 1.2クライアントのフルサポート
元ねたはRob’s Technology Corner: DelphiLive - Where is Delphi Going?、Delphi Tweet Day (delphitweetday) on Twitterなど。
2009/05/21追記: タッチインタフェースのデモの動画がThe best of DelphiLive was [Video]: « Daniel Magin’s Weblogにあります。最後の動画ではDelphi付属のfishfactデモにGestureManagerコンポーネントでジェスチャーを追加しています。
2009年5月15日
Delphi Live! 2009
海の向こう、カリフォルニア州サンホセではDelphi Live! 2009が始まっています。DelphiプロダクトマネージャのMike RozlogさんがDelphiのロードマップについて発表を行ったようです。
詳しくは以降のエントリで。
元ねたはRob’s Technology Corner: DelphiLive - Where is Delphi Going?など。
- Project Weaver
- 次期版Delphi/C++Builder
- Project X
- クロス開発環境
- Project Chromium
- 周辺ツールの充実
- Project Commodore
- 64bit対応、マルチプロセッサ、マルチスレッドサポート
詳しくは以降のエントリで。
元ねたはRob’s Technology Corner: DelphiLive - Where is Delphi Going?など。
2009年5月13日
2009年5月7日
2009年5月6日
Micro FocusがBorlandを買収
Marco CantuさんのMicroFocus buys Borlandによれば、Micro Focus(日本法人)という会社がBorlandの買収提案を発表しました(Borlandのプレスリリースでは正式に契約したようです)。またMicro Focusは同時にCompuwareの"Application Testing / Automated Software Quality (ASQ)"ビジネスの買収でも合意しています。Micro Focusは英国を本拠としていて、Open COBOLが主な製品分野の会社のようです。そういう意味で旧Borlandのエンタープライズ向(ALM)ビジネスとの相性は意外によいのかもしれません(CodeGearとEmbarcaderoのように)。ただこれでBorlandという会社がなくなってしまうわけで、ちょっと寂しい気もします。
2009/05/07追記: 日本語の記事も出ているようです。
Borland,約7500万ドルでMicro Focusに身売り:ITpro(要登録)
ブランド名が残るかは不明:BorlandをMicro Focusが約7500万ドルで買収 - ITmedia エンタープライズ
ボーランドをマイクロフォーカスが買収へ--買収価格は1株1ドル - 企業情報 - ZDNet Japan
2009/05/07追記: 日本語の記事も出ているようです。
Borland,約7500万ドルでMicro Focusに身売り:ITpro(要登録)
ブランド名が残るかは不明:BorlandをMicro Focusが約7500万ドルで買収 - ITmedia エンタープライズ
ボーランドをマイクロフォーカスが買収へ--買収価格は1株1ドル - 企業情報 - ZDNet Japan
2009年5月5日
Project CrossTalk
IntraWebの開発元であるAtozed Softwareが、Delphi(native)から.NETのコードを簡単に呼び出すことができるようにするProject CrossTalkをアナウンスしています。面白そうなのでとりあえずメモ。
Atozed Software - Project CrossTalk
Q&AによればProject CrossTalkは主に(たとえばIntraWebで使用するDelphiコードの)バックエンドで.NETのコードやライブラリを呼び出せるようにするのが目的で、.NETのビジュアル要素を扱いたいならRemObjectsのHydraのほうが適している、とのこと。
元ねたはDrs.Bob's Delphi Notes (weblog)。
Atozed Software - Project CrossTalk
Q&AによればProject CrossTalkは主に(たとえばIntraWebで使用するDelphiコードの)バックエンドで.NETのコードやライブラリを呼び出せるようにするのが目的で、.NETのビジュアル要素を扱いたいならRemObjectsのHydraのほうが適している、とのこと。
元ねたはDrs.Bob's Delphi Notes (weblog)。
2009年4月28日
[書籍]Windowsデバッグの極意
Advanced Windows Debuggingの日本語訳である"Windowsデバッグの極意"が発売になっていたので購入。
Windowsデバッグの極意/Mario Hewardt、Daniel Pravat著/長尾高弘訳/アスキー・メディアワークス/ISBN 978-4-04-867608-3/8,925円
Windowsプログラミングの極意(The Old New Thing)もそうだけど、最近のAMW(ASCII)のタイトルのネーミングセンスは微妙ですね(あとお値段も)。いい本を出してるんだけどな。
Windowsデバッグの極意/Mario Hewardt、Daniel Pravat著/長尾高弘訳/アスキー・メディアワークス/ISBN 978-4-04-867608-3/8,925円
Windowsプログラミングの極意(The Old New Thing)もそうだけど、最近のAMW(ASCII)のタイトルのネーミングセンスは微妙ですね(あとお値段も)。いい本を出してるんだけどな。
Getting Started with Delphi and C++Builder 2009
Alex Ciobanuさん、Lucian Benteaさん、Denisa Ilascuさん、Andrei Susneaさんによる"Getting Started with Delphi and C++Builder 2009"がdocs.embarcadero.comからダウンロードできるようになっています。また印刷したものをlulu.comから19.90USDで取り寄せることもできます(送料を考えたらあまり現実的ではありませんが)。
元ねたはDee Elling » Getting Started with Delphi and C++Builder 2009あたり。
元ねたはDee Elling » Getting Started with Delphi and C++Builder 2009あたり。
2009年4月20日
Michael RozlogさんがDelphiのプロダクトマネージャに
Delphi.orgのこの記事によれば、RAD studioチームのR&DマネージャとなったNick Hodgesさんの後任のDelphiのプロダクトマネージャはMichael Rozlogさんとのことです。
ただMichaelさんは2009/02にJBuilderと3rd Railのプロダクトマネージャになったばかりでした。ここのところJBuilderが放置気味であることを考えると、なにやら微妙です。
またTeamBのCraig Stuntzさんによれば、FTerにはおなじみRAD studioのQAマネージャだったChris PattinsonさんがEmbarcadero全体のDirector of Quality Assurance(QAディレクタ)になったということで、人事異動の季節なのでしょうか(EmbarcaderoとCodeGearの融合、という意味で)。
2009/04/21追記: Nick Hodgesさんのところにもでていますね。
Nick Hodges » Blog Archive » Random Thoughts on the Passing Scene #107
2009/04/22再追記: Chris Pattinsonさんのところにもでています。Craig Stuntzさんのツッコミ("Time to update the subtitle of your blog, Chris!")に応えてblogのサブタイトルが"Director of Quality Assurance, Embarcadero"になっています。
Chris Pattinson » Blog Archive » New Role - Embarcadero Director of Quality Assurance
ただMichaelさんは2009/02にJBuilderと3rd Railのプロダクトマネージャになったばかりでした。ここのところJBuilderが放置気味であることを考えると、なにやら微妙です。
またTeamBのCraig Stuntzさんによれば、FTerにはおなじみRAD studioのQAマネージャだったChris PattinsonさんがEmbarcadero全体のDirector of Quality Assurance(QAディレクタ)になったということで、人事異動の季節なのでしょうか(EmbarcaderoとCodeGearの融合、という意味で)。
2009/04/21追記: Nick Hodgesさんのところにもでていますね。
Nick Hodges » Blog Archive » Random Thoughts on the Passing Scene #107
2009/04/22再追記: Chris Pattinsonさんのところにもでています。Craig Stuntzさんのツッコミ("Time to update the subtitle of your blog, Chris!")に応えてblogのサブタイトルが"Director of Quality Assurance, Embarcadero"になっています。
Chris Pattinson » Blog Archive » New Role - Embarcadero Director of Quality Assurance
InterBase/Firebird ODS versions
InterBaseおよびFirebirdにおけるODS(On-Disk Structure)バージョンをまとめてみました。
元ねたはキムラデービーブログ | ODSまとめとInterBaseの追記、ORCA愉快日記(2007-08-02)、InterBase database structureあたり。
2010/11/01追記: ODS14とODS 15の記述を追加しました(John KasterさんによればODS 14は
2014/12/02追記: Firebird 3.0(ODS 12)の記述を追加しました。
2014/12/04追記: InterBase XE3(ODS 15)/XE7(ODS 16)の記述を追加しました。
2017/03/10追記: InterBase 2017(ODS 17)の記述を追加しました。
2018/10/05追記: Firebird 3.0.4/POSIX(ODS 12.2)の記述を追加しました。
2019/11/18追記: InterBase 2020(ODS 18)の記述を追加しました。
2021/06/01追記: Firebird 4.0(ODS 13)の記述を追加しました。
2026/03/22追記: Firebird 5.0(ODS 13.1)およびInterBase 15(ODS 19)の記述を追加しました。
- ODS 8.0
- InterBase 4.0
- InterBase 4.1
- ODS 8.2
- InterBase 4.2
- ODS 9.0
- InterBase 4.5
- InterBase 5.0
- InterBase 5.1
- ODS 9.1
- InterBase 5.5
- InterBase 5.6
- ODS 10.0
- InterBase 6.0
- ODS 10.1
- InterBase 6.5
- ODS 11.0
- InterBase 7.0
- ODS 11.1
- InterBase 7.1
- ODS 11.2
- InterBase 7.5
- ODS 12
- InterBase 2007 (version 8)
- ODS 13
- InterBase 2009 (version 9)
- ODS 14
- InterBase 2009 (version 9)(Special)
- ODS 15
- InterBase XE (version 10) / XE3 (version 11)
- ODS 16
- InterBase XE7 (version 12)
- ODS 17
- InterBase 2017 (version 13)
- ODS 18
- InterBase 2020 (version 14)
- ODS 19
- InterBase 15
- ODS 10.0
- Firebird 1.0
- ODS 10.1
- Firebird 1.5
- ODS 11.0
- Firebird 2.0
- ODS 11.1
- Firebird 2.1
- ODS 11.2
- Firebird 2.5
- ODS 12.0
- Firebird 3.0
- ODS 12.2
- Firebird 3.0.4(POSIX)
- ODS 13
- Firebird 4.0
- ODS 13.1
- Firebird 5.0
InterBase 6とFirebird 1.0のODS 10.0には互換性があります。元ねたはキムラデービーブログ | ODSまとめとInterBaseの追記、ORCA愉快日記(2007-08-02)、InterBase database structureあたり。
2010/11/01追記: ODS14とODS 15の記述を追加しました(John KasterさんによればODS 14は
InterBase 2009 had a special ODS 14 to resolve some index corruption issues; so we skipped creating ODS 14 with InterBase XE. InterBase XE will still service any ODS 13/14/15 databases, but only will create ODS 15 from a new CREATE call or restore.とのことです)。元ねたはBehind the Screen » Upgrading InterBase 2009 to InterBase XE 64-bit。
2014/12/02追記: Firebird 3.0(ODS 12)の記述を追加しました。
2014/12/04追記: InterBase XE3(ODS 15)/XE7(ODS 16)の記述を追加しました。
2017/03/10追記: InterBase 2017(ODS 17)の記述を追加しました。
2018/10/05追記: Firebird 3.0.4/POSIX(ODS 12.2)の記述を追加しました。
2019/11/18追記: InterBase 2020(ODS 18)の記述を追加しました。
2021/06/01追記: Firebird 4.0(ODS 13)の記述を追加しました。
2026/03/22追記: Firebird 5.0(ODS 13.1)およびInterBase 15(ODS 19)の記述を追加しました。
2009年4月17日
"POWERED BY" "BUILT WITH"ロゴ更新
"POWERED BY"と"BUILT WITH"のロゴがCodeGear版からEmbarcadero版に更新されています。
エンバカデロ 「built with」「powered by」ロゴ
Embarcadero "built with" and "powered by" logos
ID: 25360, Embarcadero Powered By and Built With logos
2009/04/18追記: 日本語の記事のリンクを追加しました。
エンバカデロ 「built with」「powered by」ロゴ
Embarcadero "built with" and "powered by" logos
ID: 25360, Embarcadero Powered By and Built With logos
2009/04/18追記: 日本語の記事のリンクを追加しました。
2009年4月16日
Nick HodgesさんがRAD studioチームのR&Dマネージャに
DelphiのプロダクトマネージャだったNick Hodgesさんが新しくRAD studioのR&Dマネージャになられたそうです。
Nick Hodges » Blog Archive » A New Role for Nick
Nick Hodges » Blog Archive » A New Role for Nick
2009年4月15日
2009年4月13日
Weaverフィールドテスターミーティング終了
参加者の皆さん、エンバカデロテクノロジーズの皆さん、もちろんDavid Iさんもおつかれさまでした。
内容についてはもちろんNDAがありますんであまり書けませんが、んん~もうちょっと純粋にお話をする時間を長くとってもいいかな、消化不良な部分があるかな、という気もします。
Weaverはそのまま織り手でいいとのこと。色々なテクノロジーをひとつの製品に織り込む、みたいな意味合いでつけたようです。
2009/04/15追記: 藤井さんのブログエントリとZDnet JapanのDavid Iさんのインタビュー記事が出てます。
2009/04/17再追記: David Iさんのブログエントリも出ています。3週間のツアーですか。おつかれさまです。
2009/04/22再再追記: ITProのDavid Iさんのインタビュー記事も掲載されています(ITProは要登録)。
内容についてはもちろんNDAがありますんであまり書けませんが、んん~もうちょっと純粋にお話をする時間を長くとってもいいかな、消化不良な部分があるかな、という気もします。
Weaverはそのまま織り手でいいとのこと。色々なテクノロジーをひとつの製品に織り込む、みたいな意味合いでつけたようです。
2009/04/15追記: 藤井さんのブログエントリとZDnet JapanのDavid Iさんのインタビュー記事が出てます。
2009/04/17再追記: David Iさんのブログエントリも出ています。3週間のツアーですか。おつかれさまです。
2009/04/22再再追記: ITProのDavid Iさんのインタビュー記事も掲載されています(ITProは要登録)。
2009年4月11日
Rave Reports 7.6.2 BEリリース
RADStudio/Delphi/C++Builder 2009に同梱されているRave Reports BEが7.6.2にアップデートされています(英語情報)。
ID: 26833, Rave Reports 7.6.2 BE for Delphi 2009 and C++Builder 2009
2009/04/15追記: 日本語の情報が出たので一部更新しました。高橋さん、情報ありがとうございます。
ID: 26833, Rave Reports 7.6.2 BE for Delphi 2009 and C++Builder 2009
2009/04/15追記: 日本語の情報が出たので一部更新しました。高橋さん、情報ありがとうございます。
2009年4月10日
CodeGear不通
藤井さんによれば(日本時間の)昨夜からエンバカデロのスコッツバレーオフィスとの通信が不通になっているようです。原因は現地のAT&Tの地域網の切断らしいとのこと。既に15時間ほど経過していますが復旧していませんね。
2009/04/10追記: 11:56現在で復旧しているようです。
2009/04/10追記: 11:56現在で復旧しているようです。
2009年4月7日
Delphi Weaverフィールドテスターミーティング
前回のデベロッパーキャンプで話が出ていたWeaverのフィールドテスターミーティングの案内がきました。とりあえずミーティングに参加する程度には認めていただけたらしい。よかったよかった。おそらくインターリムリリースという立場になるであろう今回のWeaverですが、その先のCommodoreを含め、なにかよい提案ができるといいなぁとは思っています。
2009年4月1日
Delphi 2009/C++Builder 2009 Help Update 2 (英語のみ)
Delphi 2009/C++Builder 2009のHelp Update 2がリリースされています。が、しかし、英語版のみで、英語以外のドイツ語/フランス語/日本語は今回はリリースされず、Help Update 3までスキップされる("Only the English language version is available in Help Update 2. The translated versions of the help (German, French, and Japanese) will become available in Help Update 3.")とのことです。InterBase SMP 2009 Hotfix Update 2が現時点で英語版のみの提供になっている件といい、いかがなものかと。
Readme: English Help Update 2 for Delphi and C++Builder 2009
2009/04/15追記: CHM/PDF/HTML版がdocs.embarcadero.comにアップロードされました。
Dee Elling » RAD Studio 2009 Help Update 2 CHM/PDF/HTML files posted
Readme: English Help Update 2 for Delphi and C++Builder 2009
2009/04/15追記: CHM/PDF/HTML版がdocs.embarcadero.comにアップロードされました。
Dee Elling » RAD Studio 2009 Help Update 2 CHM/PDF/HTML files posted
NTPサーバの存在しないワークグループでPCの時刻を同期する
いまどきはPCの時刻同期に(S)NTPを使うのが普通ですが、NTPサーバが存在しない(アクセスできない)ワークグループ環境ではnet timeコマンドを使用する方法もあります。
<servername>はリモート(時刻を合わせる相手)のコンピュータ名です。
この方法ではローカルのログオンユーザとパスワードの組み合わせでリモートにアクセスできる必要があります。ローカルのログオンユーザ以外のユーザでリモートにアクセスする必要がある場合はnet useコマンドでリモートの管理共有IPC$に接続してからnet timeコマンドで時刻を同期します。
<username>と<password>はリモートに接続することができるユーザ名とパスワードの組み合わせです。
定期的(1日1回やログオン時など)に時刻同期を行いたい場合はこれらのコマンドをバッチにしてタスクスケジューラに登録するという方法があります(タスクスケジューラで起動時を指定しても、(少なくともWindows XPでは)うまく動作しなかったため、次善の策でログオン時を指定するのがよいと思われます)。
元ねたはITPro(要登録)の時刻を同期する「net time」/「w32tm」、net timeコマンド、net useコマンドを使ってワークグループ環境で事前にWindows認証を受けるあたり。
net time \\<servername> /set /yこの方法ではローカルのログオンユーザとパスワードの組み合わせでリモートにアクセスできる必要があります。ローカルのログオンユーザ以外のユーザでリモートにアクセスする必要がある場合はnet useコマンドでリモートの管理共有IPC$に接続してからnet timeコマンドで時刻を同期します。
net use \\<servername>\IPC$ <password> /user:<username> & net time \\<servername> /set /y定期的(1日1回やログオン時など)に時刻同期を行いたい場合はこれらのコマンドをバッチにしてタスクスケジューラに登録するという方法があります(タスクスケジューラで起動時を指定しても、(少なくともWindows XPでは)うまく動作しなかったため、次善の策でログオン時を指定するのがよいと思われます)。
元ねたはITPro(要登録)の時刻を同期する「net time」/「w32tm」、net timeコマンド、net useコマンドを使ってワークグループ環境で事前にWindows認証を受けるあたり。
2009年3月27日
DLLをPythonでデバッグ
Delphi/C++Builderで作成したDLLをデバッグするには、デバッグ用のアプリケーションを一緒に作成して、これをIDEの実行|実行時引数|デバッグでホストアプリケーションに指定する、というのが一般的ですが、これをPythonのインタラクティブシェルであるIDLEをホストアプリケーションに指定することでアドホックに色々できる、という話。なかなか面白い。Win32APIのパラメータによる振る舞いの違いをチェックしたりするのにも使えそう。後で試してみる、ということでとりあえずメモ。
C++ Builderで、DLLのデバッグにPythonを利用する - ベイダー日記
Python で Win32API プログラミング入門 (山本隆の開発日誌)
C++ Builder 2009で、DLLのデバッグにPythonを利用する (山本隆の開発日誌)
C++ Builderで、DLLのデバッグにPythonを利用する - ベイダー日記
Python で Win32API プログラミング入門 (山本隆の開発日誌)
C++ Builder 2009で、DLLのデバッグにPythonを利用する (山本隆の開発日誌)
2009年3月24日
[書籍]DELPHI 2009 HANDBOOK
ジュンク堂の新宿店で
DELPHI 2009 HANDBOOK - Delphi最新プログラミングエッセンス/Marco Cantu著/藤井 等訳/エンバカデロテクノロジーズ監修/カットシステム/ISBN 978-4-87783-222-3 (ISBN 4-87783-222-X)/5,250円
を売っていたのでさっそく買ってきました(19:30ころの時点でまだ5冊くらいは書架にありました)。なおamazon.co.jpでは現時点(2009/03/24)で『この本は現在お取り扱いできません。』(おそらく予約締め切り)というステータスになっているようです。
2009/03/26追記: amazon.co.jpのステータスが『通常4~6日以内に発送します。』に更新されていました。
DELPHI 2009 HANDBOOK - Delphi最新プログラミングエッセンス/Marco Cantu著/藤井 等訳/エンバカデロテクノロジーズ監修/カットシステム/ISBN 978-4-87783-222-3 (ISBN 4-87783-222-X)/5,250円
を売っていたのでさっそく買ってきました(19:30ころの時点でまだ5冊くらいは書架にありました)。なおamazon.co.jpでは現時点(2009/03/24)で『この本は現在お取り扱いできません。』(おそらく予約締め切り)というステータスになっているようです。
2009/03/26追記: amazon.co.jpのステータスが『通常4~6日以内に発送します。』に更新されていました。
Delphi-ML終了
USERS GROUPの原水さんからDelphi-ML(を含む全ての技術系ML)が2009/04/10で終了するという情報がアナウンスされています。
メーリングリストサーバー運用終了のご案内 - USERS GROUP
また代替のMLを用意してくださったとのことです。
Delphi|freeml
原水さんをはじめUSERS GROUPを運営している皆さんに改めて感謝したいと思います。今までありがとうございました。
2009/04/20追記: 2009/04/18の原水さんからの終了告知メールをもってDelphiメーリングリストは閉鎖されました(最終メールのカウントは91321でした)。
メーリングリストサーバー運用終了のご案内 - USERS GROUP
また代替のMLを用意してくださったとのことです。
Delphi|freeml
原水さんをはじめUSERS GROUPを運営している皆さんに改めて感謝したいと思います。今までありがとうございました。
2009/04/20追記: 2009/04/18の原水さんからの終了告知メールをもってDelphiメーリングリストは閉鎖されました(最終メールのカウントは91321でした)。
2009年3月21日
Delphi Codename "Weaver"
次期のDelphi/C++Builderとなる"Weaver"の具体的な話が出始めているようです。
ちなみにWeaverって日本ではハタオリドリと訳されている(本意は"籠を編む")スズメの近縁種(こんな鳥)か女優のシガニー・ウィーバーくらいしか出てこないんですが、どういう意味なんでしょうね?
元ねたはDelphi “Weaver” Beta coming - The Podcast at Delphi.orgとBeta Programs - Embarcadero Technologies。
2009/03/23追記: FTer募集のお知らせがきています。
Delphi / C++Builder 次期バージョンフィールドテスター一次募集のお知らせ
2009/03/24再追記: 2009年の3Q頃にリリースという予測は、mid2009とはいっても今(2009/04)からベータ/フィールドテストでは2Q(2009/04-06)にリリースは不可能だろうという単純な考えによるもので、別にソースがあるわけではありません。念のため。
あとFTerの募集もよく読むと結構ハードルが高いような…"目的"とか"テスト可能な製品領域"とかって正面切って聞かれるとなかなか。Tiburonでは登録してもなにも反応がない人が多かったせいなのでしょうか。
- 2009年の3Q頃にリリース予定。
- おそらくバージョンは"2010"になる。
- 64bitコンパイラはコマンドラインのみでデバッガなしのpreview releaseになるのではないか。
- コンパイラは新しいフロントエンドのものになり、Prismとの互換性が向上する。
ちなみにWeaverって日本ではハタオリドリと訳されている(本意は"籠を編む")スズメの近縁種(こんな鳥)か女優のシガニー・ウィーバーくらいしか出てこないんですが、どういう意味なんでしょうね?
元ねたはDelphi “Weaver” Beta coming - The Podcast at Delphi.orgとBeta Programs - Embarcadero Technologies。
2009/03/23追記: FTer募集のお知らせがきています。
Delphi / C++Builder 次期バージョンフィールドテスター一次募集のお知らせ
2009/03/24再追記: 2009年の3Q頃にリリースという予測は、mid2009とはいっても今(2009/04)からベータ/フィールドテストでは2Q(2009/04-06)にリリースは不可能だろうという単純な考えによるもので、別にソースがあるわけではありません。念のため。
あとFTerの募集もよく読むと結構ハードルが高いような…"目的"とか"テスト可能な製品領域"とかって正面切って聞かれるとなかなか。Tiburonでは登録してもなにも反応がない人が多かったせいなのでしょうか。
2009年3月18日
TMS Smooth Controls Pack for Delphi and C++Builder 2009
RADStudio/Delphi/C++Builder 2009の登録ユーザ向に期間限定でTMS Smooth Controls Pack for Delphi and C++Builder 2009 (Special Edition)がダウンロードできるようになっています。ダウンロード可能期間は2009/06/30までとのことです。
ID: 26725, TMS Smooth Controls Pack for Delphi and C++Builder 2009
TMS SoftwareのTMS Smooth Controls Packそのものについてはこちら。
元ねたはNick HodgesさんのRandom Thoughts on the Passing Scene #102。
2009/04/15追記: 日本語の情報が出たので一部更新しました。
ID: 26725, TMS Smooth Controls Pack for Delphi and C++Builder 2009
TMS SoftwareのTMS Smooth Controls Packそのものについてはこちら。
元ねたはNick HodgesさんのRandom Thoughts on the Passing Scene #102。
2009/04/15追記: 日本語の情報が出たので一部更新しました。
2009年3月12日
Delphi 2009 Handbook日本語版 発売決定
Macro CantuさんのDelphi 2009 Handbookの日本語版である"DELPHI 2009 HANDBOOK - Delphi最新プログラミングエッセンス"(Marco Cantu著/藤井 等訳/エンバカデロテクノロジーズ監修/カットシステム/ISBN 978-4-87783-222-3/5,250円)がいよいよ今月末にも発売されるようです。
Team Japan » 新刊書のお知らせ「Delphi 2009 Handbook」
藤井さん他関係者の皆さん、おつかれさまでした。
2009/03/17追記: カットシステムさんの公式ページのリンクを追加しました。発売日は2009/03/25となっています。またMarco Cantuさんのところでも日本語版の出版が取り上げられています。
Delphi 2009 Book in Japanese
Team Japan » 新刊書のお知らせ「Delphi 2009 Handbook」
藤井さん他関係者の皆さん、おつかれさまでした。
2009/03/17追記: カットシステムさんの公式ページのリンクを追加しました。発売日は2009/03/25となっています。またMarco Cantuさんのところでも日本語版の出版が取り上げられています。
Delphi 2009 Book in Japanese
2009年3月11日
第12回エンバカデロ・デベロッパーキャンプのまとめ(4)
以下は感想。
(以下のんびりと追記予定)
- CodeGear/Emarcadero関係
- とりあえず各製品のロードマップの更新が望まれますね。停滞気味というか、いまどういう状況なのかが外からわかりにくいと思う。
- All-Accessは(お金を払い続けられるならば)なかなかよさそう。ただ経費削減に弱い(契約が切れたら使えなくなる)のが日本の企業向けではないかも(逆に年間サポート契約とか結んでいるようなところからは魅力的だろうけれど)。
- Delphi for PHP関係
- PHPなのにDelphi。Flashでもなんでもコンポーネントにできちゃうし、IDEもデバッガもプロファイラも使える。おもしろい。
- ERStudio関係
- データベースの設計、管理をある程度以上の規模でやるならおすすめ。
- ただし計画性(とある程度の試行錯誤)が必要。導入の負荷はそれなりにあると思う(のでメリットがデメリットを上回る状況でないと)。
- C++Builder
- C++Builderは単にDelphiをObjectPascalからC++にしたものではなく、C++標準に従うことでテンプレートライブラリやC++の便利な機能を使えるようになり、Delphiとはまた別の世界が開けます、という勧誘。
- DelphiとWin32API
- Windows/Delphiプログラマならこのあたりの話は知ってて当然(だけど意外に知らない)。
- CM_.../CN_...のようなメッセージリフレクションの話も(さわりだけでも)欲しかったような。
- Delphi Prism
- トークセッション
- お題についてはちょっと不発気味。Jose Leonさんと方向性が合っていなかったような(仕込み不足、ではなく)。
(以下のんびりと追記予定)
2009年3月10日
All-Accessの価格
All-Accessの案内がEmbarcaderoから来ました。Bronze/Network Concurrent(初年度メンテナンス込)で720,000円(Delphi 2009/Proからのアップグレードで528,000円)だそうです。まぁうちなんかでは無理ですね。ただ部門内に数十ライセンスあってSAに入ってたりするならこういう選択肢もありかと。
2009年3月5日
All-Access日本国内正式発表
All-Accessの日本国内向の正式なプレスリリースが発表されています。
エンバカデロ・テクノロジーズ、マルチプラットフォーム対応のオンデマンド開発ツールセット「Embarcadero® All-Access™」の日本での展開を発表
アクセスレベル(既存製品のSKUに相当)はBronze/Silver/Gold/Platinumの4段階、これにライセンス形態としてWorkstation(ワークステーション)/Network Named User(ネットワーク指名ユーザ)/Network Concurrent(ネットワークコンカレント)の3種類、というわけで単純計算で最大12種類になるわけですね。ライセンスそのものは無期限ですが、メンバーシッププログラムは年次更新ということもあり、従来SAで上位のSKUを使用していた法人向け、といったところでしょうか。個人的にはNetwork Concurrentに注目しています。
値段が高い、という声もあるようですが、そういう人は単体製品で十分、ということではないでしょうか?あくまでこれだけ払っても元が取れるという人/会社向だと思います(まぁうちも普通に対象外ですけど)。
ところで価格が378,000円~というのはNorth Americaの2,250USD~とは相当違う(1USD=168JPY)と思うのですが、どうなんでしょう?@ITの記事によれば初年度のメンバーシッププログラムが含まれるようなので、その分なのかもしれませんね。
エンバカデロ・テクノロジーズ、マルチプラットフォーム対応のオンデマンド開発ツールセット「Embarcadero® All-Access™」の日本での展開を発表
アクセスレベル(既存製品のSKUに相当)はBronze/Silver/Gold/Platinumの4段階、これにライセンス形態としてWorkstation(ワークステーション)/Network Named User(ネットワーク指名ユーザ)/Network Concurrent(ネットワークコンカレント)の3種類、というわけで単純計算で最大12種類になるわけですね。ライセンスそのものは無期限ですが、メンバーシッププログラムは年次更新ということもあり、従来SAで上位のSKUを使用していた法人向け、といったところでしょうか。個人的にはNetwork Concurrentに注目しています。
値段が高い、という声もあるようですが、そういう人は単体製品で十分、ということではないでしょうか?あくまでこれだけ払っても元が取れるという人/会社向だと思います(まぁうちも普通に対象外ですけど)。
ところで価格が378,000円~というのはNorth Americaの2,250USD~とは相当違う(1USD=168JPY)と思うのですが、どうなんでしょう?@ITの記事によれば初年度のメンバーシッププログラムが含まれるようなので、その分なのかもしれませんね。
2009年3月4日
Reasons to Migrate from Delphi 7 to Delphi 2009
Andreano Lanusseさん(CodeGearのラテンアメリカ担当プロダクトラインマネージャ)によるWhite Paper: Reasons to Migrate from Delphi 7 to Delphi 2009(Delphi 7からDelphi 2009に移行する理由)がリリースされています。Delphi 2005以降Delphi 2009までの変更点がわかりやすく(英語ですが)まとめられています。
IDE Fix Pack 2.5/VCLFixPack 1.2リリース
Andreas HausladenさんのIDE Fix Pack 2007/2009がVersion 2.5に、VCLFixPackがVersion 1.2にそれぞれアップデートされています。
Andy’s Blog and Tools » IDE Fix Pack 2.5 and VCLFixPack 1.2 released
Andy’s Blog and Tools » IDE Fix Pack 2.5 and VCLFixPack 1.2 released
2009年2月27日
ディレクトリツリーから空のディレクトリだけを削除する
指定されたディレクトリの下にあるファイルを持たない空のディレクトリだけを再帰しながら削除していきます。
uses
SysUtils, Classes;
function DeleteEmptyDir(const Path: String): Boolean;
var
Index: Integer;
DirNames: TStringList;
SearchRec: TSearchRec;
begin
Result := True;
if Path = '' then
begin
Exit;
end;
DirNames := nil;
try
DirNames := TStringList.Create;
{ Search }
if FindFirst(IncludeTrailingPathDelimiter(Path) + '*.*',faAnyFile,SearchRec) = 0 then
begin
try
repeat
if (SearchRec.Name = '.') or (SearchRec.Name = '..') then
begin
Continue;
end;
if (SearchRec.Attr and faDirectory) <> 0 then
begin
DirNames.Add(IncludeTrailingPathDelimiter(Path) + SearchRec.Name);
end
else
begin
Result := False;
end;
until (FindNext(SearchRec) <> 0);
finally
FindClose(SearchRec);
end;
end;
{ Delete sub directories }
for Index := 0 to DirNames.Count - 1 do
begin
if DeleteEmptyDir(DirNames.Strings[Index]) = True then
begin
{ Delete }
if RemoveDir(DirNames.Strings[Index]) = False then
begin
RaiseLastOSError;
end;
end
else
begin
Result := False;
end;
end;
finally
DirNames.Free;
end;
end;
最初に指定したディレクトリは削除されません。戻値がTrueであれば削除可能(指定したディレクトリの下がすべて削除された)であることを示します。
2009年2月23日
第12回エンバカデロ・デベロッパーキャンプのまとめ(3)
- 村上さん@日揮情報システムのERStudioの話
- 多数のデータベーステーブルの論理モデル、物理モデル、データ定義を、一貫して同じものを同じように、漏れなく、間違いなくメンテナンスしていくことができる。
- BASICライクなマクロを使用して作業を自動化できる。
- リバースエンジニアリングもできる。
- 論理モデル上の名称(日本語のもの)を最終的なデータ定義のコメントとして埋め込む(これもマクロで自動的に)ことで、メンテナンスなどで非常に便利に使える。
- 筑木さん@日本情報システムのC++Builderの話
- STLやTR、Boostなどを使えばDelphiよりも複雑なアプリケーションをはるかに簡単に作れる。
- 詳細はセッション資料とサンプルコード参照。
- 内容盛りだくさんだけど何とか最後まで到達。
- 細川さん@シリアルゲームズのDelphi/Win32APIの話
- WindowsとVCLの関係、VCLのコンポーネントによる(Windowsの)オブジェクトのラッピング、WindowsのメッセージのVCLにおける扱いなど。
- CreateParams、CreateSubClass、CreateWindowHandleをoverrideしてWin32APIのRegisterClassやCreateWindowExのパラメータを制御するようなメカニズムになっている。
- WindowsやVCLなどからSend/Post/Performされたメッセージはウィンドウプロシージャからディスパッチャ経由でメッセージハンドラ(message指令で指定)に引き渡される。
- 高橋さん@エンバカデロテクノロジーズのDelphi Prismの話
- Delphi PrismとはOxygene(RemObjects SoftwareのChromeコンパイラ)+dBExpress+.NET Framework 3.5サポート+Monoサポートをまとめたもの。
- Delphi PrismはOxygeneコンパイラでMSILにコンパイルされる(従来のDelphi.NETコンパイラではないため完全な互換性はない)。.NET Framework 1.1/2.0/3.0/3.5に対応している。
- VCL(.NET)も存在しないので.NET Framework標準のフレームワークを使用する。
- 文法面の互換性向上はDelphi/Prism共通の課題として考えている。
- VB.NET/C#が持っていない言語機能をシンタックスシュガーとして備えている(プロパティアクセサのインライン化、クラスコントラクト、プロパティ通知、Nullable型の暗黙の拡張、非同期メソッド、フューチャなど)ので、複雑な機能を簡単な記述で利用できる。
- MonoプロジェクトのサポートでMac OS X/Linux/BSD向の開発が可能になった。
(以下のんびりと追記予定)
2009年2月19日
All-Access正式発表
またもやMarco CantuさんのOfficial Release of All-Accessからの情報で、All-Accessが正式に発表されています。
Embarcadero Debuts the Industry’s First On-Demand, Multi-Platform Software Development Tool Chest: Embarcadero All-Access
またAll-Accessの製品ページも公開されています。
All-Access - Embarcadero Technologies
2009/02/19追記: プレスリリースの日本語訳も公開されました。
エンバカデロ・テクノロジーズ、業界初、マルチプラットフォーム対応のオンデマンド開発ツールセット「Embarcadero® All-Access™」を発表
日本では2009/03/04に詳細が発表されるとのことです。あれ?このリリースはまだcodegear.comドメインですね。
また藤井さんのAllegro Barbaroでも説明されています。
Allegro Barbaro > オンデマンドというツール提供のかたち : ITmedia オルタナティブ・ブログ
Embarcadero Debuts the Industry’s First On-Demand, Multi-Platform Software Development Tool Chest: Embarcadero All-Access
またAll-Accessの製品ページも公開されています。
All-Access - Embarcadero Technologies
2009/02/19追記: プレスリリースの日本語訳も公開されました。
エンバカデロ・テクノロジーズ、業界初、マルチプラットフォーム対応のオンデマンド開発ツールセット「Embarcadero® All-Access™」を発表
日本では2009/03/04に詳細が発表されるとのことです。あれ?このリリースはまだcodegear.comドメインですね。
また藤井さんのAllegro Barbaroでも説明されています。
Allegro Barbaro > オンデマンドというツール提供のかたち : ITmedia オルタナティブ・ブログ
2009年2月18日
第12回エンバカデロ・デベロッパーキャンプのまとめ(2)
次はJose Leonさん/Delphi for PHP関係の話。
- Delphi for PHP by Jose Leonさん(Delphi for PHPアーキテクト、qadram software CEO)
- PHPの開発があまりにも旧態依然としていて非効率的なので、そのまま作業するよりは慣れ親しんだDelphiライクなIDE+コンポーネントライブラリを作ってしまったほうが作業量が少ない、と判断してDelphi for PHP(の前身となるqstudio)を作った。
- Delphi for PHPはIDEとして6作目だったので、最初からうまくいく見通しがあった。
- 必要のないコードを書きたくない(タイヤの再発明はしたくない)。
- VCL for PHPのコンポーネントはちゃんとCodeGearと契約してから作業した。
- Delphi for PHPについて
- HTML(visual)、JavaScript、non-visualなコンポーネントを含むことができる。
- デバッガが使える(パフォーマンス的には厳しいが)。
- プロファイラで実行行数、実行時間などを簡単に計測することができる。
- ページコンポーネントがwebページに対応するベースとなるコンポーネント(Delphiではフォームに相当)で、そのページを構成するHTMLソースが生成される。ここにコンポーネントを配置すると、対応するHTMLソースが追加生成される。
- FlashやjQueryもラッピングしてVCL for PHPコンポーネントにすることができる。
- OpenChartにDBExplorerからDnDしたデータソースなどのコンポーネントを接続するだけで簡単にFlashベースのグラフを表示できる。
- OpenGridも同様にデータソースと接続することで更新も含め簡単にデータのグリッド表示が可能になる(AJAXで動作している)。
- コンポーネントベースにすることでコードの記述が最小限で動作するようになっている。
第12回エンバカデロ・デベロッパーキャンプのまとめ(1)
まずはCodeGear/Embarcadero関係の話。
2009/02/18追記: embarcadero.comへの移行が現在進行中です。
- Delphi/C++Builder Developer Meetingについて
- 4月にDavid.Iさんがasia-pacificをまわるところをつかまえてやりたいと思っているとのこと。
- FT参加者、FT参加希望者を対象に。
- いまのところ2009年04月13日(月曜日)17:30からの予定(無保証)。
- NDAベースのミーティングになる。
- codegear.comはembarcadero.comに統合
- 近日中にcodegear.comのコンテンツはembarcadero.comに統合される。
- dn.codegear.comにあるものは単純にドメイン部分を"edn.embarcadero.com"に読み替えるだけでよいが、www.codegear.comのコンテンツは再編されるので要注意。
- 国際化などの仕掛けは従来どおり。
- 旧borland.co.jp/borland.comから移行した古いコンテンツにリンク切れがある、という話をしたら、そのようなものを見つけたら個別にメールで教えてください、とのこと。
- on-demand tool accessについて
- on-demand accessというEmbarcaderoの製品をすべて使用できる包括的なライセンス形態の販売を予定している(Marco CantuさんのEmbarcadero All-Access経由で読んだinfoworldのEmbarcadero offers on-demand tools accessという記事に出ていました)。
- 企業でのライセンス管理が容易になる。
- たまにしか使わないようなツールのライセンスも含まれるので導入のハードルが低くなる。
- だいたい3つの製品を買えば元が取れるような価格になる(infoworldの記事ではシングルユーザ、ワークステーション用のBronzeで2250USD≒21万円なので計算が合う感じ)。
- オフィス移転
- 来週から新しいオフィスに移転する。
- 電話番号が変更になるので注意。
- 藤井さんの下僕マーケティングのアシスタントスタッフを募集中。
2009/02/18追記: embarcadero.comへの移行が現在進行中です。
IDE Fix Pack 2.4リリース
Andreas HausladenさんのIDE Fix Pack 2007/2009がVersion 2.4にアップデートされています。
Andy’s Blog and Tools » IDE Fix Pack 2.4 released
Andy’s Blog and Tools » IDE Fix Pack 2.4 released
2009年2月17日
第12回エンバカデロ・デベロッパーキャンプ終了
毎度のことですが、スピーカの皆さん、関係者の皆さん、おつかれさまでした。
とりあえず次回の会場には電源付きの席を用意してほしいと思った一日でした。あとできれば地下ではないほうが(auの電波が微妙で夕方には電池切れ寸前になってしまった)。
2009/02/18追記: デベロッパーキャンプの内容や感想についてはまとめ(1)、まとめ(2)に移しました。
2009/02/23再追記: セッション資料がダウンロードできるようになっています。
2009/03/11再追記: デベロッパーキャンプの内容や感想をまとめ(1)、まとめ(2)、まとめ(3)、まとめ(4)にまとめました(途中ですが)。
とりあえず次回の会場には電源付きの席を用意してほしいと思った一日でした。あとできれば地下ではないほうが(auの電波が微妙で夕方には電池切れ寸前になってしまった)。
2009/02/18追記: デベロッパーキャンプの内容や感想についてはまとめ(1)、まとめ(2)に移しました。
2009/02/23再追記: セッション資料がダウンロードできるようになっています。
2009/03/11再追記: デベロッパーキャンプの内容や感想をまとめ(1)、まとめ(2)、まとめ(3)、まとめ(4)にまとめました(途中ですが)。
2009年2月11日
2009年2月5日
IDE Fix Pack 2.3リリース
Andreas HausladenさんのIDE Fix Pack 2007/2009がVersion 2.3にアップデートされています。"I have finally found a way to replace a .NET method at runtime without using the ProfilerAPI or other libraries. I can do it from native code."だそうです。
Andy’s Blog and Tools » IDE Fix Pack 2.3 - Bye bye “Cannot resolve unit name”
Andy’s Blog and Tools » IDE Fix Pack 2.3 - Bye bye “Cannot resolve unit name”
2009年1月28日
Delphiコンパイラの将来
ちょっと前に公開されて色々と議論を巻き起こしていたNick HodgesさんのThe Future of the Delphi Compilerの日本語訳が公開されています。
Delphiコンパイラの将来
Delphiコンパイラの将来
Delphi 2009 Whitepapers
#3までで完結かと思っていたDelphi 2009のホワイトペーパーの#4(VCL)、#5(Datasnap 2009)がここにきて公開されています。Delphi 2009 Handbookの要約だということから考えるとこれで打ち止めだと思うのですが。
2009/01/29追記: ちゃんとこれが5番目で最後("the fifth and last of my series")、と書いてありました。
2009/01/29追記: ちゃんとこれが5番目で最後("the fifth and last of my series")、と書いてありました。
2009年1月26日
IDE Fix Pack 2.2/VCLFixPack 1.1リリース
Andreas HausladenさんのIDE Fix Pack 2007/2009がVersion 2.1に、VCLFixPackがVersion 1.1にそれぞれアップデートされています。
Andy’s Blog and Tools » IDE Fix Pack 2.2 and VCLFixPack 1.1
Andy’s Blog and Tools » IDE Fix Pack 2.2 and VCLFixPack 1.1
2009年1月23日
JVCL 3.36リリース
JVCL(JEDI Visual Component Library)がアップデートされてVersion 3.36(JCL Version 1.104)になっています。
SourceForge.net: JEDI VCL for Delphi: Files
元ねたは2009-01-22 - C++Builder好きの秘密基地さんのところ。
SourceForge.net: JEDI VCL for Delphi: Files
元ねたは2009-01-22 - C++Builder好きの秘密基地さんのところ。
2009年1月14日
2009年1月11日
DDevExtensions 1.61リリース
Andreas HausladenさんのDDevExtensions (for Delphi/BCB 5-2007)がアップデートされてVersion 1.61になっています。
DDevExtensions 1.61 (for Delphi/BCB 5-2007)
DDevExtensions 1.61 (for Delphi/BCB 5-2007)
2009年1月8日
Delphi 2009 Handbook日本語版
Marco CantuさんのDelphi 2009 Handbookの日本語版の作業が進行中とのことです。まさかの自前翻訳だそうで、なんともご苦労様です。えぇ、もちろん買いますとも。自分用と会社用の2冊で。
2009年1月7日
第12回エンバカデロ・デベロッパーキャンプ
第12回エンバカデロ・デベロッパーキャンプは2009年02月17日開催です。今回はJose Leonさん(qadram softwareのCEO/Delphi for PHPのチーフアーキテクト)がいらっしゃるそうです。
2008年12月26日
IDE製品に同梱のInterBase(Local/Developer Edition)に関するまとめ
Delphiには開発用にInterBaseが同梱されていますが、どのバージョンがどのプロダクトに含まれているのかをまとめてみました。
2012/12/31追記: InterBase XEの情報を更新し、InterBase XE3の情報を追加しました。
- Local InterBase Server 4.1
- 最新アップデート: (n/a)
- プロダクト: Delphi 2
- 対応OS: Windows 95/NT 4.0
- 制限事項: ローカル接続のみ
- 参照URL: (n/a)
- Local InterBase Server 4.2.1
- 最新アップデート: (n/a)
- プロダクト: Delphi 3/3.1
- 対応OS: Windows 95/NT 4.0
- 制限事項: ローカル接続のみ
- 参照URL: (n/a)
- InterBase 5.0
- 最新アップデート: (n/a)
- プロダクト: C++Builder 3/Delphi 4
- 対応OS: Windows 95/NT 4.0
- 制限事項: Local InterBaseライセンスのみ
- 参照URL: (n/a)
- InterBase 5.6
- 最新アップデート: (n/a)
- プロダクト: Delphi 5/C++Builder 5
- 対応OS: Windows 95/98/NT4(SP5)
- 制限事項: Local InterBaseライセンスのみ
- 参照URL: (n/a)
- InterBase 6
- 最新アップデート: (n/a)
- プロダクト: Delphi 6/7/C++Builder 6
- 対応OS: Windows 98SE/Me/NT 4.0(SP6a)/2000(SP1)
- 制限事項: Local InterBaseライセンスのみ
- 参照URL: (n/a)
- InterBase 7.1
- 最新アップデート: Service Pack 2 + Security update
- プロダクト: Delphi 2005
- 対応OS: Windows 98/Me/NT 4.0(SP6a)/2000(SP2)/XP/Server 2003(IB7.1 SP2)
- 制限事項: IDE製品がインストール済かつ許諾済であること?
- 参照URL: (n/a)
- InterBase 7.5
- 最新アップデート: 7.5.1 Service Pack 1
- プロダクト: Developer Studio 2006/JBuilder 2006
- 対応OS: Windows 2000(SP4)/XP Pro(SP2)/Server 2003(SP1)
- 制限事項: IDE製品がインストール済かつ許諾済であること(特に設定を行わないとサービスとしては起動しない)
- 参照URL: InterBase 7.5 Developer の起動について
- InterBase 2007
- 最新アップデート: Service Pack 3
- プロダクト: RAD Studio 2007
- 対応OS: Windows 2000(SP4)/XP(SP2)/Server 2003/Vista
- 制限事項: 最大48時間までしか連続稼動できない
- 参照URL: InterBase 2007 Developer Editionの仕様について
- InterBase 2009
- 最新アップデート: Hotfix Update 4
- プロダクト: RAD Studio 2009
- 対応OS: Windows 2000(SP4)/XP(SP2)/Server 2003/Vista/Server 2008
- 制限事項: 最大48時間までしか連続稼動できない?
- InterBase XE
- 最新アップデート: Update 5
- プロダクト: ?
- 対応OS: Windows XP(SP3)/Vista(x86/x64)/Server 2008/7(x86)/Server 2008 R2
- 制限事項: 最大48時間までしか連続稼動できない、4coreまでのサポート、20同時接続ユーザ(80コネクション)
- InterBase XE3
- 最新アップデート: Update 1
- プロダクト: RAD Studio XE3
- 対応OS: Windows XP(SP3)/Vista(x86/x64)/Server 2008/7(x86/x64)/Server 2008 R2/8(x86/x64)/Server 2012
- 制限事項: 最大48時間までしか連続稼動できない、4coreまでのサポート、20同時接続ユーザ(80コネクション)
2012/12/31追記: InterBase XEの情報を更新し、InterBase XE3の情報を追加しました。
2008年12月24日
日本法人代表交代
旧Borland日本法人のIDE部門分社化以来の責任者でエンバカデロ・テクノロジーズ合同会社(いわゆる日本法人)の代表(職務執行者)の八重樫さんが退任され、替わって藤井さんが日本法人の代表になる、というニュースが飛び込んできました。海の向こうはハッピーホリデーの休暇に入るところ(そして日本も年内は後3日)というタイミングでの発表(非公式ですけど)はちょっと驚きです(年内に、ということであれば最後のタイミングですが)。
八重樫さんとは2回ほどお話をさせていただきましたが、見た目とは違い(見た目通り?)、優しく気さくな方でした(敵にしたら恐ろしい、かも…)。次はどのようなことをされるのでしょうか?ご活躍をお祈りしています。
八重樫さんとは2回ほどお話をさせていただきましたが、見た目とは違い(見た目通り?)、優しく気さくな方でした(敵にしたら恐ろしい、かも…)。次はどのようなことをされるのでしょうか?ご活躍をお祈りしています。
2008年12月21日
[書籍]Delphi 2009 Handbook/Delphi 2009 Development Essentials
Marco CantuさんのDelphi 2009 HandbookがLulu.comから到着。Bob SwartさんのDelphi 2007 for Win32 Development EssentialsとDelphi 2009 Development Essentialsも一緒に買ったのでまとめて積んだ。
2008年12月20日
Delphi 2009/C++Builder 2009 Help Update 1
Delphi 2009/C++Builder 2009のHelp Update 1がリリースされています。
リリースノート: Delphi 2009 および C++Builder 2009 Help Update 1
Dee Ellingさんによれば、CHM/PDF/HTML版がEmbarcadero CodeGear Product Documentation SITE BETAに載るのは来年になるようです。あちらはもうホリデーシーズンですしね。
2011/05/04追記: codegear.comのリンクをembarcadero.comのものに差し替え。
リリースノート: Delphi 2009 および C++Builder 2009 Help Update 1
Dee Ellingさんによれば、CHM/PDF/HTML版がEmbarcadero CodeGear Product Documentation SITE BETAに載るのは来年になるようです。あちらはもうホリデーシーズンですしね。
2011/05/04追記: codegear.comのリンクをembarcadero.comのものに差し替え。
2008年12月19日
2008年12月18日
2008年12月16日
ファイルサイズを取得する(2)
前回のファイルサイズの取得の方法ではNTFSログファイルが一杯になると取得できるファイルサイズがファイルの更新に従って変化しなくなるという不具合を避けることができません。そこでこのKBのworkaroundに従ってWin32APIのGetFileSizeExを使用してファイルサイズを取得する方法です。
function GetFileSizeEx(hFile: THandle; var lpFileSize: LARGE_INTEGER): BOOL; stdcall;
external kernel32 name 'GetFileSizeEx';
function GetFileSize(const Filename: String; var FileSize: Int64): Boolean;
var
Handle: THandle;
LI: LARGE_INTEGER;
begin
Result := False;
FileSize := 0;
Handle := Windows.CreateFile(PChar(Filename),GENERIC_READ,0,nil,
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
if Handle = INVALID_HANDLE_VALUE then
begin
Exit;
end;
try
if GetFileSizeEx(Handle,LI) = False then
begin
Exit;
end;
finally
Windows.CloseHandle(Handle);
end;
FileSize := LI.LowPart or (Int64(LI.HighPart) shl 32);
Result := True;
end;
GetFileSizeExがオープン済のファイルハンドルを要求するため、CreateFileで一旦ファイルをオープンし、ファイルサイズ取得後にクローズするようにしています。このためアクセス権などの問題からオープンに失敗するようなファイルのサイズを取得することができません。
Delphi 2009/C++Builder 2009 Update 2
Delphi 2009/C++Builder 2009のUpdate 2がリリースされています。Update 2はデータベース関係のアップデートのみとのことです。また事前にUpdate 1を適用しておく必要があります。
リリースノート: Delphi 2009 および C++Builder 2009 Update 2
List of Bug Fixes in Update 2 for Delphi and C++Builder 2009
リリースノート: Delphi 2009 および C++Builder 2009 Update 2
List of Bug Fixes in Update 2 for Delphi and C++Builder 2009
2008年12月13日
InterBase 2007 Service Pack 3リリース
InterBase 2007 SP3 for Windows - Japaneseがダウンロードできるようになっています。
InterBase 2007 Service Pack 3 (8.1.1.333) リリースノート
2008/12/16追記: InterBase 2007 SP3はSP2適用済の環境にのみ適用可能です(SP2の詳細についてはこちら)。
InterBase 2007 Service Pack 3 (8.1.1.333) リリースノート
2008/12/16追記: InterBase 2007 SP3はSP2適用済の環境にのみ適用可能です(SP2の詳細についてはこちら)。
2008年12月11日
スプラッシュフォームを表示する
メインフォームを表示するのに時間がかかる(データベースを参照していたり、大きなファイルを読み込む必要があったり、理由はさまざまでしょうけれども)ようなときに、スプラッシュフォームを表示することでこれをごまかす、じゃなくて目立たなくするという方法があります。
まず表示に時間がかかるメインフォームとしてこのようなものを考えます。
ここでスプラッシュ用のフォームを用意します。必要に応じてプロパティを指定したりLabelやPanelやImageなどを配置してそれなりの体裁を整えていただくとして、ここで必要なイベントハンドラはOnDeactivateです。OnDeactivateイベントハンドラではReleaseメソッドを呼び出してスプラッシュフォーム自身を解放するようにします。
Applicationの初期化後にまずスプラッシュフォームが生成、表示され、メインフォームが生成されて時間がかかる処理が走り、Apprication.Runでメインフォームが表示されてアクティブになることでスプラッシュフォームはインアクティブになり、OnDeactivateイベントが発生してスプラッシュフォームが消滅する、という動作の流れになります。
まず表示に時間がかかるメインフォームとしてこのようなものを考えます。
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
I: Integer;
begin
for I := 0 to 99 do
begin
Sleep(100);
end;
end;
起動からメインフォームの表示まで10秒かかります(あたりまえ)。ここでスプラッシュ用のフォームを用意します。必要に応じてプロパティを指定したりLabelやPanelやImageなどを配置してそれなりの体裁を整えていただくとして、ここで必要なイベントハンドラはOnDeactivateです。OnDeactivateイベントハンドラではReleaseメソッドを呼び出してスプラッシュフォーム自身を解放するようにします。
type
TForm2 = class(TForm)
procedure FormDeactivate(Sender: TObject);
end;
procedure TForm2.FormDeactivate(Sender: TObject);
begin
Release;
end;
さらにスプラッシュフォームを表示するためのメソッドを用意します。このスプラッシュフォームには通常の(メッセージループ経由の)メッセージが全く送られない(アプリケーションのメッセージループが動作し始めると直後にOnDeactivateが発生する)ので、Updateメソッドで強制的に表示更新を行う必要があります。procedure ShowSplashForm;
begin
with TForm2.Create(nil) do
begin
Show;
Update;
end;
end;
そしてこのメソッドをプロジェクトソース内のApplication.Initializeの後で呼び出します。begin
Application.Initialize;
ShowSplashForm;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Delphi 2007以降ではWindows Vista対応のためにApplicationとメインフォームの関係を色々と変更したためにbegin
Application.Initialize;
Application.MainFormOnTaskbar := True;
ShowSplashForm;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
とApplication.MainFormOnTaskbarの設定の後にスプラッシュフォームを表示するようにする必要があります(逆にDelphi 2006以前ではTForm2の所属ユニットのinitialization部で十分なのですが)。Applicationの初期化後にまずスプラッシュフォームが生成、表示され、メインフォームが生成されて時間がかかる処理が走り、Apprication.Runでメインフォームが表示されてアクティブになることでスプラッシュフォームはインアクティブになり、OnDeactivateイベントが発生してスプラッシュフォームが消滅する、という動作の流れになります。
2008年12月10日
2008年12月8日
InterBase SMP 2009 Develper Edition 日本語版リリース
InterBase SMP 2009のDeveloper Edition 日本語版がダウンロードできるようになっています。
InterBase SMP 2009 Developer Edition日本語版および追加プラットフォーム版のダウンロード
InterBase SMP 2009 Developer Edition日本語版および追加プラットフォーム版のダウンロード
2008年12月5日
Delphi 2009 Whitepapers
Marco CantuさんによるDelphi 2009 White Paperがリリースされています。
White Paper #1 Unicode: White Paper: Delphi and Unicode
White Paper #2 Language: White Paper: Using New Delphi Coding Styles and Architectures
White Paper #3 The IDE: White Paper: A Tour of Delphi 2009
White Paper #4 The VCL: White Paper: Building User Interfaces with Delphi 2009
White Paper #5 Datasnap 2009: White Paper: The New DataSnap in Delphi 2009
#2の表紙に著者名が入っていないのは単なるミスだそうです。
2008/12/16追記: #3がリリースされています。
2009/01/22追記: #4がリリースされています。
2009/01/28追記: #5がリリースされています。
White Paper #1 Unicode: White Paper: Delphi and Unicode
White Paper #2 Language: White Paper: Using New Delphi Coding Styles and Architectures
White Paper #3 The IDE: White Paper: A Tour of Delphi 2009
White Paper #4 The VCL: White Paper: Building User Interfaces with Delphi 2009
White Paper #5 Datasnap 2009: White Paper: The New DataSnap in Delphi 2009
#2の表紙に著者名が入っていないのは単なるミスだそうです。
2008/12/16追記: #3がリリースされています。
2009/01/22追記: #4がリリースされています。
2009/01/28追記: #5がリリースされています。
2008年12月4日
OpenTools API入門
あとで読む。
Extending Delphi 2009 With OpenTools API: Getting Started
OTA(OpenTools API)はDelphi/C++BuilderのIDEとインタフェースするためのAPIで、wizardやpluginはこれを利用して作成します。
Extending Delphi 2009 With OpenTools API: Getting Started
OTA(OpenTools API)はDelphi/C++BuilderのIDEとインタフェースするためのAPIで、wizardやpluginはこれを利用して作成します。
2008年12月3日
第11回エンバカデロ・デベロッパーキャンプ終了
参加者および関係者の皆さん、おつかれさまでした。
ところで会場に来てたのはMalcolm Grovesさんでしたか。
また後で更新予定…。
2008/12/06追記: ITProにMalcolm Grovesさんのインタビュー記事が。
2008/12/10再追記: セッション資料がダウンロードできるようになっています。
ところで会場に来てたのはMalcolm Grovesさんでしたか。
また後で更新予定…。
2008/12/06追記: ITProにMalcolm Grovesさんのインタビュー記事が。
2008/12/10再追記: セッション資料がダウンロードできるようになっています。
Delphi 2009 Handbook出版
Marco CantuさんのDelphi 2009 HandbookがLulu.comから出版されました。全400ページで、価格は48.50USD(約4500円)ですが、先着60名は40.50USD(これは既に終了)、CodeRage IIIの期間中(2008/12/05まで)は45.50USD(約4200円)のディスカウントが設定されています。
2008/12/04追記: ソースコードがCodeCentralからダウンロードできるようになっています。
2008/12/05再追記: Delphi 2009/C++Builder 2009/RAD Studio 2009登録ユーザはPDF eBook形式のものをCodeGearから入手できるようになりました。
Delphi 2009 Handbook PDF eBook
また「何らかの形で日本語版を出せるように交渉中」という話をデベロッパーキャンプで藤井さんがしていましたので、期待してます。
2009/05/22再追記: Marco Cantuさんによると、Amazon(US)の傘下でプリントオンデマンドを扱うCreateSpaceという会社からも入手可能になったそうです。
Delphi 2009 Handbook on Amazon.com
2011/05/04追記: cc.codegear.comのリンクをcc.embarcadero.comのものに差し替え。
2008/12/04追記: ソースコードがCodeCentralからダウンロードできるようになっています。
2008/12/05再追記: Delphi 2009/C++Builder 2009/RAD Studio 2009登録ユーザはPDF eBook形式のものをCodeGearから入手できるようになりました。
Delphi 2009 Handbook PDF eBook
また「何らかの形で日本語版を出せるように交渉中」という話をデベロッパーキャンプで藤井さんがしていましたので、期待してます。
2009/05/22再追記: Marco Cantuさんによると、Amazon(US)の傘下でプリントオンデマンドを扱うCreateSpaceという会社からも入手可能になったそうです。
Delphi 2009 Handbook on Amazon.com
2011/05/04追記: cc.codegear.comのリンクをcc.embarcadero.comのものに差し替え。
2008年12月1日
IDE Fix Pack 2.1リリース
Andreas HausladenさんのIDE Fix Pack 2007/2009がアップデートしてVersion 2.1になっています。
IDE Fix Pack 2.1 and DFMCheck 1.3
IDE Fix Pack 2.1 and DFMCheck 1.3
2008年11月21日
IDE Fix Pack and VCL Fix Pack
IDE/VCLのBugFixが進まないことにAndreas Hausladenさんが業を煮やしたらしく、IDE/VCLの非公式パッチ集であるIDE Fix Pack 2009とVCL Fix Packをリリースしています。
IDE Fix Pack 2.0 and VCL Fix Pack 1.0 released
IDE Fix PackにはDelphi/C++Builder 2007用もあります。またVCL Fix PackはDelphi 6以降に適用可能なようです(先日の非公式パッチも含まれています)。
IDE Fix Pack 2.0 and VCL Fix Pack 1.0 released
IDE Fix PackにはDelphi/C++Builder 2007用もあります。またVCL Fix PackはDelphi 6以降に適用可能なようです(先日の非公式パッチも含まれています)。
3rdRail and TurboRuby
CodeGear(Embarcadero)から3rdRail 2.0とTurboRubyが発表されています。
Press Release: Embarcadero Ships Latest Edition of 3rdRail™ and Introduces TurboRuby IDEs
気になる3rdRail SKUとTurboRuby SKUの違いですが、FAQ FAQによればRailsフレームワークのサポートの有無(TurboRubyはRailsフレームワークをサポートしない)のようです。
ということは。
あくまで個人的な意見ですが、噂のDelphi/C++BuilderのTurbo SKUも、IDEは同じだけれどもVCLというフレームワームをサポートしない、という路線なのでは?と考えています。
2011/05/04追記: codegear.comのリンクをembarcadero.comのものに差し替え。
Press Release: Embarcadero Ships Latest Edition of 3rdRail™ and Introduces TurboRuby IDEs
気になる3rdRail SKUとTurboRuby SKUの違いですが、
ということは。
あくまで個人的な意見ですが、噂のDelphi/C++BuilderのTurbo SKUも、IDEは同じだけれどもVCLというフレームワームをサポートしない、という路線なのでは?と考えています。
2011/05/04追記: codegear.comのリンクをembarcadero.comのものに差し替え。
2008年11月19日
マニフェストのrequestExecutionLevelに指定できる値
Windows Vista上で管理者権限を要求するアプリケーションを作成するで説明したアプリケーションマニフェスト上のrequestExecutionLevelのlevel属性に指定できる値とその意味は以下のようになっています。
元ねたはAdvanced Windows 第5版 上 p.142
2008/11/20追記: ついでにGetProcessElevation関数(p.146)を移植してみようと思ったけど、Windows 2000ではGetTokenInformationにTokenElevationTypeを渡すとパラメータエラーになることが判明して断念。難しい…。
requireAdministrator- アプリケーションはAdministrator権限で開始されなければならず、それ以外の権限では実行されない。
highestAvailable- アプリケーションはログオンアカウントで要求できる最も高い権限で開始されなければならない。ログオンユーザがAdministratorアカウントならば権限昇格のプロンプトが表示されたうえでAdministrator権限で開始され、標準ユーザアカウントならば(権限昇格のプロンプトの表示なしに)標準の権限で開始される。
asInvoker- アプリケーションは呼び出し元のアプリケーションと同じ権限で開始される。
元ねたはAdvanced Windows 第5版 上 p.142
2008/11/20追記: ついでにGetProcessElevation関数(p.146)を移植してみようと思ったけど、Windows 2000ではGetTokenInformationにTokenElevationTypeを渡すとパラメータエラーになることが判明して断念。難しい…。
2008年11月16日
Delphi 2009/C++Builder 2009非公式パッチ群
DelphiSpeedUpやDDevExtensionsで有名なAndreas HausladenさんがDelphi 2009/C++Builder 2009の非公式パッチを4点公開しています。
QC66892 Form.Hide/Close - Stack tashing bugfix unit 元記事
QC59963 Application De/Activate bugfix unit (2007/2009) 元記事
QC68740 TOpen/SaveDialog focus bugfix unit (2007/2009) 元記事
IDE Fix Pack 1.0 for RAD Studio 2009 元記事
QC66892 Form.Hide/Close - Stack tashing bugfix unit 元記事
QC59963 Application De/Activate bugfix unit (2007/2009) 元記事
QC68740 TOpen/SaveDialog focus bugfix unit (2007/2009) 元記事
IDE Fix Pack 1.0 for RAD Studio 2009 元記事
2008年11月13日
アプリケーションの多重起動を禁止する
プログラムの性質によっては多重起動を禁止したいことがあります。このようなときには同期オブジェクトの一つであるmutexを使用します。
Delphiのプロジェクトソースを開くとこのようになっています。
作成するmutexの名前は任意(上記の例では適当にGUIDを生成して使用しています)ですが、'Global\'と'Local\'で始まるmutex名には特別な意味があるので注意が必要です(詳細はCreateMutex参照)。また同名のmutexが存在するかどうかを調べるのにOpenMutexを使用するとOpenMutexの呼び出しからCreateMutexの呼び出しまでの間が無防備になってしまうため、CreateMutexの第2パラメータbInitialOwnerにFalseを指定して呼び出し後、GetLastErrorの値がERROR_ALREADY_EXISTSかどうかで判定するようにします。
さらにアプリケーションのメインウィンドウを前面に移動し、最小化も解除するようにしてみます。
Delphiのプロジェクトソースを開くとこのようになっています。
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
ここで一意な名前のmutexをプログラム実行中だけ作成(CreateMutex)し、もしその名前のmutexが存在していたらプログラムを終了、存在していなければ実行を継続し、プログラム終了時にはmutexを破棄(CloseHandle)するコードを追加します。program Project1;
uses
Windows,
SysUtils,
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
const
{ Mutex name }
CMutexName: String = '{9D0E11F8-ED24-4D3E-91B1-5E9A9BF8673A}';
var
hMutex: THandle;
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
{ Create mutex }
SetLastError(0);
hMutex := CreateMutex(nil,False,PChar(CMutexName));
if hMutex = 0 then
begin
RaiseLastOSError;
end;
try
if GetLastError = ERROR_ALREADY_EXISTS then
begin
Exit;
end;
Application.CreateForm(TForm1, Form1);
Application.Run;
finally
{ Close mutex }
CloseHandle(hMutex);
end;
end.
これでプログラムの多重起動を禁止することができます。作成するmutexの名前は任意(上記の例では適当にGUIDを生成して使用しています)ですが、'Global\'と'Local\'で始まるmutex名には特別な意味があるので注意が必要です(詳細はCreateMutex参照)。また同名のmutexが存在するかどうかを調べるのにOpenMutexを使用するとOpenMutexの呼び出しからCreateMutexの呼び出しまでの間が無防備になってしまうため、CreateMutexの第2パラメータbInitialOwnerにFalseを指定して呼び出し後、GetLastErrorの値がERROR_ALREADY_EXISTSかどうかで判定するようにします。
さらにアプリケーションのメインウィンドウを前面に移動し、最小化も解除するようにしてみます。
program Project1;
uses
Windows,
SysUtils,
Messages,
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
const
{ Mutex name }
CMutexName: String = '{9D0E11F8-ED24-4D3E-91B1-5E9A9BF8673A}';
var
hMutex: THandle;
Wnd: HWnd;
AppWnd: HWnd;
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
{ Create mutex }
SetLastError(0);
hMutex := CreateMutex(nil,False,PChar(CMutexName));
if hMutex = 0 then
begin
RaiseLastOSError;
end;
try
if GetLastError = ERROR_ALREADY_EXISTS then
begin
{ Search main form }
Wnd := FindWindow(PChar('TForm1'),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;
Application.CreateForm(TForm1, Form1);
Application.Run;
finally
{ Close mutex }
CloseHandle(hMutex);
end;
end.
Delphiのウィンドウコントロールはクラス名がそのままウィンドウクラス名になるため、FindWindowにはアプリケーションのメインフォームのクラス名を渡します。
2008年11月12日
2008年11月11日
Delphi/C++Builder 2009 Japanese Hotfix 1
IDEの環境オプションのタイプライブラリの設定がエラーになる件(QC68044)のHotfixがリリースされています。事前にUpdate 1を適用しておく必要があるとのことです。
Team Japan » Delphi/C++Builder 2009 Japanese Hotfix 1
2008/11/12追記: C++Builder 2009ではdelphicompro120.jpは必要ないとのことです。
Team Japan » Delphi/C++Builder 2009 Japanese Hotfix 1
2008/11/12追記: C++Builder 2009ではdelphicompro120.jpは必要ないとのことです。
2008年11月4日
Delphi 2009/C++Builder 2009 Update 1
Delphi 2009/C++Builder 2009のUpdate 1がリリースされています。
Delphi and C++Builder 2009 Update 1 リリースノート
Delphi 2009 および C++Builder 2009 Update 1 バグフィックスリスト
Delphi and C++Builder 2009 Update 1 リリースノート
Delphi 2009 および C++Builder 2009 Update 1 バグフィックスリスト
登録:
投稿 (Atom)