紀伊國屋書店新宿本店でOBJECT PASCAL HANDBOOKの改訂版で、OBJECT PASCAL HANDBOOK Delphi 11 Alexandria Editionの日本語訳である
OBJECT PASCAL HANDBOOK Delphi 11 Edition (Amazon)/Marco Cantù著/エンバカデロ・テクノロジーズ訳/藤井等監訳/カットシステム/ISBN 978-4-87783-521-7/8,800円
を購入。
2022年3月30日
2021年5月5日
マイナーリリースを区別する新しい標準条件シンボル
Delphi Master Release List · ideasawakened/DelphiKB Wiki · GitHubを見ていて気が付いたのですが、いままで標準条件シンボルの定義やCONDITIONALEXPRESSIONSではできなかった、マイナーリリース間を区別する(たとえば10.4.1と10.4.2を見分ける)ための新しい標準条件シンボルがRAD Studio/Delphi/C++Builder 10.4.2 Sydneyで導入されたようです。
RAD Studio/Delphi/C++Builder 10.4.1 SydneyまではSystem.pasに
RAD Studio/Delphi/C++Builder 10.4.1 SydneyまではSystem.pasに
const
RTLVersion = 34.00;
{$HPPEMIT '#define RTLVersionC 3400'}
とRTLVersionが定義(34.0)されていたものが、10.4.2 Sydneyではconst
RTLVersion = 34.00; RTLVersion1041 = True; RTLVersion1042 = True;
{$HPPEMIT '#define RTLVersionC 3400'}
と、RTLVersion1041/RTLVersion1042(いずれもTrue)の定義が追加されています。10.4/10.4.1ではこれらの定義が存在せず、10.5でもどうなるのかがいまのところわかっていないので使用方法も判然としないのですが、とりあえず{$IF RTLVersion = 34.0}
{$IF RTLVersion1042}
Label1.Caption := 'Delphi 10.4.2.';
{$ELSE}
Label1.Caption := 'Delphi 10.4 or 10.4.1.';
{$ENDIF}
{$ELSE}
Label1.Caption := 'Not Delphi 10.4.x.';
{$IFEND}
こんな感じになるでしょうか。
2021年4月29日
[書籍]Delphiで作るAndroidスマホアプリ
Amazon(JP)で注文した
Delphiで作るAndroidスマホアプリ (Amazon JP)/山菅昇一、山菅昇太郎著/インプレスR&D/ISBN 9784844379584/2,200円
が配送されてきました。
Delphiで作るAndroidスマホアプリ (Amazon JP)/山菅昇一、山菅昇太郎著/インプレスR&D/ISBN 9784844379584/2,200円
が配送されてきました。
2021年3月16日
[書籍]Object Pascal Handbook Delphi 10.4 Sydney Edition
Amazon(JP)で注文した
Object Pascal Handbook Delphi 10.4 Sydney Edition (Amazon US, Amazon JP)/Marco Cantù著/ISBN 979-8554519963/5,606JPY(printed)
が配送されてきました。2021/03/14に注文して2日目の到着でした。
Object Pascal Handbook Delphi 10.4 Sydney Edition (Amazon US, Amazon JP)/Marco Cantù著/ISBN 979-8554519963/5,606JPY(printed)
が配送されてきました。2021/03/14に注文して2日目の到着でした。
2020年11月18日
RAD Studio ロードマップ 2020/11
RAD Studio/Delphi/C++Builderのロードマップが更新されています。
RAD Studio 2020年11月付ロードマップ (en)
RAD Studio 2020年11月付ロードマップのPM解説 (en)
次期アップデートとなる10.4.2(2021/1H)と次期メジャーリリースの10.5(2021/2H)が予告されています。
また後で雑にまとめます(たぶん)。
RAD Studio 2020年11月付ロードマップ (en)
RAD Studio 2020年11月付ロードマップのPM解説 (en)
次期アップデートとなる10.4.2(2021/1H)と次期メジャーリリースの10.5(2021/2H)が予告されています。
また後で雑にまとめます(たぶん)。
Category:
Around Delphi,
Delphi 10.4 Sydney,
Delphi 11 Alexandria,
Embarcadero
at
13:08:00
0
Comments
2020年5月19日
新サポートナレッジベースサイト公開
先日の新ポータルサイトに続いて、サポートナレッジベースサイトとなるSupport Wikiが公開されています。
Support (ja)
Support (en)
Support (de)
Support (fr)
新しいサポートナレッジベースサイト「Support Wiki」オープン!
従来のEDNやSupport KBで公開されてきたアーティクルは今後こちらで扱われるようになるとのことです。ただ言語別(en/de/fr/ja)に完全に分かれてしまっている(検索も言語別に分断されている)ことや、日本語のメインページはすべてのページを通して確認できない(カテゴリに入っていくか検索しないといけない)こと、逆に英語/ドイツ語/フランス語のメインページは一覧のみでカテゴリ分けされていないこと、情報としてもまだ網羅性が足りない(もっとたくさんの情報があるはずですよね)など、改善の余地がまだまだありそうです。今後の内容の充実に期待したいところです。
ちなみに従来のEDNやSupport KBのアーティクルがどれだけあるかというと、これだけあります。
EDN Article Index 30001-
EDN Article Index 31001-
EDN Article Index 32001-
EDN Article Index 33001-
EDN Article Index 34001-
EDN Article Index 35001-
EDN Article Index 36001-
EDN Article Index 37001-
EDN Article Index 38001-
EDN Article Index 39001-
EDN Article Index 40001-
EDN Article Index 41001-
EDN Article Index 42001-
EDN Article Index 43001-
EDN Article Index 44001-
Support (ja)
Support (en)
Support (de)
Support (fr)
新しいサポートナレッジベースサイト「Support Wiki」オープン!
従来のEDNやSupport KBで公開されてきたアーティクルは今後こちらで扱われるようになるとのことです。ただ言語別(en/de/fr/ja)に完全に分かれてしまっている(検索も言語別に分断されている)ことや、日本語のメインページはすべてのページを通して確認できない(カテゴリに入っていくか検索しないといけない)こと、逆に英語/ドイツ語/フランス語のメインページは一覧のみでカテゴリ分けされていないこと、情報としてもまだ網羅性が足りない(もっとたくさんの情報があるはずですよね)など、改善の余地がまだまだありそうです。今後の内容の充実に期待したいところです。
ちなみに従来のEDNやSupport KBのアーティクルがどれだけあるかというと、これだけあります。
EDN Article Index 30001-
EDN Article Index 31001-
EDN Article Index 32001-
EDN Article Index 33001-
EDN Article Index 34001-
EDN Article Index 35001-
EDN Article Index 36001-
EDN Article Index 37001-
EDN Article Index 38001-
EDN Article Index 39001-
EDN Article Index 40001-
EDN Article Index 41001-
EDN Article Index 42001-
EDN Article Index 43001-
EDN Article Index 44001-
2020年4月20日
新ポータルサイト公開
以前からアナウンスされていたエンバカデロの新しいポータルサイトが公開されています。
Registered Products Portal
新しいエンバカデロ・ライセンス/ダウンロード・ポータル (en)
これまでのEDN(Embarcadero Developer Network)やCC(Code Central)に替わって、今後ライセンス管理や製品のダウンロードはこのポータルサイト経由になるとのことです。これにより、従来CCで
30915 Delphi 10.3.3 Open Array Patch
https://cc.embarcadero.com/Item/30915
というダウンロードページになっていたものが、
Delphi 10.3.3 Open Array Patch
https://my.embarcadero.com/#downloadDetail/661
のようになるとのことです(EDNやCCは順次フェードアウト予定)。
また製品以外のサンプルコードなどはGitHubに移行するとのことです。
参考: The Future of CodeCentral
Registered Products Portal
新しいエンバカデロ・ライセンス/ダウンロード・ポータル (en)
これまでのEDN(Embarcadero Developer Network)やCC(Code Central)に替わって、今後ライセンス管理や製品のダウンロードはこのポータルサイト経由になるとのことです。これにより、従来CCで
30915 Delphi 10.3.3 Open Array Patch
https://cc.embarcadero.com/Item/30915
というダウンロードページになっていたものが、
Delphi 10.3.3 Open Array Patch
https://my.embarcadero.com/#downloadDetail/661
のようになるとのことです(EDNやCCは順次フェードアウト予定)。
また製品以外のサンプルコードなどはGitHubに移行するとのことです。
参考: The Future of CodeCentral
2019年12月24日
[書籍][eBook]Mastering Delphi Programming
Packt Publishingで注文した
Mastering Delphi Programming: A Complete Reference Guide (Amazon US, Amazon JP)/Primož Gabrijelčič著/Packt Publishing/ISBN 9781838989118/44.99USD(printed+ebook)
が配送されてきました(今回の配送もDHLで、インドのチェンナイからの発送でした)。2019/12/16に注文して9日目の到着、44.99USD=5,042JPY(1USD=112.07JPY)でした。
Mastering Delphi Programming: A Complete Reference Guide (Amazon US, Amazon JP)/Primož Gabrijelčič著/Packt Publishing/ISBN 9781838989118/44.99USD(printed+ebook)
が配送されてきました(今回の配送もDHLで、インドのチェンナイからの発送でした)。2019/12/16に注文して9日目の到着、44.99USD=5,042JPY(1USD=112.07JPY)でした。
2019年8月13日
RAD Studio ロードマップ 2019/08
RAD Studio/Delphi/C++Builderのロードマップが更新されています。
2019年8月Delphi Androidベータプランと8月付ロードマップアップデート (en)
前回からの大きな変更として、次期アップデートとなる10.3 Rio Release 3(10.3.3)の追加(2019/4Q頃)と、それに伴う次期メジャーリリース(10.4)の2020年への延期がアナウンスされています。またC++のAndroid 64bitサポートが復活しています。
雑なまとめ:
2019年8月Delphi Androidベータプランと8月付ロードマップアップデート (en)
前回からの大きな変更として、次期アップデートとなる10.3 Rio Release 3(10.3.3)の追加(2019/4Q頃)と、それに伴う次期メジャーリリース(10.4)の2020年への延期がアナウンスされています。またC++のAndroid 64bitサポートが復活しています。
雑なまとめ:
- 次期アップデート(10.3.3)は2019年の終わり頃
- iOS13/macOS Catalinaサポート
- DelphiでAndroid 64ビットをサポート
- 次期メジャーリリース(10.4)は2020年前半
- macOS/iOSでMetal 2をサポート
- Androidのプッシュ通知とGoogle Playサービスの再構成
- LiveBindingのパフォーマンス向上
- Delphi/C++Builderとも全てのプラットフォームでメモリ管理を統一(モバイル環境でのARCサポートの削除)
- オンライン/オフラインインストーラを統合
- Delphiで(カスタム)マネージドレコード型をサポート
- その次のアップデート(10.4.x)は2020年の中頃以降
- デバッガをLLDBベースのものに統合
- MSIXアプリケーションパッケージ形式のサポート
- DelphiでiOS 13のシミュレータ(64ビット)をサポート
- C++BuilderでAndroid 64ビットをサポート
- C++BuilderにWhole Tomato Visual Assistを統合
2019年5月25日
[書籍][eBook]Delphi Programming Projects
Packt Publishingで注文した
Delphi Programming Projects (Amazon US, Amazon JP)/William Duarte著/Packt Publishing/ISBN 9781789130553/39.99USD(Print+eBook)
が配送されてきました(今回の配送もDHLで、インドのチェンナイからの発送でした)。2019/05/14に注文して12日目の到着、39.99USD=4,484JPY(1USD=112.13JPY)でした。
Delphi Programming Projects (Amazon US, Amazon JP)/William Duarte著/Packt Publishing/ISBN 9781789130553/39.99USD(Print+eBook)
が配送されてきました(今回の配送もDHLで、インドのチェンナイからの発送でした)。2019/05/14に注文して12日目の到着、39.99USD=4,484JPY(1USD=112.13JPY)でした。
2019年5月24日
RAD Studio ロードマップ 2019/05
RAD Studio/Delphi/C++Builderのロードマップが更新されています。
RAD Studioロードマップ(2019年5月付) (en)
2019年5月付RAD Studioロードマップへのプロダクトマネージャからのコメント (en)
今回のロードマップの注目点は
RAD Studioロードマップ(2019年5月付) (en)
2019年5月付RAD Studioロードマップへのプロダクトマネージャからのコメント (en)
今回のロードマップの注目点は
- 次期アップデート(10.3.2)は2019年の中頃
- DelphiでmccOS 64ビットをサポート
- C++ Windos x64コンパイラでC++17をサポート(現在はC++11)
- 次期メジャーリリース(10.4)は2019年末
- macOS/iOSでMetal 2をサポート
- LiveBindingのパフォーマンス向上
- Delphi/C++Builderとも全てのプラットフォームでメモリ管理を統一(モバイル環境でのARCサポートの削除)
- DelphiでAndroid 64ビットをサポート
- オンライン/オフラインインストーラを統合
- Delphiで(カスタム)マネージドレコード型をサポート
- その次のアップデート(10.4.x)は2020年
- デバッガをLLDBベースのものに統合
- iOSでMetal GPUドライバをサポート
- DelphiでiOS 13のシミュレータ(64ビット)をサポート
- C++BuilderにWhole Tomato Visual Assistを統合
2019年3月19日
[書籍][eBook]Hands-On Design Patterns with Delphi
Packt Publishingで注文した
Hands-On Design Patterns with Delphi (amazon US, amazon JP)/Primož Gabrijelčič著/Packt Publishing/ISBN 9781789343243/44.99USD(Print+eBook)
が配送されてきました(今回も配送はDHLで、インドのチェンナイからの発送でした)。2019/02/28に注文して19日目の到着、44.99USDがdiscountで36.90USD=4,200JPY(1USD=113.84JPY)でした。
Hands-On Design Patterns with Delphi (amazon US, amazon JP)/Primož Gabrijelčič著/Packt Publishing/ISBN 9781789343243/44.99USD(Print+eBook)
が配送されてきました(今回も配送はDHLで、インドのチェンナイからの発送でした)。2019/02/28に注文して19日目の到着、44.99USDがdiscountで36.90USD=4,200JPY(1USD=113.84JPY)でした。
2018年8月9日
RAD Studio ロードマップ 2018/08
RAD Studio/Delphi/C++Builderのロードマップが更新されています。
RAD Studioロードマップ(2018年8月付) (en)
August 2018 Roadmap Commentary from Product Management
注目点をいくつかピックアップしておきます。
RAD Studioロードマップ(2018年8月付) (en)
August 2018 Roadmap Commentary from Product Management
注目点をいくつかピックアップしておきます。
- 次期リリース(10.3 "Carnival")は2018年後半
- IDE Fix Packから一部の修正をバックポート
- Object Pascalではレコード型関係の強化(ジェネリックス向)
- Clang/LLVMベースのC++ Windows/x86コンパイラのC++17対応
- AndroidでZオーダのサポート、ネイティブコントロール
- Android 8.0/API level 26対応
- macOS 64ビット版はAppleの方針変更に伴って優先順位が若干下がり2019年の10.3.xに持ち越し(Delphi/C++Builderとも)
- 10.3.xではWindows x86以外のC++コンパイラのC++17対応
- Androidの64ビット対応はさらに後(2019年後半以降)の10.4で
- Object Pascalのnull許容型やその他の言語機能拡張も10.4に持ち越し
2017年5月12日
RAD Studio ロードマップ 2017/05
RAD Studioのロードマップの2017/05版が公開されています。
RAD Studio Roadmap May 2017
May 2017 Roadmap Commentary from Product Management
日本語訳もそのうち公開されると思われますが、注目点をいくつかピックアップしておきます。
RAD Studioロードマップ(2017年5月付)
2017/05/22追記: コメントについても日本語訳が公開されています。
製品マネージャからの2017年5月付け製品ロードマップに関するコメント
RAD Studio Roadmap May 2017
May 2017 Roadmap Commentary from Product Management
日本語訳もそのうち公開されると思われますが、注目点をいくつかピックアップしておきます。
- RAD Studio 10.2.1 Tokyoは今年(2017年)半ばくらいにリリース、C++BuilderのLinux Serverサポートを追加
- RAD Studio 10.2.2 Tokyoは2017年末くらいにリリース、AndroidのZ-オーダサポートとWindows 10/WinRT関係の更新、C++のリファクタリングでリネーム機能のサポートとコード補完、コードインサイトの強化といったあたり
- RAD Studio 10.3 コードネーム "Carnival"は2018年で、FMXでAndroidのネイティブコントロールのサポート、LLDBの統合、C++17サポート、Delphiで64bit macOSのサポートの追加、DelphiでNullable型サポートや文法面の強化など
RAD Studioロードマップ(2017年5月付)
2017/05/22追記: コメントについても日本語訳が公開されています。
製品マネージャからの2017年5月付け製品ロードマップに関するコメント
Category:
Around Delphi,
CBuilder,
Delphi 10.2 Tokyo,
Delphi 10.3 Rio,
Embarcadero
at
14:32:00
0
Comments
2016年2月9日
RAD Studio 2016 ロードマップ
RAD Studioのロードマップは1年くらい前に更新されてそのままになっていました。2015年05月のデベロッパーキャンプのときにMarco Cantuさんに『ロードマップの更新は?』と聞いたところ、『モバイル関係の流れが速いのでロードマップを出すのは難しい』という回答でした(それは困る、とは伝えましたが)。しかし2015年秋のIDERAによる買収によって路線の修正が行われ、2016年01月にロードマップを更新する、というAtanas Popovさんの発言もあり、1月末くらいからどうなってるの?という声も出ていましたが、やっとロードマップが更新されました。
Embarcadero RAD Studio 2016 Product Approach and Roadmap
以下今後のリリースに関する適当な要約:
公式の日本語訳も出ました(つか負けた)。
Embarcadero RAD Studio 2016年の製品アプローチとロードマップ
Embarcadero RAD Studio 2016 Product Approach and Roadmap
以下今後のリリースに関する適当な要約:
- 2016年春リリースのコードネーム"Big Ben"のキーテーマは"品質、最初のユーザ体験と導入"で、新しいインストーラとGetItによりインストールの柔軟性とインストール時間の短縮を図る。2016年のリリースに以下の機能を含めるためチームは作業をしている。
- VCLとFMXの両方でフォームデザイナをセパレート/フロート可能に
- C++に関するリファクタリング
- FireUIアプリケーションプレビュー(IDEのフォームデザイナであらゆるターゲット上でのプレビュー)
- Firemonkeyの拡張
- アドレス帳/コンタクトコンポーネント
- スタイルデザイナとリストビューアイテムデザイナ
- 多くの機能、リストビューのタッチアニメーション、グリッドの改善、Windowsのアクセラレータキーのサポート、フォント拡張、その他
- マルチデバイスデザイナの改善
- デバイス上のフォームデザイナプレビュー
- Android Wearスタイルと新しいFireUIビュー
- IoT (Internet of Things)
- Bluetooth LEサポートの拡張
- そのままでもカスタムでもIoTスマートデバイス、センサ、ウェアラブルを簡単に使えるAPIコンポーネントであるIoT接続フレームワーク
- Bluetooth LEおよびZ-Waveデバイスをサポートするコンポーネント
- ThingPoint(EMS機能を拡張するIoTデバイスのためのエンタープライズなアクセスポイント)
- Windows/VCL
- Windows 10のBluetooth LEサポートを含むWinRTブリッジの改善
- DirectX 12サポート
- Delphiコンパイラおよび言語
- すべてのプラットフォーム上でUtf8Stringをネイティブサポート
- Windowsなど非ARCプラットフォーム上でのweak/unsafeインタフェース参照のサポート
- すべてのプラットフォームでC++ Clang 3.3に移行
- FireDACドライバ更新(Oracle、DB2、InterBase、SQLite、Advantage)
- その次の2016年秋リリースのコードネーム"Godzilla"ではDelphi/C++BuilderアプリケーションがLinux上で動くようになる。夏にはDelphi for Linuxのテクニカルプレビューを出すのでぜひフィードバックしていただいて、可能な限り安定して強固なものにしていきたい。秋のリリースを目標としているものは以下の通り。
- WebBrokerによるApacheモジュールとDataSnap/EMSサポート
- FireDACによるLinuxデータベースアクセス
- IoTサポートを含むコンソールアプリケーションのLinuxプラットフォームサポート
- 公式にはUbuntu ServerとRedHat Enterpriseをサポート(これ以外のディストリビューションの公式サポートは需要に応じて広げてゆく)
- WindowsベースのIDEとクロスコンパイラ、PAServer経由のデプロイとデバッグ
- LinuxコンパイラはIntel 64ビットサーバ用で、LLVMベースのARCサポート
- Linuxサポートの後についてはさらに以下のようなものを考えている。
- IDEのUIの改善とスタイル
- すべてのC++コンパイラをより新しいClangベースのものに更新
- パッケージマネージャおよびインストーラとしての両方でGetItの更なる改善
- 新しいWindows 10のVCLコンポーネント
- Firemonkeyのネイティブコントロールの更なる改善
- Windows 10 Centennialサポート(MicrosoftによるCentennial ユニバーサルWindowsプラットフォームブリッジのリリース待ち)
- 将来のiOSおよびAndroidのバージョンのサポート
公式の日本語訳も出ました(つか負けた)。
Embarcadero RAD Studio 2016年の製品アプローチとロードマップ
2015年3月3日
RAD Studio 2015 ロードマップ
またもや長らく更新されていなかったRAD Studioのロードマップが久しぶりに更新されています(2015年Q1版)。
RAD Studio 2015 Roadmap - Blogs
適当な要約:
2015/03/16追記: 日本語版のロードマップが公開されています。
RAD Studio 2015年ロードマップ
RAD Studio 2015 Roadmap - Blogs
適当な要約:
- 新しいプラットフォームとコンパイラ
- iOS
- C++/Object Pascalの両方でiOS 64ビットプラットフォーム用の新しいツールチェインを準備中
- Appleのユニバーサルバイナリをサポート
- Windows x86 C++
- x64と同様にC++11を含むLLVMベースのツールチェイン
- iOS
- 開発環境(IDE)
- Object Pascal/C++の両方で開発者の生産性を拡張
- 大規模メモリモデルによるIDEの安定性の向上
- IDEに統合されたライブラリマネージャテクノロジー
- 複数デバイスプレビューを含むFireUIマルチデバイスデザイナの拡張
- Windows 10サポート
- VCL/FMXの両方に
- 新しいコンポーネントとライブラリ
- Broad APIのカバー
- 新しいWindows 10のプラットフォームテクノロジとの統合
- VCL/RTL
- スタイル、フル4Kモニタサポート、大きいフォントなどの拡張によるVCLの改良
- アプリケーションの分析(VCL/FMXの両方)
- 全てのプラットフォームに対応するネイティブHTTP(S)クライアントライブラリ
- FireMonkey
- コントロールの拡張
- 地図のような新しいモバイル用コンポーネント
- WebBrowserのようにデスクトップに欠けていたコンポーネント
- さらなるiOSの制御とzオーダ管理
- パフォーマンスの最適化
- コントロールの拡張
- Internet of Things
- ビーコン技術のサポートによるモバイル近接統合
- 異種APIによる異なるデバイス/ガジェットとの接続のコンポーネントベースモデル
- データ収集/分析のためのリモートエンドポイント
- エンタープライズ/多層
- FireDAC:新しいエンタープライズ級のデータベースドライバ、パフォーマンスの向上
- InterBase XE7のチェンジビュー
- EMS(エンタープライズモビリティサービス)とのより緊密な統合
- NoSQLデータベースのサポート
- EMS:プッシュ通知といくつかの拡張
- DataSnapのコアwebテクノロジのクリーンアップと改善
- そのほかのプラットフォームに対する技術的な調査
- Android/iOSの2015年バージョン(現時点でGoogle/Appleからアナウンスされていないもの)
- WebBroker、DataSnap、EMSなどのLinuxのサーバ側のwebサービスアプリケーションのサポート
- AndroidのIntelプラットフォームのサポートの選択肢
- Mac OS Xの64ビット用ツールチェイン
- 2015年の最終的な検討事項
- 2015年において2回の製品リリース
- 最初のリリース後にロードマップを更新
- アップデートサブスクリプションに含まれるもの
- 過去のリリースを含む継続的なアップデート
- 他では入手できないコンテンツと機能
- 新しい挑戦と機会に取り組むための機能
- 2015年において2回の製品リリース
2015/03/16追記: 日本語版のロードマップが公開されています。
RAD Studio 2015年ロードマップ
2014年9月3日
DelphiのRTLで定義済の属性
Delphi 2010で追加されたXE6/XE7は手元にないので調べていませんが、既存のものについてはXE5と大きく異なる部分はないと思いますDelphi XE6/XE7/XE8/10 Seattle/10.1 Berlinについても確認しました)。
Delphiのバージョンごとの違い:
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さんのところから大量に引用させていただきました。ありがとうございます。
2019/03/07追記: Delphi 10.3 Rioに関する情報を追加。
2023/12/21追記: Delphi 10.4 Sydney/11 Alexandria/12 Athensに関する情報を追加。
2025/10/10追記: Delphi 13 Florenceに関する情報を追加。
新しいRTTIに含まれる属性機能ですが、Delphiのバージョンにより違いがあるものの、RTLで予め定義されている属性がいくつかあります。ところがこれらの定義済の属性についてヘルプにはきちんとした記述がありません。ということで調べてみました(
SystemユニットTCustomAttribute- [2010..13 Florence]カスタム属性のルートクラス
属性を新たに定義するときはTCustomAttributeから派生させる WeakAttribute [Weak]- [XE3..13 Florence]循環参照などのARCがオブジェクトの破棄を行えないような状況を防ぐ"弱い"参照であることを示す
10 Seattleおよびそれ以前ではNEXTGENコンパイラのみ
参考: コンパイラ属性 - RAD Studio
参考: 弱い参照 (Delphi モバイル コンパイラでの自動参照カウント) UnsafeAttribute [Unsafe]- [XE3..13 Florence]オブジェクトの生成時など参照カウントが0となるような状況でARCによる破棄を防ぐ
10 Seattleおよびそれ以前ではNEXTGENコンパイラのみ
参考: コンパイラ属性 - RAD Studio
参考: Unsafe 属性 (Delphi モバイル コンパイラでの自動参照カウント)
参考: モバイル開発のためのDelphi言語 (ホワイトペーパ) RefAttribute [Ref]- [XE3..13 Florence]定数パラメータを強制的に参照渡しにする
ヘルプによればRefAttributeはXE4の新機能だが、実際にはXE3でも使用可能
参考: コンパイラ属性 - RAD Studio
参考: 定数パラメータ (パラメータ(Delphi)) VolatileAttribute [Volatile]- [XE4..13 Florence]スレッドによって書き換えられる可能性があるフィールドに対して、コード生成時にレジスタまたはその他の一時メモリ領域に値をコピーするような最適化を行わないようにする
10 Seattleおよびそれ以前ではNEXTGENコンパイラのみ
参考: コンパイラ属性 - RAD Studio
参考: Delphi コンパイラの新しい属性 (Delphi XE4 および C++Builder XE4 の新機能)
参考: volatile (コンパイラ属性) StoredAttribute [Stored]- [XE7..13 Florence]System.Classes.StoredAttributeを参照
HPPGENAttribute [HPPGEN]- [XE8..13 Florence]C++Builder用のhppファイル生成時に使用する情報らしいが詳細不明
HFAAttribute [HFA]- [XE8..13 Florence]
pageId=86770118(なにそれ)に情報があるらしいが詳細不明(ARM64プラットフォーム向けにレコード型/配列型に対して生成されたRTTI HFA情報をオーバライドFor internal use only.
とコメントあり) AlignAttribute [Align]- [10 Seattle..13 Florence]メモリ上のオブジェクトのアライメントを指定するものらしいが、
For internal use only.
とコメントあり
System.ClassesユニットComponentPlatformsAttribute [ComponentPlatforms(<params>)]- [XE2..13 Florence]コンポーネントが動作するプラットフォームを指定する
パラメータ(Word値)にはSystem.Classesで定義されている以下の定数の論理和を指定するpidWin32 [XE2..13 Florence]pidWin64[XE2..13 Florence]pidOSX32[XE2..13 Florence]pidiOSSimulator32[10.3 Rio..13 Florence],pidiOSSimulator[XE3..13 Florence]pidAndroidArm32[11 Alexandria..13 Florence],pidAndroid32Arm[10.3 Rio..13 Florence],pidAndroid[XE3..13 Florence]pidLinux32[XE3..13 Florence]pidiOSDevice32[XE8..13 Florence],pidiOSDevice[XE3..13 Florence]pidLinux64[XE8..13 Florence]pidWinNX32[XE3..13 Florence]pidWinIoT32 [XE8..13 Florence]("Embedded IoT (Internet of Things) Windows w/ Intel Galileo")pidiOSDevice64[XE8..13 Florence]pidWinARM32[10.3 Rio..13 Florence],pidWin32ARM[11 Alexandria..13 Florence],pidWinARM[10 Seattle..10.2 Tokyo]pidOSX64[10.1 Berlin..13 Florence],pidOSXNX64[10.1 Berlin..10.2 Tokyo]pidLinuxArm32[11 Alexandria..13 Florence],pidLinux32Arm[10.1 Berlin..10.4 Sydney]pidLinuxArm64[11 Alexandria..13 Florence],pidLinux64Arm[10.1 Berlin..10.4 Sydney]pidAndroidArm64[11 Alexandria..13 Florence],pidAndroid64Arm[10.3 Rio..13 Florence],pidAndroid64[10.1 Berlin..10.2 Tokyo]pidiOSSimulator64[10.3 Rio..13 Florence]pidOSXArm64[11 Alexandria..13 Florence]pidWinArm64[11 Alexandria..13 Florence]pidiOSSimulatorArm64[11 Alexandria..13 Florence]pidWin64x[12 Athens..13 Florence]
TDefaultAttributeBase- [XE3..13 Florence]DefaultAttribute/NoDefaultAttributeの継承元
DefaultAttribute [Default(<param>)]- [XE3..13 Florence]プロパティの格納指定子defaultと同等の指定
パラメータにはデフォルト値(Boolean型、AnsiChar型、Char型、Integer型、Cardinal型、Int64型、UInt64型、String型、Extended型のいずれか)を指定する NoDefaultAttribute [NoDefault]- [XE3..13 Florence]プロパティの格納指定子nodefaultと同等の指定
StoredAttribute [Stored(<param>)]- [XE3..XE7]プロパティの格納指定子storedと同等の指定
パラメータには真偽値(False | True)またはストレージハンドラ(Boolean型のプロパティまたはパラメータを持たずBoolean値を返すメソッド)の名前を指定する(XE8以降はSystemユニットに移動) ObservableMemberAttribute [ObservableMember(<param>)]- [XE3..13 Florence]LiveBinding対応コンポーネントで、LiveBindingコンポーネントが式を生成するときに使用するメンバ名をパラメータで指定する
ObservableMemberExtAttribute [ObservableMemberExt(<param>)/ObservableMemberExt(<param>,<param>)/ObservableMemberExt(<param>,<param>,<param>)]- [10.4 Sydney]LiveBinding対応コンポーネントで、LiveBindingコンポーネントが式を生成するときに使用するメンバ名/フレームワーク/トラッキングをパラメータで指定する
System.JSON.TypesユニットJsonNameAttribute[JsonName<param>]- [12 Athens..13 Florence]TJsonSerializerでキー名を明示的に指定
JsonExcludeValueAttribute[JsonExcludeValue<param>]- [13 Florence]TJsonSerializerでシリアライズから除外
System.JSON.SerializersユニットJsonConverterAttribute[JsonConverter<param>]- [10.3 Rio..13 Florence]TJsonSerializerで使用するコンバータの指定
JsonIgnoreAttribute[JsonIgnore]- [10.3 Rio..13 Florence]TJsonSerializerで無視するメンバの指定
JsonNameAttribute[JsonName<param>]- [10.3 Rio..11 Alexandria]TJsonSerializerでキー名を明示的に指定(12 Athens以降はSystem.JSON.Typesユニットに移動)
JsonInAttribute[JsonIn]- [10.3 Rio..13 Florence]JsonSerialize属性のパラメータにTJsonMemberSerialization.Inを指定したときにTJsonSerializerでシリアライズ/デシリアライズ対象とする
JsonObjectHandlingAttribute[JsonObjectHandling<param>]- [10.3 Rio..13 Florence]TJsonSerializerでデシリアライズするときのクラス型のメンバの扱いを指定
パラメータには列挙型TJsonObjectHandlingから以下のいずれかの値を指定
Auto[10.2 Tokyo..13 Florence]Reuse[10.2 Tokyo..13 Florence]Replace[10.2 Tokyo..13 Florence]
JsonObjectOwnership[JsonObjectOwnership<param>]- [10.3 Rio..13 Florence]TJsonSerializerでデシリアライズするときにクラス型メンバを生成した場合の元のインスタンスの扱いを指定
パラメータには列挙型TJsonObjectOwnershipから以下のいずれかの値を指定
Auto[10.2 Tokyo..13 Florence]Owned[10.2 Tokyo..13 Florence]NotOwned[10.2 Tokyo..13 Florence]
JsonSerializeAttribute[JsonSerialize<param>]- [10.2 Tokyo..13 Florence]TJsonSerializerでシリアライズ/デシリアライズするメンバの指定
パラメータには列挙型TJsonMemberSerializationから以下のいずれかの値を指定
Fields[10.2 Tokyo..13 Florence]Public[10.2 Tokyo..13 Florence]In[10.2 Tokyo..13 Florence]
JsonValueSerializeAttribute[JsonValueSerializee<param>]- [13 Florence]TJsonSerializerでシリアライズ/デシリアライズするかどうかの指定
パラメータには列挙型TJsonValueSerializationから以下のいずれかの値を指定
Always[13 Florence]ExcludeDefault[13 Florence]ExcludeSpecial[13 Florence]ExcludeAll[13 Florence]
Data.DBXJSONReflectユニット (XE5でREST.JsonReflectユニットに置き換えられた)JsonReflect [JsonReflect(<params>)]- [XE..13 Florence]TJSONMarshal/TJSONUnMarshalでオブジェクトをJSON形式でマーシャル/アンマーシャルするときの動作をカスタマイズする
パラメータにはコンバータタイプ、リバータタイプ、インターセプタの型、ポピュレーションカスタマイザの型、マーシャリングのときに生成される中間オブジェクトを自動的に解放するかどうかを指定する JSONBooleanAttribute- [XE..13 Florence]JSONMarshalled/JSONOwnedの継承元
JSONMarshalled [JSONMarshalled(<param>)]- [XE..13 Florence]フィールドや型がマーシャル/アンマーシャルの対象になるかどうかをパラメータ(False | True)で指定する
JSONOwned [JSONOwned(<param>)]- [XE..13 Florence]フィールドがアンマーシャルの際に解放されるかどうかをパラメータ(False | True)で指定する
Datasnap.DSAuthユニットTRoleAuth [TRoleAuth(<params>)]- [XE..13 Florence]DataSnapで認証を行ったときに、サーバメソッドクラスやサーバメソッドに対してアクセスを許可/拒否するロールを指定する
パラメータには許可ロールのリストと拒否ロールのリストを指定する
参考: ロール (認証と権限付与)
REST.Json.TypesユニットJSONBooleanAttribute [JSONBoolean]- [XE6..13 Florence]Data.DBXJSONReflect.JSONBooleanAttributeを参照
JSONMarshalledAttribute [JSONMarshalled]- [XE6..13 Florence]Data.DBXJSONReflect.JSONMarshalledを参照
JSONOwnedAttribute [JSONOwned]- [XE6..13 Florence]Data.DBXJSONReflect.JSONOwnedを参照
JSONNameAttribute [JSONName]- [XE6..13 Florence]12 AthensでSystem.JSON.Types.JsonNameAttributeのエイリアスになった
JSONSerializeAttribute [JSONSerialize(<param>)]- [12 Athens..13 Florence]データメンバシリアライズのオブジェクトタイプを指定
パラメータには列挙型TJsonMemberSerializationから以下のいずれかの値を指定jmFields[12 Athens..13 Florence]jmPublicProps[12 Athens..13 Florence]jmPublishedProps[12 Athens..13 Florence]jmAllPubProps[12 Athens..13 Florence]
REST.JsonReflectユニットJsonReflect(XE5)/JsonReflectAttribute(XE6以降) [JsonReflect]- [XE5..13 Florence]Data.DBXJSONReflect.JsonReflectを参照(XE6でクラス名が変更)
JSONBooleanAttribute [JSONBoolean]- [XE5]Data.DBXJSONReflect.JSONBooleanAttributeを参照(XE6以降はREST.Json.Typesユニットに移動)
JSONMarshalled [JSONMarshalled]- [XE5]Data.DBXJSONReflect.JSONMarshalledを参照(XE6以降はREST.Json.Typesユニットに移動)
JSONOwned [JSONOwned]- [XE5]Data.DBXJSONReflect.JSONOwnedを参照(XE6以降はREST.Json.Typesユニットに移動)
EMS.ResourceTypesユニットTResourceCustomAttribute [TResourceCustom]- [10.1 Berlin..13 Florence] EndPointRequestSummaryAttribute(10.1 Berlin..10.2 Tokyo)/EndPointRequestParameterAttribute(10.1 Berlin..10.2 Tokyo)/EndPointResponseDetailsAttribute(10.1 Berlin..10.2 Tokyo)/EndPointObjectsYAMLDefinitionsAttribute(10.1 Berlin..10.2 Tokyo)/EndPointObjectsJSONDefinitionsAttribute(10.1 Berlin..13 Florence)/AllowAnonymousTenantAttribute(10.1 Berlin..10.2 Tokyo)/ResourceNameAttribute(10.3 Rio..13 Florence)/EndPointObjectsYAMLDefinitionsAttribute(10.3 Rio..13 Florence)の継承元
TEndpointCustomAttribute [TEndpointCustom]- [10.3 Rio..13 Florence]ResourceSuffixAttribute/EndpointNameAttribute/EndPointRequestSummaryAttribute/EndPointRequestParameterAttribute/EndPointResponseDetailsAttribute/AllowAnonymousTenantAttribute/EndPointProduceAttribute/EndPointMethodAttributeの継承元
ResourceSuffixAttribute [ResourceSuffix]- [XE7..12 Athens]EMSでURLのサフィックスを指定する
参考: EMS リソースの概要 - RAD Studio EndpointHideAttribute [EndpointHide(<param>)]- [13 Florence]EMSで指定されたサフィックスのエンドポイントを隠す
ResourceVersionAttribute [ResourceVersion]- [13 Florence]EMSでリソースのバージョンを指定する
ResourceNameAttribute [ResourceName]- [XE7..12 Athens]EMSでリソース名を指定する
参考: EMS リソースの概要 - RAD Studio EndpointNameAttribute [EndpointName]- [XE7..12 Athens]EMSでエンドポイントメソッド名を指定する
参考: EMS リソースの概要 - RAD Studio EndPointRequestSummaryAttribute [EndPointRequestSummary]- [10.1 Berlin..12 Athens]EMSでメソッドの説明をAPIドキュメント上に生成する
参考: カスタム API ドキュメント - RAD Studio EndPointRequestParameterAttribute [EndPointRequestParameter]- [10.1 Berlin..12 Athens]EMSで要求内で使用されるパラメータの説明をAPIドキュメント上に生成する
参考: カスタム API ドキュメント - RAD Studio EndPointResponseDetailsAttribute [EndPointResponseDetails]- [10.1 Berlin..12 Athens]EMSで要求応答の説明をAPIドキュメント上に生成する
参考: カスタム API ドキュメント - RAD Studio EndPointResponseHeaderAttribute [EndPointResponseHeader]- [13 Florence]EMSで要求応答のヘッダを指定する
EndPointObjectsYAMLDefinitionsAttribute [EndPointObjectsYAMLDefinitions]- [10.1 Berlin..12 Athens]EMSでYAML版のオブジェクトの定義をAPIドキュメント上に生成する
参考: カスタム API ドキュメント - RAD Studio EndPointObjectsJSONDefinitionsAttribute [EndPointObjectsJSONDefinitions]- [10.1 Berlin..12 Athens]EMSでJSON版のオブジェクトの定義をAPIドキュメント上に生成する
参考: カスタム API ドキュメント - RAD Studio AllowAnonymousTenantAttribute [AllowAnonymousTenant]- [10.2 Tokyo..12 Athens]EMSでテナント検証の手順をスキップする
参考: サンプル RAD サーバー マルチテナント アプリケーション - RAD Studio EndPointProduceAttribute [EndPointProduce]- [10.3 Rio..12 Athens]
参考: RAD Server 拡張 URL マッピング - RAD Studio EndPointConsumeAttribute [EndPointConsume]- [10.3 Rio..12 Athens]
参考: RAD Server 拡張 URL マッピング - RAD Studio EndPointMethodAttribute [EndPointMethod]- [10.3 Rio..12 Athens]
Macapi.ObjectiveCユニットMethodNameAttribute [MethodName]- [XE4..12 Athens]Delphiで定義したObjective-Cのメソッドに対して、Objective-C上の本来のメソッド名を指定する
Androidapi.JNIBridgeユニットJavaSignatureAttribute [JavaSignature]- [XE5..12 Athens]Delphiで定義したAndroid(JNI)のクラス(インタフェース)に対して、Android上の本来のクラス名を指定する
System.Win.WinRTユニットWinRTClassNameAttribute [WinRTClassName]- [10 Seattle..12 Athens]Delphiで定義したWinRT APIのインタフェースに対して、WinRT上の本来のクラス名を指定する
Web.HTTPDMethodsユニットHTTPDConfigAttribute [HTTPDConfig]- [13 Florence](調査中)
HTTPDDirectiveAttribute [HTTPDDirective]- [13 Florence](調査中)
Web.StencilsユニットWebStencilsVarAttribute [WebStencilsVar]- [12 Athens Update 2..13 Florence](調査中)
- 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の実用例 - 全力わはーあたりを参照のこと。
- Delphi 10.3 RioではEMS.ResourceTypesユニット上の属性クラスの継承関係が組み替えられた。
- Delphi 10.4 SydneyではObservableMemberExtAttributeが定義されたが、11 Alexandriaで削除された。
- Delphi 12 AthensではJsonNameAttributeの定義がSystem.JSON.Typesユニットに移動し、REST.Json.TypesユニットにJSONSerializeAttributeが定義された(System.JSON.SerializersユニットのJSONSerializeAttributeとは別のものらしい?)。またUpdate 2でWebStencilsVarAttributeが定義された。
- Delphi 13 FlorenceではJsonExcludeValueAttribute、JsonValueSerializeAttribute、EndpointHideAttribute、ResourceVersionAttribute、EndPointResponseHeaderAttribute、HTTPDConfigAttribute、HTTPDDirectiveAttributeが定義された。
[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さんのところから大量に引用させていただきました。ありがとうございます。
2019/03/07追記: Delphi 10.3 Rioに関する情報を追加。
2023/12/21追記: Delphi 10.4 Sydney/11 Alexandria/12 Athensに関する情報を追加。
2025/10/10追記: Delphi 13 Florenceに関する情報を追加。
2014年3月7日
Appmethod
エンバカデロ・テクノロジーズから新しい開発環境Appmethodがアナウンスされています。
appmethod | Build Apps for Android, iOS, Windows, and Mac
(あとで追記予定)
appmethod | Build Apps for Android, iOS, Windows, and Mac
(あとで追記予定)
2014年3月6日
RAD Studio roadmap 2014/03版
またもや放置状態だったロードマップが更新されています。
RAD Studio、Delphi、C++Builderロードマップ(2014年3月)
RAD Studio, Delphi and C++Builder Roadmap - March 2014
(あとで追記予定)
RAD Studio、Delphi、C++Builderロードマップ(2014年3月)
RAD Studio, Delphi and C++Builder Roadmap - March 2014
(あとで追記予定)
2012年12月24日
[eBook]Parallel Programming with OmniThreadLibrary
LeanpubでPrimoz GabrijelcicさんによるDelphi上のマルチスレッドライブラリOmniThreadLibrary(OTL)の解説書である
Parallel Programming with OmniThreadLibrary/Primoz Gabrijelcic著/Leanpub/30.00USD
を購入(PDF/EPUB/MOBIをダウンロード可能)。
この本は現在も執筆中で、状況はThe Delphi Geek: Parallel Programming with OmniThreadLibrary – Current Statusで確認できます。現時点(2012/12/24)ではだいたい半分ちょっとまで書き進んだ感じです。
Parallel Programming with OmniThreadLibrary/Primoz Gabrijelcic著/Leanpub/30.00USD
を購入(PDF/EPUB/MOBIをダウンロード可能)。
この本は現在も執筆中で、状況はThe Delphi Geek: Parallel Programming with OmniThreadLibrary – Current Statusで確認できます。現時点(2012/12/24)ではだいたい半分ちょっとまで書き進んだ感じです。
登録:
投稿 (Atom)