Tab数が1ケ月(28-31)ある場合(TabControl1.Tabsは、日付になってます)、画面の幅の関係で、一部が表示されるわけですが、数が多いとTabIndexの場所が見つけにくい(全部グレーですので(=ω=;))。TabIndexの場所のTab色を帰る事って出来ないのでしょうか?
TPanelを置いて、クリックしたときだけ、TabIndexのあるTabにの違うPanelを重ねて表示させるとかいろいろ試しましたが。。。FormShowの時は、どうしようもなく、隠れているTabを←→で移動するときも、イベントが取れませんし、クリックしないとX軸の場所もとって来れないし。良い案がありましたらよろしくお願いします。
TabIndexの場所のTab色を帰る→変えるの間違いです( ̄□ ̄;)
過去ログをご参照ください。
過去ログに明記されていませんでしたが、TabControlのOwnerDrawプロパティをTrueにする必要があります。
TabControlにはありませんが、その上位クラス TCustomTabControlには
継承用のイベントとして OnDrawTab が用意されていますので
これを利用すればTabの描画を変えることが出来ます。
申し訳ありません。過去ログは見たのですが、現在delphi10.4 , delphi7 ,denphi3 で作業しています。delphi10.4であれば、問題ないのですが、今回はDelphi3当時の物を加工しなくてはならず、グリッドの問題で、10.4に移植出来ないのが現状です。
パーフェクトグリッドという物を使っており、これがネックで移植出来ません(><)
1レコード2段表示の必要があり、しかもあっちこっちで使われている関係上、Delphi3でTabControlのtab色を変更せざるを得ません。よろしくお願いします。
Delphi3はさすがに厳しいですが
タブの描画タイミングで WM_ERASEBKGND が送られますので
これに反応して描画すれば背景だけなら変えられるかも
参考ページ
https://theroadtodelphi.com/2012/04/12/creating-colorful-tabsheets-with-the-vcl-styles/
試していませんが、
http://scan.jp/
で、大野さんが公開されている
「Delphi 3 Q&A 150選」(大野元久著、株式会社ビレッジセンター出版局)
のP.127には、
オーナー描画機能を追加したTabControlEx、PageControlExコンポーネント
に関する記載があるようです。
昔のDELPHIでは無理があるようです。皆さん、ありがとうございました。
ツイート | ![]() |