![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выключение вкладок PageControl [D7, WinXP]
Ilg © (2006-03-14 17:52:00)Здравствуйте!
Скажите, есть ли возможность выключать отдельные вкладки PageControl (типа Enabled у Button), чтобы переход на них был не возможен. Пробовал делать
TabSheet1.Enabled:=false;
но вкладка все равно открывается (правда ее элементы не доступны).
vovnuke (2006-03-18 16:25:00) [1]в OnChanging сохраняй в какое нибудь поле ActivePage, а в OnChange проверяй можно или нет, если не то возвращай ActivePage на место
Рустем (2006-03-18 15:36:00) [2]
> А что такое MouseX, MouseY (координаты мыши?)? Откуда их
> взять? Если это координаты, то координаты относительно экрана
> или компонента PageControl?
Относительно левого верхнего угла первой закладки компонента PageControl. IndexOfTabAt возвращает номер закладки при указании соответствующих значений координат. Координаты можно получить, например, из обработчика события OnMouseMove компонента PageControl.
> сработает ли это при смене вкладок с помощью клавиатуры?
Нет.
А если взять за идею такой вариант (невозможно выбрать вторую закладку):
...
var
Form1: TForm1;
APage: Integer;
...
procedure TForm1.PageControlChanging(Sender: TObject;
var AllowChange: Boolean);
begin
APage := PageControl.ActivePageIndex;
end;
...
procedure TForm1.PageControl1Change(Sender: TObject);
begin
if PageControl.ActivePageIndex = 1 then
PageControl.ActivePageIndex := APage;
end;
...
Это вариант с мышью. Для переключения закладок с помощью и мыши, и клавиатуры необходимо доработать...
Ilg (2006-03-18 11:06:00) [3]А что такое MouseX, MouseY (координаты мыши?)? Откуда их взять? Если это координаты, то координаты относительно экрана или компонента PageControl? И если это координаты мыши, то сработает ли это при смене вкладок с помощью клавиатуры? Спасибо!
clickmaker (2006-03-14 18:43:00) [4]IndexOfTabAt(MouseX, MouseY)
Ilg (2006-03-14 18:40:00) [5]TabSheet1.TabVisible = false - не подходит.
А с OnChanging, что-то не могу разобраться: Как определить, на какую вкладку выполняется переход (ведь блокировать мне нужно не все вкладки)?
При OnChanging свойство ActivePage еще содержит текущую вкладку.
clickmaker (2006-03-14 17:56:00) [6]TabSheet1.TabVisible = false
или в OnChanging - AllowChange := false;