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月27日
ディレクトリツリーから空のディレクトリだけを削除する
指定されたディレクトリの下にあるファイルを持たない空のディレクトリだけを再帰しながら削除していきます。
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”
登録:
投稿 (Atom)