名前付きプロパティーをオブジェクトと関連付ける
ユーザー・プロパティーと同様に、
IlSymbol を使用して名前付きのプロパティーをグラフィック・オブジェクトと関連付けます。
IlSymbol を
IlvNamedProperty のサブクラスの 1 つだけに付加して、確実に正しいタイプのプロパティーを取得します。
名前付きプロパティーを処理するには、次の IlvGraphic クラスの 3 つのメンバー関数を使います。
IlvNamedProperty* getNamedProperty(const IlSymbol*) const;
IlvNamedProperty* setNamedProperty(IlvNamedProperty*);
IlvNamedProperty* removeNamedProperty(IlSymbol*);
処理している名前付きプロパティーを示すのに必要なのは、IlSymbol のみであることが分かります。
定義済み名前付きプロパティー:ツールチップ
定義済み名前付きプロパティーの例として、ツールチップがあります。これは、ポインティング・デバイスがパネル制御要素 (ガジェットなど) に入り、しばらく留まったときにポップ・アップする小さなテキスト・ウィンドウです。 クラスは <ilviews/graphics/tooltip.h> ヘッダー・ファイルで定義されます。
グラフィック・オブジェクトにツールチップを設定、取得したり、そこから削除するには、次を記述します。
obj->setNamedProperty(new IlvToolTip("Text"));
...
IlvToolTip* toolTip = IlvToolTip::GetToolTip(obj);
...
delete obj->removeNamedProperty(toolTip->getSymbol());
名前付きプロパティーを、別のオブジェクトへ移動させる場合があります。名前付きプロパティーのリストから削除せずに名前付きプロパティーを移動するには、IlvGraphic::removeNamedProperty メンバー関数を使用します。名前付きプロパティーを削除し、使用していたメモリーをクリアにするには、明示的に delete を呼び出します。
IlvNamedProperty のサブクラスとそれを参照するシンボル (すなわち
IlSymbol へのポインター) は緊密に結合しているため、ほとんどの場合、このシンボルはプロパティー・クラスのスタティック・データ・メンバーになります。ただし、これは必須ではありません。プロパティー・クラスのスタティック・データ・メンバーを使用すると、オブジェクトから名前付きプロパティーを取得することができます。これに使用するシンボルはユーザーに認識されない場合がありますが、クラスからは直接アクセスできます。
上記の例で、ツールチップ・プロパティーが使用するシンボルは表示されないことがわかります。名前付きプロパティーを取得するには、IlvNamedProperty::getSymbol メンバー関数を使用してプロパティーのシンボルを取得するだけです。
名前付きプロパティーはオブジェクトにコピーされて保存され、オブジェクトを削除すると削除されます。名前付きプロパティーは既存クラスの追加データ・メンバーのように振る舞い、パワフルな API を定義して名前付きプロパティー・クラスのデータにアクセスでききます。
Version 6.0
Copyright © 2015, Rogue Wave Software, Inc. All Rights Reserved.