・
RAD Studio XE2
Delphi / C++Builder / RAD Studio XE2 トライアル が DL 可能となっています。
詳細な内容は以下のようになっています。
購入先を再掲しておきます。
製品 | リオス e-Shop | SEshop | 両備 e-Shop | OSJ オンライン | ComponetSource |
Delphi XE2 Professional ESD | ¥39,900 (税込) | ¥39,900 (税込) | ¥40,000 (税込) | ¥42,000 (税込) | ¥39,900 (税込) |
Delphi XE2 Enterprise ESD | ¥127,680 (税込) | ¥127,680 (税込) | ¥128,000 (税込) | ¥134,400 (税込) | ¥127,680 (税込) |
Delphi XE2 Architect ESD | ¥223,440 (税込) | ¥223,440 (税込) | ¥224,000 (税込) | ¥235,200 (税込) | ¥223,440 (税込) |
C++Builder XE2 Professional ESD | ¥39,900 (税込) | ¥39,900 (税込) | ¥40,000 (税込) | ¥42,000 (税込) | ¥39,900 (税込) |
C++Builder XE2 Enterprise ESD | ¥127,680 (税込) | ¥127,680 (税込) | ¥128,000 (税込) | ¥134,400 (税込) | ¥127,680 (税込) |
C++Builder XE2 Architect ESD | ¥223,440 (税込) | ¥223,440 (税込) | ¥224,000 (税込) | ¥235,200 (税込) | ¥223,440 (税込) |
RAD Studio XE2 Professional ESD | ¥69,825 (税込) | ¥69,825 (税込) | ¥70,000 (税込) | ¥73,500 (税込) | ¥69,825 (税込) |
RAD Studio XE2 Enterprise ESD | ¥175,560 (税込) | ¥175,560 (税込) | ¥176,000 (税込) | ¥184,800 (税込) | ¥175,560 (税込) |
RAD Studio XE2 Architect ESD | ¥271,320 (税込) | ¥271,320 (税込) | ¥272,000 (税込) | ¥285,600 (税込) | ¥271,320 (税込) |
製品 | リオス e-Shop | SEshop | 両備 e-Shop | OSJ オンライン | ComponetSource |
Delphi XE2 Professional ESD | ¥67,830 (税込) | ¥67,830 (税込) | ¥68,000 (税込) | ¥71,400 (税込) | ¥67,830 (税込) |
Delphi XE2 Enterprise ESD | ¥191,520 (税込) | ¥191,520 (税込) | ¥192,000 (税込) | ¥201,600 (税込) | ¥191,520 (税込) |
C++Builder XE2 Professional ESD | ¥67,830 (税込) | ¥67,830 (税込) | ¥68,000 (税込) | ¥71,400 (税込) | ¥67,830 (税込) |
C++Builder XE2 Enterprise ESD | ¥191,520 (税込) | ¥191,520 (税込) | ¥192,000 (税込) | ¥201,600 (税込) | ¥191,520 (税込) |
RAD Studio XE2 Professional ESD | ¥119,700 (税込) | ¥119,700 (税込) | ¥120,000 (税込) | ¥126,000 (税込) | ¥119,700 (税込) |
RAD Studio XE2 Enterprise ESD | ¥271,320 (税込) | ¥271,320 (税込) | ¥272,000 (税込) | ¥285,600 (税込) | ¥271,320 (税込) |
※価格にポイント等は反映されていません。また、価格は変動する事がありますのでリンク先を必ず確かめるようにして下さい。
折角の XE2 リリース時期ですが...雑談の更新が滞りがちな事でお解りかもしれませんが、仕事の方が忙しくあまりまとまった記事を書くことができません。64bit コンパイラ関連の記事を一つくらいは書きたいのですが...。
・
Delphi の Tips
トライアル版やDocWiki から知り得る情報なので、以下の Tips を公開します。
新しいリモートデバッガは IDE とシームレスに連動するようになっており、ネイティブデバッグ/リモートデバッグを意識しないで済むようになっています。「64bit アプリをデバッグしようとしたらブレークポイントで止まらない!バグだ!」と騒ぐ前に、慌てず騒がず、まずはリモートデバッガの使い方をマスターしましょう。
ハイ、嘘書いてました。私の環境がおかしくなっていただけのようです。リモートデバッグ関連の記事は修正しておきました m(_ _)m
・
TEncoding (Delphi XE2)
従来ですと、
|
このようにエンコーディングの指定には数値 (コードページ) または "CP_" で始まるコードページ定数を利用する必要がありましたが、XE2 では
|
XE2 では TEncoding.GetEncoding に文字列での指定を行う事が可能になりました。totonica さんが出していた QC#62729 と同じだったりします。指定できるコードページ文字列は Code Page Identifiers (MSDN) で確認する事ができます。
また、TEncoding.Default というプロパティがありますが、これは OS デフォルトの ANSI コードページの TEncoding を返します (2010 で追加されたプロパティのようです。2009 だと TEncoding.GetEncoding(0) に相当します)。ターゲットプラットフォームが Mac OSX の場合、TEncoding.Default は TUTF8Encoding を返します。
(注) 当初「TEncoding.Default は XE2 で新設された」 という記述になっていましたが、誤りなので訂正しておきます。
・
ターゲットプラットフォーム (Delphi XE2)
ターゲットプラットフォームには
プラットフォーム | 32ビット Windows | 64ビット Windows | OS X |
VCL フォーム アプリケーション | ○ | ○ | × |
FireMonkey HD アプリケーション | ○ | ○ | ○ |
コンソール アプリケーション | ○ | ○ | ○ |
VCL フォーム アプリケーションは Mac OSX 用にターゲットプラットフォームを追加できませんが、コンソールアプリケーションには Mac OSX を指定する事が可能です。
・
*.rsm ファイルについて (Delphi XE2)
ターゲットプラットフォームに "64ビット Windows" を指定してコンパイルすると <プロジェクト名>.rsm というのができると思います。これは PAServer のデバッグシンボルファイルです。
昨日の雑談で書いた、"32bit デバッグプロセスは 32bit アプリケーションに、64bit デバッグプロセスは 64bit アプリケーションにしか対応できません。" というのは間違いという訳ではありません (記事に書いた "振る舞い" は完全に間違っていますが)。IDE が 32bit である以上、64bit アプリに対してデバッグプロセスを開始する事はできないのは事実です。
では、実際にはどうなっているのかと言えば、ローカルで IDE と 64bit デバッガ (dbkw64_16_0.exe) で通信しながらデバッグプロセスを確立しているようです。つまり、
...のようになっています。リモートデバッガを使う場合には、
このようになります。プロジェクトオプションを確認してみると、64bit アプリケーションの "Debug 構成" にはデフォルトで "リモートデバッグシンボルを含める" にチェックが入っていますが、試しにこれを外してビルドするとブレークポイントで止まらなくると思います (以前に生成された *.rsm が残っていない限り)。
つまりは、"64bit アプリのデバッグにはローカルであってもリモートデバッガを使う" というのは半分正解で半分間違いという事です。この辺りを意識しないで済むようになっているのは地味に有り難いですね。
・
IBX (Delphi XE2)
XE2 の IBX では Firebird に接続できません。 動作します。それどころか 64bit でも動作します。詳細は 09/09 の雑談にあります。
IBDatabase.TIBDatabase.ServerType 絡みの変更により、ターゲットプラットフォームが 32bit であっても正常動作しないようです...正直、ちょっと勿体無い気がします。コアロジックは殆ど修正がないんですよねぇ...なのに。あぁ、それなのに。IBX 自体は MacOSX (FireMonkey) でも動作するというのに...。
XE2 で Firebird に接続したいのであれば、"素直に Ent 以上の SKU を選択して DBX4 接続をする" か、"サードパーティ製のネイティブ接続コンポーネントを利用する" 方がいいと思います。とはいえ、現時点では 64bit に対応したサードパーティ製ネイティブ接続コンポーネントはリリースされていないようですので、64bit アプリケーション開発を行うのなら DBX4 一択かもしれません。
なお、今回の変更で古い Interbase にも接続できなくなっている気がしないでもないですが、残念ながら未確認です。IBX で Firebird に接続できなくなってしまった今、"BDE (Paradox / dBASE) 代替 としてのローカル DB" をいい加減にどうにかして欲しいのですが...>エンバカさん。
・
Delphi の Tips
XE2 に合わせて内容を修正中です。
・
Feature Matrix (Delphi XE2)
DocWiki と併せて読めば新機能や変更点が理解できると思います...それにしても、Feature Matrix にある Ultimate SKU の情報は出ないのだろうか?つーか、例によって日本では発売されないのだろうか?それと、XE2 の Starter SKU は 64bit とクラスプラットフォームの機能がオミットされているようです。FireMonkey は有効ですが。
XE2 の大まかな情報はあちこちで出ていますので、当方としては実際に触ってみて判明した情報を地道に発信したいと思います。盆と正月が一緒に来ちゃった状態なので、"1 日 1 Tips" では絶対に紹介しきれない気がしますケドね。
・
XE2 関連のニュースソース
イロイロ出ています。
・
Delphi Launcher ver 2.70
リリースしました。Delphi XE2 対応版です。
・
過去のバージョンの製品 (Delphi XE2)
「XE の IBX ソースを...って言うけど、XE なんて持ってねぇよ!!」 と仰る方、もう一度インストールノートをよく確認してみましょう。そこにはこう書かれているハズです。
ライセンスには次に示す以前の製品バージョンが含まれ、それらをダウンロードして使用できます。
|
XE と同様、XE2 でも過去のバージョンが入手できます。XE2 ユーザは自動的に XE / 2010 / 2009 / 2007 / 7 ユーザでもあるのです。え?古いバージョン要らない?パッケージを削りまくって "ワーク用高性能エディタ" として使うというテもありますよ..."Embarcadero BRIEF" なんてね (^^;A
・
System.Zip (Delphi XE2)
XE2 で追加された System.Zip.TZipFile の使い方を Delphi の Tips に追加しておきました。
・
クラシックスタイル IDE (Delphi XE2)
未だに勘違い...というか誤解してらっしゃる方がいますが、現行の Delphi の IDE は Delphi 7 までの旧 IDE 相当の見た目にする事が可能です。
具体的な設定方法は "119.ガリレオ IDE を旧 IDE 相当のレイアウトにするには (Delphi 2010 以降)" を参照して下さい。
XE2 での注意点としては、FireMonkey アプリケーションの場合には "埋め込みデザイナ" でないとフォームを操作できないという事です。この制限については リリースノート にも記載があります。
・
IDE のブラウザを IE9 にする (Delphi XE2)
過去にやったネタですが、
|
これをやっておくと、IDE のブラウザが IE9 になります。
IE コンポのバージョンを確認するには http://www.useragentstring.com/ へアクセスします。
・
ウィルス対策ソフト対策 (Delphi XE2)
以前、XE でフォームに何も貼り付けないでコンパイルしたものを各種ウィルス対策ソフトに食わせてみた事があります。結果はこうでした。
さらに上記 EXE にバージョン情報だけ付けて再コンパイルしたものを、各種ウィルス対策ソフトに食わせてみました。結果はこうでした。
明らかに誤検知なのですが、バージョン情報を付加するだけで誤検知の確率が下がる事も判明しています。XE2 ではデフォルトでバージョン情報が付くようになりました。
複数のウィルス対策ソフトに食わせてみて誤検知かどうかを判断する方法については過去の雑談を参考にして下さい。
・
32bit アプリケーションを 64bit アプリケーションへマイグレーション (Delphi XE2)
とりあえず、変数の型の置換からでしょう。詳細は "64 ビット データ型と 32 ビット データ型の比較" を参照して下さい。基本的に、ポインタを Integer でキャストしている箇所を NativeInt / NativeUInt に変更すれば大抵の 32bit アプリケーションは 64bit アプリケーションにマイグレーションできます...そりゃもう、拍子抜けする程に。
むしろ厄介なのはインラインアセンブラで記述されている箇所です。海外製コンポーネントにはインラインアセンブラを多用しているものが多くありますが、これをどうにかしないと本当にどうしようもありません。
基本的には "32 ビット Delphi アプリケーションの 64 ビット Windows への変換" に書かれていることがすべてです...あ、それと過去の雑談でも書いていますが、64bit 環境では Microsoft.Jet.OLEDB.4.0 は使えません。Delphi の制限ではないので苦情は Microsoft さんにお願い致します。Jet を使って Access を読み込んでいたり、Excel / CSV を処理していたりする場合には注意が必要です。
32bit DLL を 64bit アプリケーションから使う (またはその逆) 方法については "127.64 ビット Windows プログラミング ガイド for Delphi 64 ビット コンパイラ" を参照して下さい。
・
浮動小数点用レコード (Delphi XE2)
浮動小数点変数を操作するためのレコードが追加されています。以下のソースは DocWiki からの抜粋です。
|
こういう事ができるようになりました...いや、もういっそ ToString() とかも実装してくれればいいのに (w
注意点としては、OS (CPU) によって Extended の扱いに違いがあるという事です。
CPU | TSingleRec | TDoubleRec | TExtended80Rec | TExtendedRec |
32bit | TSingleRec | TDoubleRec | TExtended80Rec | TExtended80Rec |
64bit | TDoubleRec |
なんでこういう事になっているのかと言うと、32bit と 64bit で Extended のサイズが違うからです。また、64bit 環境で Extended80 を使う事は可能ですが、あくまでデータサイズだけの話で演算精度が向上する訳ではありません。詳しくは DocWiki の "64 ビット Windows システムでは Extended データ型のサイズは 2 バイト小さい" を参照して下さい。
・
SkRegExp 1.2.6 (XE2 対応版)
リリースされました。100% Delphi で記述された、日本語に対応した正規表現クラスライブラリです。詳細については "120.正規表現の活用 (主に Delphi 2009 以降)" をどうぞ。そういえば、Delphi 標準正規表現クラスにあった QC#87752 の件は XE2 で解決されたようです。
・
PascalScript (Delphi XE2)
当サイトの PPA の話ではなくてですね...FastScript というタブが XE2 にはありまして。FastScript は FastReports の機能の一部なのですが、単体で使う事も可能です。
|
FastScript のスクリプトエンジンは Pascal 以外にも切り替えることができます。
・
LiveBindings - VCL (Delphi XE2)
デーダバインダ&O/R マッパ...のようなものです。正直、使い所が難しいと思いますので、詳細な紹介は保留する事にします。
・
"BDE (Paradox / dBASE) 代替 としてのローカル DB" をいい加減にどうにかして欲しい...の件
だって、BDE (Paradox / dBASE) じゃ Unicode 通らないし、64bit アプリケーションには使えない。MyBase じゃ SQL 使えないので、Paradox / dBASE の完全な代替にはならないですもの。BDE にあった "ローカル SQL" が TClientDataset で使えると有り難いのですけれど、MyBase ではテーブル名に相当するものがないので SQL での問い合わせは無理かな...やっぱり。
BlackFish SQL は Delphi XE で非サポートになったし、XE2 で DBX4 の ODBC ドライバがサポートされたけど Ent 以上だし。dbGo は 64bit でも Pro でもイケるけど、当然 Mac OSX には対応しないし...なんだか無性に IBX で Firebird 接続できるようにしたくなってきた。
・
Starter と Ultimate (Delphi XE2)
既に購入できるようです。いずれもパッケージ版はない模様。
製品 | リオス e-Shop | SEshop | 両備 e-Shop | OSJ オンライン | ComponetSource |
Delphi XE2 Starter | ¥17,955 (税込) | ¥18,900 (税込) | ¥18,000 (税込) | ¥18,900 (税込) | ¥17,955 (税込) |
Delphi XE2 Ultimate | ¥355,110 (税込) | ¥355,110 (税込) | ¥356,000 (税込) | - | ¥355,110 (税込) |
C++Builder XE2 Starter | ¥17,955 (税込) | ¥18,900 (税込) | ¥18,000 (税込) | ¥18,900 (税込) | ¥17,955 (税込) |
C++Builder XE2 Ultimate | ¥355,110 (税込) | ¥355,110 (税込) | ¥356,000 (税込) | - | ¥355,110 (税込) |
RAD Studio XE2 Ultimate | ¥454,860 (税込) | ¥454,860 (税込) | ¥456,000 (税込) | - | ¥454,860 (税込) |
製品 | リオス e-Shop | SEshop | 両備 e-Shop | OSJ オンライン | ComponetSource |
Delphi XE2 Starter | ¥13,965 (税込) | ¥14,700 (税込) | ¥14,000 (税込) | ¥14,700 (税込) | ¥13,965 (税込) |
Delphi XE2 Ultimate | ¥235,410 (税込) | ¥235,410 (税込) | ¥236,000 (税込) | - | ¥235,410 (税込) |
C++Builder XE2 Starter | ¥13,965 (税込) | ¥14,700 (税込) | ¥14,000 (税込) | ¥14,700 (税込) | ¥13,965 (税込) |
C++Builder XE2 Ultimate | ¥235,410 (税込) | ¥235,410 (税込) | ¥236,000 (税込) | - | ¥235,410 (税込) |
RAD Studio XE2 Ultimate | ¥295,260 (税込) | ¥295,260 (税込) | ¥296,000 (税込) | - | ¥295,260 (税込) |
※価格にポイント等は反映されていません。また、価格は変動する事がありますのでリンク先を必ず確かめるようにして下さい。
Starter Edition の制限については XE の Starter Edition の制限に準拠しているものと思われます。
各 SKU の違いについては RAD Studio XE2 機能一覧 を参照して下さい。Starter と Professional の違いについては "「RAD Studio XE2 機能一覧」でProfessionalとStarterを比較してみる (山本隆の開発日誌)" にて詳しい解説がなされています。
キャンペーンの価格表については、
・
Delphi XE2 発売後の各地の反応 - togetter (Delphi XE2)
twitter やってない方のために。
なお、この togetter に "ハエトリグモの話" は含まれておりません。
・
カスタムマニフェスト (Delphi XE2)
XE2 ではプロジェクトオプションでカスタムマニフェストを指定する事が可能です。
マニフェストは XML 形式の UTF-8 テキストファイルです。拡張子は.manifest となります。マニフェストファイルは XP 対応の時に "21.WindowsXP 対応アプリを作る" でやりましたっけね。Vista 以降の UAC 対策でも *.manifest を使います。
・
スタイル - VCL (Delphi XE2)
VCL フォームアプリケーションでは、以下のテーマを設定する事ができます。一応、断っておきますが、画像は FireMonkey のものではありません。
動的にスタイルを変更したいのなら、プロジェクトオプションで変更可能なスタイルにチェックを入れ、
|
このようなコードを記述するだけです。また、スタイルは独自に定義する事ができます。$(BDS)\VclStyleDesigner.exe (IDE の [ツール] から呼び出せます) を使えば...
自分専用のスタイルをデザインする事ができます。詳細なデザイン方法は "Creating a Style using the VCL Style Designer" を参考にして下さい。個人的には TTouchKeyboard 用のエディタも欲しい所ですが...。
・
Embarcadero 第 20 回デベロッパーキャンプ
本日開催 (10:00~18:00)。残念な事に今回は Web 参加ができませんが、一部セッションは Ustream にて配信されます。twitter のハッシュタグは #dcamp_jp です。
Ustream の twitter は #dcamp_jp と連動してないのか。んじゃ、やっつけページでも作っておくか。
Ustream で観れたのは 【G1】/【G2】/【B4】(途中から)/【A5】/【G6】でした...仕事しながらですが。
【G6】セッションのライトニングトークは
全体的な感想としては、「XE2 の新機能が多すぎて詰め込み気味」というのが正直な感想でした。まぁ、このサイトの情報も未だ FireMonkey まで到達していない状況だし (RTL / VCL 部分だけでも結構お腹いっぱい)、仕方のないトコロでしょうね...ただ、新機能が多いとは言っても、「2005 とは違うのだよ、2005 とは!」 的な意味なので、会場は大いに盛り上がったのではないかと思います。
...やっつけページ が思いのほか役に立ったな (個人的には)。次の機会でも使いまわす事にしよう (w
・
各製品の概要 (XE2)
やっとこさ日本語情報をまとめて読めるようになりました (個別には RSS で情報が流れていたのですが...)。
・
ユニットスコープ (Delphi XE2)
当サイトでは泥臭く地道にやります。まだ VCL / RTL はすべて終わっていません。
さて、ユニットスコープですが、名前空間とは違い、文字通り "ユニットのスコープ" となっています。
"ユニットスコープ.名前空間" のようになります。従来の SysUtils 名前空間は、プレフィクスとしてユニットスコープ名が付き、System.SysUtils となります。既存の Delphi のプロジェクトを XE2 に読み込ませても、ユニットスコープの問題はまず起きません (後述します)。ユニットスコープはユニット名の衝突を防ぐという意味より、マルチプラットフォーム / マルチフレームワークにおけるユニットの管理を正しく行う (混乱を防ぐ) という意味合いが強いと思います。ユニットのスコープを設定する事により、IDE / コンパイラ / リンカが現在のプラットフォーム / フレームワークに不要なユニットを検索せずに済むという利点があります。
反面、独自に作成したライブラリユニットや VCL には適切なスコープを設定 (レジストリに追加します) してやらないと、コンパイル時間が長くなる事があります。まぁ..."事がある" というだけなので、大規模なコンポーネント群でもない限りはユニットスコープの登録は不要でしょうが。
プロジェクトオプションには最初から適切なユニットスコープが登録されています。
XE だとここには "デフォルト名前空間" と "名前空間プレフィックス" がありましたね...デフォルトでは空でしたが。
例えば、従来の GIFImg.pas は Vcl.Imaging.GIFImg.pas というファイル名で、"Vcl.Imaging (ユニットスコープ名)"、"GIFImg (名前空間)" なのですが、
|
Vcl.Imaging というユニットスコープが効いているので、"GIFImg" だけ uses してもコンパイルは通ります (ユニットスコープ名を明示的に指定した方がいいのは言うまでもありませんが)。つまりは、もはや "uses = ユニットファイル名の指定" ではない という事になります。
従来のユニット名 (名前空間) からユニットスコープ名付きの名前空間を調べるには、DocWiki 内を検索してもいいのですが、"Delphi / RAD Studio XE2 Unit Scope Helper (Drs.Bob's Delphi Notes)" を使うのが簡単でいいと思います。
とりあえずは、あまりユニットスコープを意識しない方がいいでしょう。問題が出たら 「あぁ、そういえばユニットスコープなんてのがあったな」 と思い出せる程度でいいかと。欲を言えば、IDE の補完機能で Vcl. と入力したらユニットスコープ名またはユニット (名前空間) の候補が出てくれたらなぁ...とは思います。
・
第20回エンバカデロ・デベロッパーキャンプ - togetter (XE2)
昨日のデブキャンの togetter です。
twitter やってない方のために。
・
昨日のライトニングトークの感想
記憶に残っているうちに書いておきます。ライトニングトークは 5 分間で、1 分前に小さなドラが鳴り、5 分のドラがなったら強制終了というルールで行われます。
・
Prism (XE2)
デブキャンでは FireMonkey のクラスプラットフォームや RadPHP の話がメインでしたが、「Prism はどうなった?」 という疑問が頭をもたげるかと思います。あ、"Delphi" の冠が外れたのは Prism の言語を "Oxygene 言語" としたため、Delphi の "Delphi 言語" と区別するようになったからだとか (詳しくは Prism XE2 Q&A を参照)。
話が逸れてしまいましたが、端的に言えば Prism XE2 は Delphi Prism XE からある意味デグレードとなっています。Prism XE2 Q&A には以下の記述があります。
XE2では、Visual Studio IDEのバージョン2008のサポートを終了しました。また、Prism XE2には、MonoDevelop IDEも含まれておらず、このサポートも終了しています。旧バージョンのDelphi Prism XEをお持ちの方は、そのバージョンに含まれるOxygeneコンパイラを使って、MonoDevelop IDEを利用できます。Delphi Prismでは、MonoDevelop IDEとノベル社のMonoTouchを使って、iOSアプリケーションの開発もサポートしていました。この機能も現在ではサポートされていません。iOSアプリケーションの開発を行うには、Delphi XE2またはRadPHP XE2のご利用をお勧めします。 |
.NET フレームワーク (Mono を含む) によるクロスプラットフォーム開発は一歩後退といった所です...とはいえ XE2 を購入すれば、結局 XE も手に入るのですがね。
・
Starter Edition の制約 (XE2)
昨日のデブキャン中に twitter で 「そういや、XE2 Starter の制限は XE 準拠?」 とつぶやいてしまったのですが、ソフトウェア使用許諾およびサポート契約書 にバッチリ書いてありました。
Starter エディションに適用される追加条項 お客様が Starter エディションのライセンスを取得された場合には、以下の条項が適用されます。第 2 条第 1 項の権利付与と矛盾する範囲においては、この条項が優先するものとします。 お客様は本製品を使用して、 (i)お客様が直接または間接に料金を請求せず、ライセンス料金、サービス料金、開発料金、コンサルティング料金、サブスクリプション料金、サポート料金、ホスト設定料金などの報酬を受け取らないソフトウェア。 および、 (ii)お客様が請求する料金(ライセンス料金、サービス料金、開発料金、コンサルティング料金、サブスクリプション料金、サポート料金、ホスト設定料金など)が年間の累積で 1000 US ドルを超えないソフトウェア。 を開発することができます。 企業(営利か非営利かを問いません)がソフトウェアの使用権を付与する場合には、 (i)企業全体の収益が 1000 US ドルを超えてはならず、 (ii)配置する Starter エディション ライセンスの総数が 5 ライセンスを超えてはなりません。 |
結論から言うと XE 準拠でした...資料にはちゃんと目を通さないとダメですね (原文は若干読みにくいので、句読点と改行位置を変更してあります)。その他の制限や、アップグレード対象製品についても XE 準拠だと思われますが、購入を考えている方は念の為にエンバカさんへご確認下さい。
・
SkRegExp 1.3.0 (XE2 対応版)
リリースされました。100% Delphi で記述された、日本語に対応した正規表現クラスライブラリです。詳細については "120.正規表現の活用 (主に Delphi 2009 以降)" をどうぞ。そういえば、Delphi 標準正規表現クラスにあった QC#93333 の件も XE2 で解決されたようです。
・
XE2 絡みの今日の雑談
...はお休みします。全然ネタ切れではないのです (むしろありすぎて困っているくらいです) が、明日が隣県へプチ出張なので、未だにバタバタしております...今日もこのまま徹夜だな。
・
XE2 で IBX + Firebird は本当に動作しないのか? (Delphi XE2)
Delphi Q&A の igy さん情報によると、IBX + Firebird の接続に成功しているとの事。しかも 32bit はおろか、64bit にまで!
さーて、俄然やる気が出てきました。動く環境とそうでない環境の違いがありそうなので、ちゃんと調べてみたいと思います。Mac までイケたら最高なんですがね (IBX は Mac OSX / POSIX 対応で、Starter にも付属しています)。
・
続・XE2 で IBX + Firebird は本当に動作しないのか? (Delphi XE2)
バッチリ動きます。64bit での動作も確認しました (32bit / 64bit 共に、Firebird 2.1 / 2.5 で確認)。
・
DB 接続状況 (Delphi XE2)
機能一覧を元にまとめてみました。
製品 | BDE (dBASE / Paradox) |
MyBase (TClientDataset) |
dbGo (ADO Express) |
IBX (Interbase Express) |
DBX4 (dbExpress) |
||||||||||
Win32 | Win64 | MacOSX | Win32 | Win64 | MacOSX | Win32 | Win64 | MacOSX | Win32 | Win64 | MacOSX | Win32 | Win64 | MacOSX | |
Starter | ○ | - | - | × | - | - | × | - | - | ○ | - | - | ○ Interbase ローカル接続 |
- | - |
Professional | ○ | × | × | ○ | ○ | ○ | ○ | ○ | × | ○ | ○ | ○ | ○ Interbase, MySQL ローカル接続 |
○ Interbase, MySQL ローカル接続 |
○ Interbase, MySQL ローカル接続 |
Enterprise 以上 | ○ | × | × | ○ | ○ | ○ | ○ | ○ | × | ○ | ○ | ○ | ○ リモート接続可 |
○ リモート接続可 |
○ リモート接続可 |
誤解していましたが、XE2 の Starter には DBX4 があるのですね...ローカル Interbase 接続のみですが。ちなみに、XE の Starter に DBX4 はありません。
・
TDataModule (Delphi XE2)
ran さんの twitter ネタです。元ネタは "TDataModule has changed in XE2 (jed-software.com)" となっています。
要は、TDatamodule の ClassGroup プロパティ (厳密にはプロパティではないと思う) の初期値が System.Classes.TPersistent になっていて、例えば VCL フォームアプリケーションを作った場合、ここを "Vcl.Controls.TControl" に変更しないと ImageList とかが載せられないというものです。
ClassGroup | プラットフォーム |
System.Classes.TPersistent | クロスプラットフォーム用 |
Vcl.Controls.TControl | VCL フォームアプリケーション用 |
FMX.Types.TControl | FireMonkey アプリケーション用 |
FMX_Types.TControl | FireMonkey iOS アプリケーション用 |
VCL フォームアプリケーションを新規作成した時点の ClassGroup の初期値はクロスプラットフォーム用なので、FireMonkey に存在しない ImageList とかが載せられないという事態に陥ります。
では、既存のプロジェクトを読み込ませた場合にどうなるかというと、"ClassGroup プロパティは空になりますが、コンパイルはそのまま通ります"...なお、新規でプロジェクトを作成した場合にはここを空にする事はできません。トラブルを避けるため、既存のプロジェクトを読み込ませた場合には ClassGroup を "Vcl.Controls.TControl" に設定しておいた方がいいかもしれませんね。
ClassGroup を変更してもツールパレットやコンポーネントツールバーが変わらない?そんな時には一旦他のフォームを選択してから DataModule を選択してみましょう。
・
9.11
あれから 10 年か...。
・
TOSVersion レコード (Delphi XE2)
XE2 には OS の情報を得るための SysUtils.TOSVersion が用意されています。
|
このコードを Windows 7 (64bit) で実行した結果はこうなります。
|
Check() クラスメソッドは指定した OS のバージョン以降かどうかを調べます。従来からあった SysUtils.CheckWin32Version() と同等のメソッドですが、サービスパックの指定が可能となっています (オーバーロードされた引数の数の違うクラスメソッドがあります)。
その他のクラスメソッドは...みたまんまですね。レコードのクラスメソッドなので、TOSVersion を Create する必要はありません。
Windows で実行した場合、"22.Windows のバージョンを本格的に判断する" のようなエディションの違い等は取得できませんが、マルチプラットフォーム用と考えるとこの程度の情報で充分だと思われます。
TOSVersion.Platform を使った分岐コードは書くべきではないと思います。(プラットフォーム) OS が異なるのですから、{$IFDEF} を使って条件コンパイルをすべきでしょう。
・
x64 デバッガとブレークポイント (XE2)
もう一度だけ要点を。09/02 の雑談に加えて書いてみると...
・
Delphi の QC (XE2)
現在の状況はこのようになっています > http://qc.embarcadero.com/wc/qcmain.aspx?search=1&proj=10&vers=16.0。なお、Pulsar-FT 期間内に入れられた FT-QC (青 QC) は FT 参加者にしか見えません。
一昨日の雑談で書いた (ツールパレットがリアルタイムで更新されない) 件は QC#98743 です。先日来、twitter で話が上がってた Platform.GetTick() の件は QC#98747 です。XE2 関連のバグを見つけたら今のうちに QC に入れておきましょう。Update1 に間にあう (修正される) かもしれません。
・
QC#98747 - Platform.GetTick() について (XE2)
問題を発見したのは "全力わはー" の中の人で、2011/09/12 のエントリー内で日本語による詳細を書いてらっしゃいます。
要は 「長い間起動した PC で Platform.GetTick() を使うと精度が落ちる場合があるため、アニメーション処理等には使えない」 というものです。これは Windows 版の実装が timeGetTime() API を呼んでいるのに、戻り値の型が Single なために起こります。
Mac の実装だと、精度は落ちますが Windows 版の実装程ではありません。time (現在時刻) を基準としているからです...が、Mac の実装は Mac の実装で問題があるような気がします。詳しくは QC のコメ欄を参照して下さい。
追記: Windows 版の実装では timeGetTime() API を使っているので、49.71 日に 1 回は Mac の問題と同じ現象が起きます。休止状態とかを多用するノート PC では有り得るかも。
・
Delphi XE2 と C++Builder XE2 で修正された不具合一覧 (XE2)
どこかで見たような QC も混じっています。
・
FireMonkey とスレート PC (XE2)
数カ月前からスレート PC のプログラミングをやっていますが、FireMonkey の話を初めて聞いた時、「遅ェよ...orz」 と思ったのも事実です。
スレート PC プログラミング で厄介なのは画面の解像度の問題です。"UI の最小サイズを試算する" で書いたように、高 DPI プログラミングはかなり面倒です。確かに従来の Delphi でも Scale (ChangeScale) によるコントロールサイズ変更は可能でした。しかしながら、やってみた方はご存知かと思いますがフォントサイズが適切なものにならない事が多く、Scale を使ったとしても追加のコードを書く必要がありました...キリのいい拡大/縮小ならいいんですけどね。実際にはディスプレイには様々な比率のものがあるのです (縦横比ではなく、A と B のディスプレイの縦なら縦の解像度の比率です)。
FireMonkey でも VCL の Scale のようなものがあります。デモプログラムを見てみましょう (FireMonkey\ControlsDemo)。
右下にスライダーがありますね?これを動かしてみると...
このように破綻なく拡大できます。ちなみに、StringGrid のセルの高さや幅も追従します。VCL の StringGrid はScale を変えてもセルの高さや幅は追従しなかったですよね?
画面の回転についてもそうです。ハードウェアによる画面の回転は 90°単位でしか行えず、切り替えるのに時間が掛かります。しかし、画面を回転せずにアプリケーションで描画方向を変えるのは相当な手間が掛かります。入力コントロールとかがある場合には特にです...ですが、
FireMonkey では入力コントロールを任意の角度にする事すら可能です。画像のように回転した状態で入力する事も可能です。
以前の雑談で、「FireMonkey は最小公倍数的なクロスプラットフォーム用フレームワークだけではない」 と書きましたが、上記のような理由からでした。Starter Edition では FireMonkey が Windows 専用にしか使えませんが、それはそれで価値があるのです。
...と、もう少し早い時期にこの雑談を書いていればよかったのですが、現時点ではやや新鮮味に欠けちゃいますね。
・
FireMonkey と GDI+ と Direct2D (XE2)
FireMonkey アプリケーションはコントロールの描画に GDI+ / Direct2D / DirectX (3D 関係)、MacOSX / iOS なら Quartz / OpenGL (3D 関係) を使っています。
以前作った "スレート PC 用画像ビューア" は、煮詰まる前の段階では "/UseD2D" とか "/UseGDI+" とかのオプションを持っていました。環境に合わせて最適なレンダリング方法を模索するためでした (アップされているものは GDI 強制です)。Windows での FireMonkey HD アプリケーションも同じような感じで、D2D に対応していなければ GDI+ で描画するようになっています。
...でもですね、Windows の場合にはちょっとしたジレンマがあるのです。描画速度は "GDI > D2D > GDI+" で、描画のキレイさは "D2D ≧ GDI+ > GDI" なんです。高性能な PC では D2D が使えます。でも、D2D は Vista 以降でしか使えません...となると、XP では GDI+ を使う事になる訳ですが、アニメーション系だと結構動きがもっさりします。ネットブックのような環境でこそ、高速に動作して欲しいトコロですが、XP では "VCL アプリケーション + Graphics32" の方がキレイで高速に動作すると思います (Scale とかの話は抜きにして)。
XP で動作している FireMonkey アプリケーションをリモートデスクトップ経由で操作する事はできない (Vista 以降なら OK) という制限もありますし、FireMonkey アプリケーションを走らせるなら Vista 以降がいいと思います。あ、ちなみに TW317A5 では D2D が使えます...ただ、大きめの画像を D2D で扱うとコケてました (FireMonkey アプリケーションではありません)。
・
FireMonkey と Windows Animation Manager と DTween (XE2)
FireMonkey の FMX.Ani 名前空間にはコントロールをアニメーションさせるためのクラスが用意されています。従来でも、Vista 以降なら Windows Animation Manager が Windows 標準の機能として使えました。これを Delphi から使えるようにしたのが "Windows Animation Library for Delphi" です。このライブラリを試してみた時点 (最近は試してません) では、結構エラーダイアログを拝んだ気がしますケドね...(^^;A
らいなタン(毎回、""全力わはー" の中の人" と呼ぶのは面倒だ ^^;) 作の DTween は前記の 2 つと同じような機能を持つトゥイーンライブラリです。VCL をアニメーションさせる事ができます。このテの機能はグダグダ書くより、動画を見てもらったほうがいいでしょうね。
"Flash のモーショントゥイーンみたいなもの" と書いた方が覚えがいいかもですね。VCL をウニウニできるのはとても魅力的です。前のトピックでも書きましたが、環境によっては FireMonkey アプリケーションを選択できない場合があるからです。どうでもいいけど、"さかなクンさん" と同じように、"らいなタンさん" と呼ぶべきなのかな?
...動画と言えば、エンバカさんの Youtube Channel があるのでしたね。こちらにも FireMonkey 関連の動画がありますので、是非御覧ください。
・
FireMonkey で 空文字列を ShowMessage() すると?(XE2)
twitter からのネタです。ShowMessage() に空文字列を指定すると画面サイズの半分の幅のダイアログが表示されます (MacOSX では発生しないとの事)。これを暫定的に回避するには、らいなタンさん作の FMXCanvasFix を uses します。
・
FireMonkey で 日付文字列を ShowMessage() すると?(XE2)
こちらも twitter からのネタです。コードはこんな感じです。
|
描画に GDI+ が使われる場合、上記コードで指定した日付文字列は正しく描画されません。大抵は余分な空白を末尾に付けてやれば回避できると思います。
TLabel にも似たような問題があります...というか、ShowMessage() では TLabel が使われています。
|
Label1 の幅を Label2 に設定したので、どちらも表示は同じになるハズですが...?
上記 2 件の問題は QC に入れる必要はないような気がします...私が QC 番号を明示しない場合、理由は推して知るべし、です。
・
FireMonkey には DB コントロールがないのか?(XE2)
こちらはフォーラムネタです。DB コントロールの代替は LiveBinding で実装します。
まずは、"LiveBinding を使用してコードを書かずにアプリケーションを作成する" を動くようにしてみて下さい。動くようにできれば DBEdit 等の代替方法は理解できたと思います。DBGrid の代替は、
・
バージョン情報とビルド番号 (XE2)
もう一つフォーラムネタです。"(プロジェクトオプションの) ビルド番号が自動でインクリメントされない" というものです。この件は QC#98487 (の重複) で、既に Closed になっています。
|
"ビルド番号の自動生成" の時のリリース番号 / ビルド番号は...
・
バージョン情報とロケール (XE2)
フォーラムネタです。何故かバージョン情報リソースのロケールが英語になったままです。BDSSetLang.exe で切り替えても何も起こりません。コントロールパネルで "地域と言語のオプション" を変更しても変化しません。この件に関しては...推して知るべし。
・
バージョン情報と *.vrc (XE2)
フォーラムネタ関連です。XE2 では *.vrc というファイルが生成される事があります。これはバージョン情報等のリソース用ファイルです。
この *.vrc はテンポラリ的に生成される事があります。例えば、バージョン情報の "製品バージョン" に "1.0.0.b" のように入力すると、先程まで存在しなかった *.vrc がコンパイルエラーで止まると思います...鋭い方はお気付きかもしれませんが、従来の Delphi では "製品バージョン" に任意の文字列を入力できていました。*.vrc のコンパイルエラーで止まったら、まずはバージョン情報を確認してみて下さい。
・
ハエトリグモの話
twitter ネタ。この雑談でやるのを忘れてた。
・
第20回 エンバカデロ・デベロッパーキャンプ - セッション資料ダウンロード
Dear David.I > m(_ _)m m(_ _)m m(_ _)m m(_ _)m m(_ _)m m(_ _)m m(_ _)m m(_ _)m m(_ _)m m(_ _)m だから、LT の資料を下さい (w
※ Tips の方も更新しました。
・
FireMonkey HD アプリケーション - LiveBinding を使用して "DBGrid みたいなもの" を作ってみる (XE2)
"FireMonkey には DB コントロールがないのか?" は、あまりにもぶっきらぼうだったので、ちょっとだけ丁寧に。手順は MyBase です。
・
各地の XE2 情報 (XE2)
XE2 は良くも悪くも変更/追加された機能が多く、機能を調べるだけで一苦労です。特に FireMonkey は皆が同じスタートラインからのヨーイドンなので、昔からの Delphi ユーザにアドバンテージがある訳ではありません (多少の勘所はあるにせよ)。
"言い訳じみてくると何かの前フリ" ってのはこの雑談の伝統なのですが、まとまってない情報を書くと後で訂正するハメになりますので、ここはとりあえず "他の XE2 ユーザの情報" を紹介する事にします...あ、逃げやがった (w
・
社内用 iOS アプリの配布に必要なもの (XE2)
やまぎぅさんに教えて頂きました。多謝。
DUNS番号(世界標準の企業識別コード)を取得されている企業または組織団体がお申し込みいただけます。 |
...が、あるので、DUNS番号 を事前に取得しなくてはならず、その DUNS番号 の取得申請時に登記簿謄本が必要になる、と。面倒だなぁ。 自作アプリを自分で使う (検証する) だけなら、"iOS Developer Program" (年会費: \8,400) があればよく、それ以外の配布は App Store 経由となるようです。
追記: らいなタンさんより。Apple による情報ソースはこちら。
検証とAd Hoc配布用にデバイスを100台まで指定できるようになります。メンバーシップの新年度が始まる時に、チームエージェント(Team Agents)やチーム管理者(Team Admins)がデバイスを解除して、自分たちの開発チームのために使用可能なデバイスカウントを100台まで再設定できます。 |
"iOS Developer Program" でもアドホックビルドによるアドホック配布は最大 100 台可能との事です。
・
Import3DS Demo (XE2)
XE2 にはデモフォルダに Import3DS というデモプロジェクトがあります。これは Nintendo 3DS のイメージファイルを...いや、もちろん嘘だけどね。
このデモは Autodesk 3D Studio (3ds) Max の 3D モデリングデータ (*.3ds) をインポートするデモです。
こういう事ができると言えば解りやすいでしょうか?モデルデータは キオさんの "初音ミク形状データVer.1.1 (キオ式アニキャラ3D act.2)" をお借りしています。モデリングが変に見えるのは、テクスチャが正しく読み込まれていないからです。モデリングデータの "テクスチャフォルダが日本語名" なのが原因なのか、"ファイル名に空白文字が含まれている" のが原因なのかまでは調べていません。テクスチャは *.3ds に含まれているようですが、それを正しく反映していないようです。
拡張子 *.3ds のデータは "メタセコイア (シェアウェア)" でもインポート/エクスポートできるようです。初音ミク絡みで言えば、MMD のモデルもメタセコイアプラグイン経由で取り込んで *.3ds に変換できるような気がします。
デモに関する注意点ですが、光源 (ライト) の位置やカメラの位置を調整しないと *.3ds を読み込ませても真っ白のままになります。[Load...] ボタンの横にラベルを幾つか貼って、カメラや光源の位置を表示するようにしてみると位置関係が判りやすいと思います。デモプログラムにモデルデータを読み込ませて画面が真っ白の場合には、マウスホイールをどちらかの向きに回し続けてみて下さい。"ゆっくりと"、"何回も" です。
・
Import3DS Demo 関連情報 (XE2)
*.3ds を調べていた時に引っかかった情報です。
・
FireMonkey アプリケーションとアニメーション効果 (XE2)
アニメーション関係は文章で説明するのが難しいのですよね。とりあえず簡単なデモを。
アニメーション効果の概要については、DocWiki の "FireMonkey のアニメーション効果" をご覧ください。
一度設定したアニメーションを取り消すには [構造] ペインで 〔Delete〕 キーを押します。フォームデザイナやオブジェクトインスペクタから削除できないのが直感的ではないのですが、それは QC#98948 です。
・
VCL アプリケーションとアニメーション効果 (XE2)
VCL フォームアプリケーションでオブジェクトインスペクタを見ても "フィルムのようなアイコン" がありませんよね?VCL フォームアプリケーションで同様の事を行いたい場合にはコードを書かなくてはなりません。詳しくは 09/13 の雑談にある DTween を確認して下さい。DTween は XE2 専用ではなく、Delphi 6 以降で使う事ができます。
・
Human68K と SX-Window (X68000)
ボン太くんの OS が Human68K で
電話レンジ (仮) の管理用には SX-Window が使われている...と。
X68K ユーザは胸熱だな (w
・
TAnimation の派生クラスについて (XE2)
ドキュメントが追いついていませんので、ちょっと補足...つーか解説を。
・
TAnimation のプロパティ (XE2)
こちらも解説を。なお、TAnimation のプロパティの説明は英語版 DocWiki をベースにしています (日独仏版は未翻訳です)。
AnimationType と Interpolation の関係は これ または これ が参考になります (Thanks! らいなタンさん)。
AnimationType と Interpolation の動きに関しては "AttachTAnimation (DocWiki)" のデモを実際に実行してみる事をオススメします...ちょっと自信がないのですが、この手順に従ってもコンパイルできないかもしれません&スクショの通りに動かないかもしれません。やっぱりそのままでは動かないようです。
|
赤字の箇所が修正または追加されているコードです。これだとコンパイルも通り、アニメーションの際の軌跡も描画され、[ReturnRect] ボタンが押された時に各種初期化が行われるようです。
実行結果はこんな感じです。
"AttachTAnimation (DocWiki)" のサンプルコードがおかしい件は QC#99122 です。列挙型に "vg~" で始まる "定義されていない値" が説明されていたり、これが原因でコンパイルできないサンプルコードのトピックがある件は QC#99133 です。
・
AnimationType と Interpolation の関係 (XE2)
昨日の雑談の奴を TChart にプロットしたものを画像に吐き出してみました。
・
FireMonkey アプリケーションと画像効果 (XE2)
FireMonkey アプリケーションでは画像に様々なエフェクト (TEffect の派生クラス) をかける事ができます。これまた文章で説明するのは大変なので、
・
バージョン情報の件 (XE2)
ふーさんの考察 "Delphi XE2で生成される実行ファイルのバージョン情報についての問題とその解決策" は正しいようです。
*.dproj をエディタでいじらずにバージョン情報を正しく反映させるには、
上の画像の構成だと、
なんでこうなってしまうかと言うと、バージョン情報の設定が正しくオーバーライトされていないからです。他のプロジェクトオプションのように、"継承する" というチェックボックスがあれば混乱せずに済んだと思うのですが...。
正直、「ビルド構成毎にバージョン情報を変える事はないよね?」 と思います。プラットフォーム毎までで充分でしょう。事実、プラットフォーム毎のバージョン情報はちゃんと管理できます。だったら、[ターゲット] コンボボックスの下 6 つ (画像と同じ構成の場合) さえ削除してしまえば (表示しなければ)、殆どの問題は解決するように思えます。それでも、"継承する" チェックボックスがないため、一度間違って設定してしまうと、やはり *.dproj を直接編集しなくてはなりませんが。
ふーさんの設定は、"プラットフォームに関係なく同一のバージョン情報を使う" 設定で、ここで紹介した設定は "プラットフォーム毎に異なるバージョン情報を使う" 設定です。いずれも、先に、"<ビルド構成> - <プラットフォーム>" を作ってしまったり、"<ビルド構成> - <プラットフォーム>" に対して設定してしまうと、やっぱりおかしな事になります。
・
続・バージョン情報の件 (XE2)
au2010 さんより、「それはいいけど、リソース自体は英語だよ?」 とのツッコミを頂きましたので、リソース自体を無理矢理日本語にする "CGRC Wrapper" を作ってみました。
<!> 説明書はちゃんと読んでください <!> 読まずに cgrc.exe を上書きするとヒドイ事になりますよ。
・
バージョン情報の問題 (XE2)
話をややこしくしているのは、"バージョン情報の問題は大きく分けて 2 つある" という事です。
・
*.vrc にある問題 (XE2)
いくつかあります。
|
少なくとも赤字の部分は正しくありません。"CGRC ラッパー" は au2010 さんの記事をベースに *.vrc を以下のように改変します。
|
・
CGRC ラッパー
cgrc.exe が実際に *.vrc をコンパイルしている (正確にはちょっと違います。"79.Unicode な文字列リソースを含んだリソースファイルを作るには? (2009 以降)" を参照して下さい) のなら、「cgrc.exe のラッパーで *.vrc を改変し、それをオリジナルの cgrc.exe に渡せばいい」 的な考え方なのが、この "CGRC ラッパー" です。
小さなコンソールアプリケーションですので、以下に全ソースを公開します。
|
Delphi 2009 以降でコンパイルできると思います (TEncoding を利用しているため、ANSI 版 Delphi ではコンパイルできません)。動作の詳細はコメントを参考にして下さい。置換されないものがあったり、不具合があった場合には自由に改変してお使い下さい。
追記: EXE のタイムスタンプが "2011年9月23日、3:51:53" 以前のものをお使いの方は、新しいアーカイブを再度 DL して下さい。
・
ビルドタスク (XE2)
Delphi は $(BDS)\bin にある CodeGear.Common.Targets (XML です) の記述を元にビルドタスクを実行します。*.vrc を生成しているタスクは "CreateRcFile" で、本体のアセンブリ (.NET の DLL) は $(BDS)\bin\Borland.Build.Tasks.Shared.dll です。
au2010 さんの "バージョン情報の問題 その2" という記事内では、「CodeGear.Common.Targets の *.vrc 生成タスクを自前のアセンブリ (RCCreateTask.dll) で置き換えてしまえ」 という考え方で、*.vrc の問題を解決しています。
・
ビルド構成別のプロジェクトオプション (XE2)
バージョン情報の問題と同じように、アプリケーションアイコンもビルド別に管理されます...つまり、気を付けないと "リリースとデバッグで違うアイコンになる" 事があります。
ターゲットプラットフォームが追加されたため仕方のない事なのかもしれませんが、一度設定してしまうと、*.dproj を手動で修正しない限り、アイコンの更新に気を遣う事になります。これまた、"継承する" のチェックボックスがあれば解決しそうですけどね。IDE の UI が変わっちゃうので XE2 では追加されないんだろうな...チェックボックス。
・
実は使い道がない?TRectAnimation (XE2)
TAnimation は、基本的にコントロールの子コントロールとして動作します。TRectAnimation も当然子コントロールとして動作するのですが、普通のコントロールには Published な TBounds 型のプロパティは Margins と Padding しかありません。これらをアニメーションさせる事は殆どないでしょう。
ちなみに、コントロールに TRectAnimation を追加するには、ツールパレット / コンポーネントツールバーから TRectAnimation を選択し、目的のコントロールの上にポトリペタリします。アニメーションさせるプロパティは PropertyName で選択できます。
TRectAnimation でやりたい事と言ったら、まず最初に考えるのがコントロールのサイズ変更です。コントロールの中心を拡大縮小点としてマウスオーバーしたら伸び縮みするアニメーションをやろうとすると、TRectAnimation は使えず、TFloatAnimation を 4 つ (Position.X / Position.Y / Width / Height) 使って実現する事になります。
考え方を変えて、Scale プロパティで伸び縮みさせるとしましょう。この場合、TFloatAnimation が 2 つ (Scale.X / Scale.Y) 必要となります。4 つよりはいくらかマシですが、実は拡大縮小点が (0,0) にあるのでこの方法でもうまくいきません。
BoundsRect プロパティは TBounds 型ではないし、Published でもないのですよねぇ...デモプログラムにも TRectAnimation はありませんし、一体何に使えるのでしょう?
・
Update 1 for Delphi XE2, C++Builder XE2 and RAD Studio XE2 (XE2)
リリースされました。
・
Composer じゃなくて Nvu じゃなくて KompoZer じゃなくて BlueGriffon
WYSIWYG な HTML エディタ。むしろ "ドキュメントライター" として使ったほうがいいかもしれません。日本語にも対応しています。環境によっては "Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ (x86)" が別途必要となります。
"青いグリフォン" か。"黒いグリフォン" ならパトレイバーに...(以下略)
・
ブラウザ用検索エンジンプラグイン
このサイトには "Delphi の製品情報" というページがあり、左下には
誰も気付いていないようなので自分でバラしますが、Firefox で "Delphi の製品情報" に行くと、検索バーにこれらのカスタム検索を追加できます。
...こんな感じで。 IE / Firefox でマニュアル登録するには以下のリンクをクリックして下さい。
意外に便利ですよ。・
Delphi XE2 特別バージョンアップ (2007~XEユーザー向け)
本日までのキャンペーンです。購入先は 09/01 の雑談にまとめてあります。
なお、このキャンペーン期間中に購入した方は、価格面以外に 2 つの特典があります。
FastCube についての詳細はこちらで。キャンペーン期間中の購入者は、このキャンペーンが終了して 2 週間 (2011/10/14?) 迄の間であれば "FastCube Embarcadero Edition (CodeCentral)" から FastCube を DL する事ができます。
・
IRQ の競合をどうにかする (Linux)
現在の Windows では "IRQ の競合" で悩む事はもうあまりないとは思いますが、Linux ではまだ悩まされる事があります。最近の PC はイロイロなものがオンボードで備わっているので、これらがカチ合ってしまう事があり、例えば "数時間するとネットワークが死ぬ" といった現象が起きます。今の Windows だとデフォルトで "IRQ 共有" が有効ですし、大抵の場合それがうまく動作します。
BIOS で不要なペリフェラルを無効にしたり、PCI に何かのカードを挿しているのならスロットの位置を変更したりすれば解決する事もあるのですが、それでも解決しない事があります。そもそも、ペリフェラルを無効にできない事情があったりするかもしれません (競合しているのが USB で、これを無効にすると USB が使えなくなる、等)。
そんな時は Linux 起動時のオプションに "irqpoll" を加えてみましょう。これでしばらく様子を見て問題が解決したのなら、/boot/grub/grub.conf を編集し、起動オプションに "irqpoll" を追加して再起動します。
BACK | 古いのを読む | 新しいのを読む |