Недавно добавленные исходники

•  Animation Loaders  993

•  DeLiKaTeS Tetris (Тетрис)  5 921

•  TDictionary Custom Sort  7 873

•  Fast Watermark Sources  7 539

•  3D Designer  10 775

•  Sik Screen Capture  8 102

•  Patch Maker  8 296

•  Айболит (remote control)  8 349

•  ListBox Drag & Drop  7 198

•  Доска для игры Реверси  101 229

•  Графические эффекты  8 415

•  Рисование по маске  7 789

•  Перетаскивание изображений  6 381

•  Canvas Drawing  6 759

•  Рисование Луны  6 687

•  Поворот изображения  5 809

•  Рисование стержней  4 755

•  Paint on Shape  3 453

•  Генератор кроссвордов  4 454

•  Головоломка Paletto  3 593

•  Теорема Монжа об окружностях  4 384

•  Пазл Numbrix  2 841

•  Заборы и коммивояжеры  3 793

•  Игра HIP  2 560

•  Игра Go (Го)  2 568

•  Симулятор лифта  2 955

•  Программа укладки плитки  2 384

•  Генератор лабиринта  3 138

•  Проверка числового ввода  2 618

•  HEX View  3 023

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Недоступная закладка в компоненте TabbedNotebook



Есть ли возможность в компоненте Tabbednotebook сделать какую-либо страницу недоступной? То есть не позволять пользователю щелкать на ней и видеть ее содержимое?

Да, такая возможность существует. Самый простой путь - удалить страницу, например так:


with TabbedNotebook do
  Pages.Delete(PageIndex);

и снова включить ее (при необходимости), перегрузив форму.

Блокировка (а не удаление) немного мудренее, поскольку необходима организация цикла в процедуре создания формы, присваивающая имена закладкам компонента TabbedNotebook. Например так:


J := 0;
with TabbedNotebook do
for I := 0 to ComponentCount - 1 do
if Components[I].ClassName = 'TTabButton' then
begin
Components[I].Name := ValidIdentifier(TTabbedNotebook(
Components[I].Owner).Pages[J]) + 'Tab';
Inc(J);
end;

где ValidIdentifier ValidIdentifier - функция, которая возвращает правильный Pascal-идентификатор, производный от строки 'Tab':


function ValidIdentifier (theString: str63): str63;
{--------------------------------------------------------}
{ Конвертирует строку в правильный Pascal-идентификатор, }
{ удаляя все неправильные символы и добавляя символ '_', }
{ если первый символ - цифра                             }
{--------------------------------------------------------}
var
I, Len: Integer;
begin
Len := Length(theString);
for I := Len downto 1 do
if not (theString[I] in LettersUnderscoreAndDigits) then
Delete(theString, I, 1);
if not (theString[1] in LettersAndUnderscore) then
theString := '_' + theString;
ValidIdentifier := theString;
end; {ValidIdentifier}

Затем мы можем сделать закладку компонента TabbedNotebook недоступной:


with TabbedNotebook do
begin
TabIdent := ValidIdentifier(Pages[PageIndex]) + 'Tab';
TControl(FindComponent(TabIdent)).Enabled := False;
{ Переключаемся на первую доступную страницу: }
for I := 0 to Pages.Count - 1 do
begin
TabIdent := ValidIdentifier(Pages[I]) + 'Tab';
if TControl(FindComponent(TabIdent)).Enabled then
begin
PageIndex := I;
Exit;
end;
end; {for}
end; {with TabbedNotebook}

следующий код восстанавливает доступность страницы:


with TabbedNotebook do
for I := 0 to Pages.Count - 1 do
begin
TabIdent := ValidIdentifier(Pages[I]) + 'Tab';
if not TControl(FindComponent(TabIdent)).Enabled then
TControl(FindComponent(TabIdent)).Enabled := True;
end; {for}








Copyright © 2004-2026 "Delphi Sources" by «SiteAnalyzer». Delphi World FAQ

Группа ВКонтакте