15

私は Delphi 2009 でフォームを設計しており、TPageControl 要素を理解しようとしています。タブごとに個別のダイアログを作成しようとしています。TTabSheets を作成し、要素を TabSheets に配置することはできますが、問題は、TTabSheet のデフォルトの背景が白く見えるため、大麦が見えることです。TabSheet にパネルを配置しようとしましたが、何らかの理由でパネルが常に TabSheet の背後に表示されます。私の質問: タブ シートの色を標準の Windows ベージュに変更する方法はありますか、それともタブ ページに TPanel を配置して同じ目標を達成する方法はありますか?

4

5 に答える 5

26

styleプロパティをtsFlatButtonsに設定します
。背景の〜color〜は美しいclBtnFaceに戻ります。

于 2011-05-05T22:02:43.027 に答える
6

タブ シートの Windows の標準色は白です。この標準は、XP テーマが導入されたときに生まれました。ユーザーが Windows クラシックに戻すと、背景が灰色になります。【ベージュというよりグレーのことですよね?ベージュは本当に下品でしょう! ]

タブ シート内のパネルは、ページの内側にあるため、ページの後ろに配置することはできません。実際に起こっていることは、標準のタブ シートの色が優先されるように、パネルが透明に描画されていることです。

于 2011-05-05T21:37:40.710 に答える
0

どちらのソリューションもあまり好きではありません。これは、あなたが抱えている問題を阻止するために私がやっていることです. 動作させるために Windows テーマを犠牲にする必要はありません。

ただチェックしてください:

if ThemeServices.ThemesEnabled then
  FormBGColor := clBtnHighlight
else
  FormBGColor := clBtnFace;

タブに表示する前にフォームの色を設定します。

(個人的には、私はこのソリューションが好きではありませんでしたが、私が取り組んでいるプログラムの大部分は、私が始める前にどのようにプログラムされていたので、コンピューターの XOR ターミナル サーバーでがらくたのように見えないようにするために、私がしなければならなかったことです)


ThemeServices は themes.pas にあります

于 2013-12-02T16:13:28.200 に答える