top pageへ.

Software Library.

Original Components.

FontNameBox.

  freeware

ダウンロード.

Version1.10
公開日2009/01/07
ファイルサイズ24kB
ファイル名fontnamebox110.zip
形式zip書庫

概要.

 フォント名を選択するドロップダウン/リストボックス。それに文字セットを選択するドロップダウン/リストボックス。
 ドロップダウンとリストボックスは機能的に同じです。フォント名選択と文字セット選択は連携します。
 フォント名選択ドロップダウン/リストボックスは、フォントの特徴による各種絞り込みが出来るのはもちろん、選択されたフォントのサポートする文字セットを返すことが出来ます。それをもとに、文字セット選択ドロップダウン/リストボックスは候補を絞り込みます。
 TCustomComboBoxまたはTCustomListBoxから派生しています。


スクリーンショット.



フォームエディタに配置したコンポーネントの様子です。
配置位置は下記のとおり。

TFontNameDropDown TCharsetDropDown
TFontNameListBox TCharsetListBox

マニュアル&ヘルプ&サンプル.

 マニュアルは別ページで。このマニュアルはアーカイブに含まれています。
 ヘルプはこちらのページから別途ダウンロードしてください。
 一応、サンプルとして簡単な動作確認の出来るアプリのソースを、アーカイブに含めてあります。

インストール/アンインストール.

インストール.

 インストーラは付属していません。
 ソースでの公開なので、適当に使ってください。そのままスタティックリンクしてもいいのですが、パッケージにするのがお勧めです。
 コンポーネントは"Ysl"というパレットを作ってその中に登録されます。パレットを変更したい場合は直接ソースを書き換えてください。


アンインストール.

 アンインストーラも付属していません。


改版履歴.

Version日付変更点
1.10 2009/01/07
  • TFontNameComboBox/TCharsetComobBoxをTFontNameDropDown/TCharsetDropDownに名称変更
  • TFontNameDropDown::UpdateList/TFontNameListBox::UpdateListメソッドをRefreshに名称変更
  • 内部使用の列挙型、集合型などの名称変更
  • TFontNameDropDown:CharsetControl/TFontNameListBox::CharsetControlプロパティで指定されたコントロールの動的な削除への対応
1.002006/08/22
  • 初版公開

今後の予定.


ひとこと

Ver. 1.10

 カスタムコンポーネントをいくつか作っているうちに気づいた点を修正してみました。
 内部使用しているクラスのクラス名や、メソッド名の変更ですが、他の方の作られたコンポーネントとの名前の衝突の可能性を減らすこと、このサイトで配布している他のコンポーネントとの整合性を考慮してのことです。
 特にTFontNameComboBox/TCharsetComboBoxはひどかったので。「コンボボックス」って、入力エディットとドロップダウンリストの合体だから「コンボボックス」という名前なわけですよね。エディットとしての機能はなくなってるのに、コンボボックスから派生しているからって、「コンボボックス」はないだろうと。


Ver. 1.00

 C++Builderのコンポーネントってたくさんあるように思えるけど、SamplesパレットやWin 3.1パレットにある一部のものを除くと、どれもプリミティブな機能のものばかり。TColorBoxのような、もうちょっと専用の機能を持ったものが欲しくなる。
 それを満たしてくれるコンポーネントを求めてBorlandサイトのカスタムコンポーネントのページや、Delphian Worldに行ってみたけど、Borlandは英文で探しにくいし、Delphian Worldもなかなか期待したものは見つからない。
 コンポーネントの制作はアプリケーションより大変。汎用性のある設計、必要な情報の少なさ、テスト項目の多さ、etc.。ComboBoxとListBoxでコードを共通化したかったけど、ほとんどできなかった。そのためソースは結構大きいです。
 Technologyプロパティ用にプロパティエディタを作ろうとしたのですが、どうもC++Builderではintなどの組み込み型用のプロパティエディタを作ることができないようです。RegisterPropertyEditor関数の第1引数PropertyTypeには型情報ポインタを必要としますが、組み込み型ではその型情報ポインタを得ることができないためです。同じ理由でSetやAnsiStringもうまく行きませんでした。Delphiで書かれたプロパティエディタを見ると、RegisterPropertyEditor関数コールで__typeinfoとか使っていないのでDelphiでは問題ないようですが、C++Builderではこの点解決されていないのかも。

 で、このコンポーネントをどこで使っているのかというと... 現在使っていません。使う予定だったアプリの制作を止めたので。DatePlusを書き換える機会があれば使うでしょう。しかし、OwnerDrawスタイルって遅いですね。


▲page top.
Copyright 2005-2016, yosshie.