PageControlの背景色を変更するには?

解決


吉岡  2004-11-09 07:11:36  No: 11669  IP: [192.*.*.*]

久しぶりに投稿します。

過去ログを検索したらPageControlのタブの色の変更方法は見つけましたが、ページ自体の背景色の変更はできないのでしょうか?

フォームの背景色が白なのでTabSheetの背景色も白にしたいだけなのですが、例えばフォームならform1.Colorといった背景色用のプロパティがあるのに対し、PageControlや配下のTabSheetにもそれらしいプロパティが見当たりませんので、自分で描画する必要があるかと思いますが、具体的な方法が思い浮かびません。

宜しければご教授下さると幸いですm(__)m

編集    削除
@っしー  2004-11-09 07:41:59  No: 11670  IP: [192.*.*.*]

TPanelを乗せるのは如何でしょうか?

編集    削除
吉岡  2004-11-09 17:36:58  No: 11671  IP: [192.*.*.*]

@っしー様。お返事ありがとうございます。

> TPanelを乗せるのは如何でしょうか?

ご教授の通りやってみましたが、どうにもうまくいきません。
タブ上に配置したパネルのAlignプロパティをalClientに設定し、
FormCreateで

TabSheet1.TabVisible := False;
TabSheet2.TabVisible := False;
TabSheet3.TabVisible := False;
・・・・

をやってタブそのものを消して、別のクリックイベントでページを切り替えられるようにしたのですが、配置したPanelを囲むようにPageControlの灰色が出てしまいます。

これはプロパティ等を工夫することでどうにかなるのでしょうか?
それともPageControlとTabSheetは原色の灰色でしか使えない代物なのでしょうか?

編集    削除
にしの  2004-11-09 18:49:58  No: 11672  IP: [192.*.*.*]

BevelInner、BevelOuterをbvNoneにすれば、枠は消えますよ。

編集    削除
にしの  2004-11-09 18:51:15  No: 11673  IP: [192.*.*.*]

もう1つ。
PageControlのStyleを、tsButtonsにすれば、TPageControlの枠が消えます。

編集    削除
にしの  2004-11-09 18:53:23  No: 11674  IP: [192.*.*.*]

勘違いでした^^;
TPageControlの部分出ますね。ちょっと調べます。

編集    削除
吉岡  2004-11-09 19:07:39  No: 11675  IP: [192.*.*.*]

@っしー様。申し訳ありません。
フォームの上にWindow背景となるBitmapを張っていたため気が付かなかったのですが(WindowのサイズもBitmapにあわせているため)、確認したらフォームの背景が灰色になっておりました・・(なんともくだらないミスでした)
そのためタブの背景色が灰色で表示されていたようです。

なお、探してたらタブシートにColorプロパティを追加するサンプルがありました。

http://www.swissdelphicenter.ch/torry/showcode.php?id=788

こちらを参考にしてコードを書いたらタブの淵も含めきれいに消えました^^

編集    削除
にしの  2004-11-09 19:08:30  No: 11676  IP: [192.*.*.*]

やりようによっては出来そうですが、時間がないので代替案です。

TPageControlの代わりにTPanelをベベル無し、ボーダー無しで貼り付けておきます。
これをParentとして、新しいTPanelを貼り付けalClientにし、表示したいパネルだけVisible=True(他はVisible=False)にすれば出来ます。

編集    削除
吉岡  2004-11-09 19:09:15  No: 11677  IP: [192.*.*.*]

あ、書いている最中に西野さんまでご回答を下さっていたとは。
単純なミスで本当に申し訳ありませんm(__)m

編集    削除