TPageControl和Startmargin

时间:2012-07-04 16:24:22

标签: delphi delphi-xe

我需要TPageControl中的StartMargin属性,例如TTabSet中的StartMargin。有谁有任何想法,如何在TPageControl中创建{{1}}属性?

对于不熟悉StartMargin的人,以下是其文档中的相关文字:

  

确定第一个选项卡在选项卡集控件的左边缘显示的距离(以像素为单位)。

2 个答案:

答案 0 :(得分:1)

如果我理解正确,那么您可以使用标准控件执行此操作。

在对象检查器中设置TPageControl - >边距 - >剩下来说50.然后将AlignWithmargins设置为True。

同样适用于TTabSheet

或者你需要不同的东西吗?

编辑参考评论: 这同样适用于TTabSet:设置左边距,AlignWithMargins并在面板上对齐顶部。 这会给你效果。但现在您必须管理自己的页面可见性和页面切换:(

答案 1 :(得分:0)

或者,对于多版本解决方案:

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
    Inc(PRect(Msg.LParam)^.Left, 50)
  else
    Dec(PRect(Msg.LParam)^.Left, 50);
end;