Ваша помощь нужна.
Можно ли удалить границу TabSheet (~ 4px)? Я использую PageControl как панель управления вместо фреймов, окон и т.д. Я хочу, чтобы все было прямо.
Большое спасибо за помощь!
Ваша помощь нужна.
Можно ли удалить границу TabSheet (~ 4px)? Я использую PageControl как панель управления вместо фреймов, окон и т.д. Я хочу, чтобы все было прямо.
Большое спасибо за помощь!
unit Unit1;
interface
uses
...,
CommCtrl;
type
TPageControl = class(ComCtrls.TPageControl)
private
procedure TCMAdjustRect(var Msg: TMessage); message TCM_ADJUSTRECT;
end;
TForm1 = class(TForm)
...
end;
...
procedure TPageControl.TCMAdjustRect(var Msg: TMessage);
begin
inherited;
if Msg.WParam = 0 then
InflateRect(PRect(Msg.LParam)^, 4, 4)
else
InflateRect(PRect(Msg.LParam)^, -4, -4);
end;
...
end.
Если вы не возражаете против использования сторонних инструментов, самым простым решением, вероятно, будет использование TjvPageControl из JVCL. Он имеет свойство ClientBorderWidth, которое вы ищете.
Альтернативой является использование TTabSet с TPageControl: в событии onCreate формы поместите этот код, чтобы скрыть вкладку.
procedure TMainForm.FormCreate(Sender: TObject);
var
I : Integer;
begin
for I := 0 to Pred(PageControl1.PageCount) do
PageControl1.Pages[I].TabVisible := False;
PageControl1.Style := tsFlatButtons;
PageControl1.ActivePageIndex := 0;
TabSet1.Style := tsModernPopout;
TabSet1.SelectedColor := clMoneyGreen;
TabSet1.UnselectedColor := clGradientActiveCaption;
TabSet1.SelectedColor := clGradientActiveCaption;
end;
procedure TMainForm.TabSet1Change(Sender: TObject; NewTab: Integer;
var AllowChange: Boolean);
begin
PageControl1.ActivePageIndex := NewTab;
end;