2012-05-30 82 views
1

我有TPageControl这样的一些TTabSheet。TPageControl/TTabSheet位置德尔福XE

TAB1 TAB2 TAB3 TAB4

但我想我的第一个标签开始的特定位置等;

 Tab1 Tab2 Tab3 Tab4 

如何在Delphi XE中设置起始位置?和鼠标点击将正常工作。

+1

是否要在制表符之前进行固定填充? – teran

+0

是的,我想做固定填充。第一个选项卡是开始50等等。 –

回答

2

最简单的解决方案是在第一个标签的标题前添加空格(请参阅下图中的第二个示例)。

但我会选择将不能设置一个活动虚设接线(见第一样品)通过实施PageControl.OnChanging事件,因为这样的:

procedure TForm1.PageControl1Changing(Sender: TObject; 
    var AllowChange: Boolean); 
begin 
    AllowChange := not PtInRect(PageControl1.TabRect(0), 
    PageControl1.ScreenToClient(Mouse.CursorPos)); 
end; 

Padding on tab caption

+0

这些确实是这样做的最简单方法,但当然也有其他更复杂的方法,也可能值得研究。 –

+0

看起来像这样很容易。但是,正如你所知道的,你不能设置第一个标签的位置和宽度,也感觉到你有一个空标签。 –

0

你可能需要看看Raize控件。他们的表格控件有很大的灵活性,但我不知道他们是否按照你的意愿去做。他们有一个很好的下载演示程序,你可以玩,看看他们是否做你想做的。如果你没有找到你想要的东西,你也可以发邮件给他们询问是否有可能。

这不是一个免费的图书馆,但是,海事组织,非常值得的钱。我们经常使用Raize控件,并且对它们非常满意。