我在 TPageControl 上有一些 TTabSheet 像这样。
选项卡 1 选项卡 2 选项卡 3 选项卡 4
但我希望我的第一个标签开始一个特定的位置,依此类推;
Tab1 Tab2 Tab3 Tab4
如何在 Delphi XE 中设置起始位置?和鼠标点击将正常工作。
最简单的解决方案是在第一个选项卡的标题前添加空格(参见下图中的第二个示例)。
但是我会选择通过实现事件来插入一个无法设置为活动状态的虚拟选项卡(参见第一个示例)PageControl.OnChanging
,如下所示:
procedure TForm1.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
AllowChange := not PtInRect(PageControl1.TabRect(0),
PageControl1.ScreenToClient(Mouse.CursorPos));
end;
您可以查看 Raize 控件。他们的标签页控件有很大的灵活性,但我不知道他们是否做你想要的。他们有一个不错的可下载演示程序,您可以玩它来看看他们是否按照您的意愿行事。如果你没有找到你想要的,你也可以给他们发邮件询问是否有可能。
这不是一个免费的图书馆,但是,IMO,物有所值。我们经常使用 Raize 控件并且对它们非常满意。