TForm
をTTabSheet
にドッキングすると、フォームの背景色が灰色になります。一方のタブ紙には、背景色が白です。タブシートのドッキングされたフォームの色を正しい色に設定するにはどうすればよいですか?
テーマ設定が無効になっていると、それはもっと複雑になります(クラシックなWindowsテーマなど)。
現在のコードでは、灰色のフォームには白いボーダーがあり、これはかなり醜いです。
したがって、フォームの背景色をタブシートの背景色に設定するにはどうすればよいですか?これでうまくいかない場合:タブ紙の背景色をフォームの背景色に設定するにはどうすればよいですか?
実行時テーマを有効にし、実行時テーマを無効にする必要があります。このブログのポストクリスRollistonによってTheming Owner-Drawn Tabs題しへ
program Project1;
uses
Graphics,
Controls,
Forms,
ComCtrls;
{$R *.res}
var
Main : TForm;
Sub : TForm;
PageControl : TPageControl;
TabSheet : TTabSheet;
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm, Main);
Application.CreateForm(TForm, Sub);
PageControl := TPageControl.Create(Main);
PageControl.Parent := Main;
PageControl.Align := alClient;
TabSheet := TTabSheet.Create(Main);
TabSheet.PageControl := PageControl;
Sub.Dock(TabSheet, TabSheet.ClientRect);
Sub.Align := alClient;
Sub.Show;
// Sub.Color := clWhite; // TabSheet.Color;
Application.Run;
end.
を見つけた私はそれがネイティブCommonControls TTabSheetは+ 'Form.Dock/ManualDock'今までそれを処理するよりも、このはるかに良いを扱うので、あなたが代わりにJVCLでJvDockingを使用することをお勧め。ユーザーのドラッグ&ドロップドッキングとそのすべてを実行時にしたくない場合は、TPageControlをドロップし、少なくともMS以外の一般的なコントロールのタブ/ページコントロールを使用することをお勧めします。あなたが思うよりもはるかに悪いです。 Win7/64bit上のMSCOMMONCONTROLS dllのバグのために、Win7/32bitよりもWin7/64bit上で異なる動作をします。 –