2012-05-30 3 views
1

У меня есть некоторые TTabSheet на TPageControl, подобные этим.TPageControl/TTabSheet Position Delphi XE

Tab1 Таб2 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 и очень довольны ими.