先日、RAD Studio 11がリリースされました。このブログでは、その新機能のうち、VCLの強化について紹介したいと思います。
Delphi 11、C++ Builder 11、およびRAD Studio 11の新機能の中で、今回特にご注目いただきたいのは、VCLのコアコンポーネントに関する開発チームの取り組みで、以前から保留になっていた開発者からの多くの要望に対応しています。そのうちのいくつかをご紹介しましょう。
Table of Contents
新しいRichEditコントロール
最も目立つ新機能は、TRichEditが最新のプラットフォームバージョンであるMSFTEDIT.dllによって実装されたRichEditコントロール4.1に移行したことです。一般的な改善に加えて、新しいコントロールはスペルチェック、URL認識、透過性などの機能を提供し、新しいプロパティとしてTransparent、EnableURLs、SpellChecking、新しいOnLinkClickイベントが追加されています。
RichEditのText Attributesフィールドが大幅に強化されました。下図は「RAD Studio 11新機能ウェビナー」で使用したデモの画像です。
Alister Christie氏のYouTubeビデオ 「Enhancements to TRichEdit – Delphi #188 」では、非常に素晴らしく詳細に説明されています。TDBRichEditコンポーネントのLinesプロパティが公開されていることにも注目してください。
チェックボックスを持つTreeView
もう1つの注目すべき機能は、TreeViewコントロールでチェックボックスがサポートされ、TTreeViewコントロールで利用できるようになりました。チェックボックスは複数の状態をサポートしており、通常のツリー構造に追加することができます。新しいTNodeCheckState列挙型は、ncsNone, ncsUnchecked, ncsChecked, ncsPartial, ncsDimmed, ncsExclusionの値を持っています。
下図では、チェックボックスを持つTreeViewの動作の一例です。
新しいDBLabeledEdit
今回のリリースでは、新しいブランドのVCLコントロールが1つあります。それは、データベース対応版のTLabeledEditです。これは、エディットの位置を管理するだけで、ラベルが表示されるので便利です(設定によっては、上にも表示されます)。TDBLabeledEditでは、コントロールにフィールドを割り当てると、現在のレコード値がエディットに表示され、フィールド名がラベルのデフォルト値になることに注意してください。下図のようにクイックエディットメニューを使用して簡単に設定できます。
TWICImageのマルチフレームのサポート
TWICImageクラス(TImageコントロールの実装オプションの1つ)は、プラットフォームのWindows ImagingComponentのラッパーです。このラッパークラスの特徴は、マルチフレームのサポートです。これは、FrameCountとFrameIndexという2つの新しいプロパティによって公開されます。FrameIndexを設定すると、マルチフレーム画像(マルチフレームTIFFファイルなど)において、利用可能なフレームすべてを読み込むことができます。
その他の改善点/変更点
また既存のアプリケーションに対して、すぐに役立つ注目すべき小規模な機能の変更点が数多くあります。
- Coolbarは、新しいブール型プロパティShowChevronでChevronをサポート
- 基底クラスであるTWinControlは、LockDrawingおよびUnlockDrawingメソッドを提供し、コントロールの更新を有効化/無効化の制御ができます。これによりWM_SETREDRAW Windowsメッセージの実行のトリガとなります。
- TNumberBoxクラスにはいくつか追加機能があります。CurrencyFormat型は、ByteからTNumberBoxCurrencyFormatに変更されました。さらに新しいValueCurrency プロパティがあり、DisplayFormat プロパティが公開されました。
- インクルード ファイル StyleUtils.inc は通常ユニットに変換されており、開発者(およびコンポーネント ベンダ)は、VCL スタイルのサポートと自分たちのコードをさらに統合しやすくなりました
- コモンダイアログでは、EncodingIndexとShowEncodingListというプロパティが公開されています。
- TTrackbarの新しいOnTrackingイベントの追加
- 追加されたパラメータ CheckTabEnabled により、TPageControl.FindNextPage でスキップするオプションが無効になっています
- TButtonCategory には VisibleGutter プロパティがあります
- TScrollBoxは自動的にマウスホイールをサポートしています。この変更により、既存のアプリケーションの動作に影響を与える可能性がありますのでご注意ください
- VCL 関数 ScaleImage は、アルファチャンネルをサポート
- デフォルトフォーム サイズがより大きくなりました
- SetSelText および SetSelTextBuf では、Undo バッファをリセットしないオプションが提供されました
- TCustomTitleBarPanel には、プロパティが TitleButtonClose、TitleButtonRestore、TitleButtonMin、そしてOnUpdateTitlebarButtons イベントがあります
- TDateTimePicker により、UI で日付と時間の変更が一緒にできるようになりました
まとめ
RAD Studio 11のVCLには多くの新機能が搭載されているという印象をお持ちの方もいらっしゃると思いますが、それは正しいです。RAD Studio 11では、まったく新しい魅力的なコンポーネントではなく、多くの小さな問題の修正やご要望を改善し、ライブラリ全体をよりモダンで堅牢にすることに重点を置きました。VCLのコアコンポーネントの開発チームはかなりの数の未解決問題も修正しました。VCLライブラリを使用しているすべての開発者がこの努力を評価してくれることを願っています。またエンバカデロでは、いつでもお客様からの追加のアイデアや提案を歓迎いたします。