![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать неактивной TabSheet [D7, Win2k]
Санек © (2005-08-12 12:22:00)Добрый день!!!
Подскажите плз, можно ли сделать неактивной TabSheet, т.е. чтобы имя закладки было серым и переход на неё не был возможен.
Св-во Enabled делает недоступным всё на закладке, но не саму закладку, обрабатывать событие OnChanging можно, но как сделать имя закладки серым цветом???
Всем откликнувшимся, спасибки.
Ученик (2005-08-12 23:01:00) [1]
procedure TForm1.FormCreate(Sender: TObject);
begin
PageControl1.OwnerDraw := True
end;
procedure TForm1.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
with PageControl1.ScreenToClient(Mouse.CursorPos) do
AllowChange := PageControl1.IndexOfTabAt(X, Y) <> 1
end;
procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
TabCaption: string;
begin
Control.Canvas.FillRect(Rect);
if TabIndex = 1 then
Control.Canvas.Font.Color := clGrayText
else
Control.Canvas.Font.Color := clBlack;
TabCaption := PageControl1.Pages[TabIndex].Caption;
with Control.Canvas do
TextOut((Rect.Left + Rect.Right - TextWidth(TabCaption)) div 2, Rect.Top + 4, TabCaption)
end;