Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать неактивной 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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо