2014年9月19日

2014年9月10日

Microsoft Monthly Update 2014/09

今日はMicrosoftのセキュリティアップデートの日です。
MS14-052
MS14-053
MS14-054
MS14-055

2014年9月6日

IDE Fix Pack 5.71

Andreas HausladenさんIDE Fix Pack for XE7がアップデートされてVersion 5.71となっています。XE7で関数名のマングリングルールが変更されていたのに対応するのを忘れていたとのことで、これを修正するとともにXE7で修正されて不要になったパッチを3つ削除したとのことです。

IDE Fix Pack 5.71 for XE7 – bug fix release | Andy's Blog and Tools

2014年9月3日

DelphiのRTLで定義済の属性

Delphi 2010で追加された新しいRTTIに含まれる属性機能ですが、Delphiのバージョンにより違いがあるものの、RTLで予め定義されている属性がいくつかあります。ところがこれらの定義済の属性についてヘルプにはきちんとした記述がありません。ということで調べてみました(XE6/XE7は手元にないので調べていませんが、既存のものについてはXE5と大きく異なる部分はないと思いますDelphi XE6/XE7/XE8/10 Seattle/10.1 Berlinについても確認しました)。

Delphiのバージョンごとの違い:
  • Delphi 2010ではシステムで使用する定義済の属性はない。
  • Delphi XEではDataSnap関係でTRoleAuthと、DBX関係でJSONリフレクションのためのJSON...が定義された。
  • Delphi XE2ではマルチプラットフォーム対応のためにComponentPlatformsAttributeが定義された。
  • Delphi XE3ではARC対応としてWeakAttribute/UnsafeAttribute/RefAttributeが、またおそらく将来の旧RTTIから新RTTIへの移行のためにTDefaultAttributeBase/DefaultAttribute/NoDefaultAttribute/StoredAttributeが、LiveBinding対応のためにObservableMemberAttributeが、それぞれ定義された。
  • Delphi XE4ではiOS対応としてMethodNameAttributeが定義された。
  • Delphi XE5ではJSONのリフレクションがDBXから分離されたためData.DBXJSONReflectのJSON...がREST.JsonReflectにも再定義され、Android対応としてJavaSignatureAttributeが定義された。
  • Delphi XE6ではREST.JsonReflect.JsonReflectがREST.JsonReflect.JsonReflectAttributeにクラス名が変更され、JsonReflectAttribute以外のJson...の定義がREST.JsonReflectユニットからREST.Json.Typesユニットに移動した。
  • Delphi XE7ではStoredAttributeの定義がSystem.ClassesユニットからSystemユニットに移動し、EMSのためにResourceSuffixAttribute/ResourceNameAttribute/EndpointNameAttributeが定義された。
  • Delphi XE8ではHPPGENAttributeとHFAAttributeが定義された。
  • Delphi 10 SeattleではAlignAttributeとWinRTClassNameAttributeが定義された。
  • Delphi 10.1 Berlinでは全てのコンパイラで[weak][unsafe][volatile]属性がサポートされるようになった(10 Seattle以前はNEXTGENコンパイラのみ)。またEMS APIリソースの取得で使用するカスタムAPIドキュメント用のTResourceCustomAttribute/EndPointRequestSummaryAttribute/EndPointRequestParameterAttribute/EndPointResponseDetailsAttribute/EndPointObjectsYAMLDefinitionsAttribute/EndPointObjectsJSONDefinitionsAttributeが定義された。
  • Delphi 10.2 TokyoではSystem.JSON.Serializersユニットが追加されてJSONシリアライズ関係のJson...が定義され、EMSのマルチテナントサポートのためにAllowAnonymousTenantAttributeが定義された。System.JSON.Serializersユニットについては現時点(2017/04/10)で正式にドキュメントされていないため、LynaさんのDelphi 10.2 Tokyoのdocwikiに書かれてなさそうな変更点。 - 全力わはーTJsonSerializerの使い方。 - 全力わはーTJsonSerializerの実用例 - 全力わはーあたりを参照のこと。
なおUnsafe属性のようにメソッドの戻値に属性を指定したい場合は、メソッドの宣言の前に[Result: <attr>]をつけて、
[Result: Unsafe]function Foo: TObject;
のようにします。

2015/06/19追記: Delphi XE6/XE7/XE8に関する情報を追加。

2015/10/05追記: Delphi 10 Seattleに関する情報を追加。

2016/05/02追記: Delphi 10.1 Berlinに関する情報を追加。

2017/04/10追記: Delphi 10.2 Tokyoに関する情報を追加。Lynaさんのところから大量に引用させていただきました。ありがとうございます。

2014年9月1日

2014/09開催のセミナー

  • Web Seminar
    • 2014/09/02 15:00-20:00(JST) Webセミナー「RAD Studio次期バージョンいよいよ登場!」
      • 15:00 次期バージョンブリーフィング
      • 15:45 新バージョンの機能を活用するための無料トレーニング◆FireMonkeyフレームワーク基礎
      • 16:15 デブサミ関西先取り情報◆アトラシアンオフィス訪問
      • 16:30 新バージョンの機能を活用するための無料トレーニング◆データアクセス基礎
      • 17:00 デベロッパーTV◆RAD Studio新バージョン特集
      • 18:00 デブサミ関西先取り情報◆もう怖くないモバイルアプリ開発
      • 18:15 新バージョンの機能を活用するための無料トレーニング(再)◆FireMonkeyフレームワーク基礎
      • 18:45 デブサミ関西先取り情報(再)◆アトラシアンオフィス訪問
      • 19:00 エヴァンジェリスト高橋RAD Studio新バージョン徹底デモ
    • 2014/09/17 16:30-19:30(JST) RAD Studio XE7 Webセミナーマラソン「2」「RAD Studio新バージョンの特長総ざらい」
      • 16:30 高橋智宏のDelphi / C++Builder 新機能解説(1) - 最新ライブラリ/言語機能の活用
      • 16:55 お知らせ◆iTuneカードやエンバカデログッズが当たるキーワードを発表
      • 17:00 デベロッパーTV番外編◆大阪から中継!
      • 18:00 高橋智宏のDelphi / C++Builder 新機能解説(2) - データベースアクセスとサーバーサイド開発
      • 18:25 お知らせ◆iTuneカードやエンバカデログッズが当たるキーワードを発表
      • 18:30 伊賀敏樹のシステム設計指南 - みんなDBスキーマ設計どうやってるの?
      • 18:55 お知らせ◆iTuneカードやエンバカデログッズが当たるキーワードを発表
      • 19:00 高橋智宏のDelphi / C++Builder 新機能解説(3) - モバイルアプリ開発 基礎から応用まで
      • 19:25 お知らせ◆iTuneカードやエンバカデログッズが当たるキーワードを発表
  • Live Seminar