top pageへ.

Software Library.

Original Components.

PagePanel.

  freeware

ダウンロード.

Version1.10
公開日2007/07/22
ファイルサイズ24kB
ファイル名pagepanel110.zip
形式zip書庫

概要.

 マルチページのパネル、見方を変えればタブのないページコントロールです。
 「そんなものどうやって使うんだ」と思われるでしょうが、ウィザードのように同じ場所に表示されるコンポーネントを「次へ」ボタンで切り替えるような用途に使えます。ページコントロールと同様に使えますが、タブがないのでエンドアプリケーションユーザがページを切り替える手段を別途用意する必要があります。
 TCustomControlから派生しています。


スクリーンショット.



フォームエディタに配置したコンポーネントの様子です。

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

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

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

インストール.

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


アンインストール.

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


改版履歴.

Version日付変更点
1.102007/07/22
  • TPagePanel::Pagesプロパティをpublishに、さらにプロパティエディタを追加
  • TPageSheetにOnShow、OnHideイベントを追加
  • TPageSheetのベベルを有効に
  • TPageSheet::Visibleプロパティの動作を修正(trueにされたシート以外はfalseに)
  • 表示ページがない場合のTPagePanel::FindNextPageの動作を修正
  • 表示ページがない場合のTPagePanel::SelectNextPageの動作を修正
1.002006/08/22
  • 初版公開

今後の予定.


ひとこと

Ver. 1.10

 実際使ってみると、やはりベベルがないのは不便ですね。Ver. 1.00を作ったときはPanelやBevelを配置すれば済むと思っていたので無効化していたのですが、不便なので今回有効にしました。継承プロパティを公開するだけなのに、Ver. 1.00では動作確認も面倒だったし、当事の使い方ではベベルを使わなかったので。
 ついでに、思いつきでTPageSheetにOnShow/OnHideイベントを追加。

 さらに、カスタムプロパティエディタの作り方のサンプルとして、プロパティエディタを装備しました。ページシートの順番を変えることが出来ない不便さも気になっていたので、オブジェクトツリーでの編集が出来ないことの代替としても有効だと思いますし、プロパティエディタのサンプルになるものを公開しておきたかったので。リードオンリーのTPagePanel::Pagesプロパティを編集するというのも何だかへんな感じもしますが。


Ver. 1.00

 オリジナルコンポーネント第2弾は最新のコンポーネントです。同期オブジェクトなどコンポーネントでないものをカウントから除外すると、4番目に制作を開始したコンポーネントです。他にも公開待ちのコンポーネントがあるのだ。これら公開待ちのコンポーネントとPagePanelは、現在開発中のアプリケーションで使用しています。そのアプリケーションが使い方の参考ですね。ただ、このアプリケーションは原因不明のバグでなかなか進んでいませんが。
 このPagePanelはコンポーネント本体よりも、コンポーネントエディタが開発期間の半分以上を占めてしまいました。コンポーネントエディタの作り方って、カスタムコンポーネント本体よりも作り方に関する情報が少なくて、理解に苦労したから。C++Builderのヘルプを見てもサンプルソースさえないのはひどくない? ポップアップメニューを階層化したかったけど、ヘルプには出来るようなこと書いてあるのに、全然作り方がわからんかったし。
 ソースを覗くとわかりますが、TPageSheetクラスを新たに作らなくてもTTabSheetを流用すればよさそうに見えます。しかしコンポーネントエディタの登録はコンポーネントと1対1なので、そのままTTabSheetを使うわけにもいきませんでしたので、独自クラスを作ってしまいました。


▲page top.
Copyright 2005-2016, yosshie.