Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.25;
Скачать: CL | DM;

Вниз

Как сделать недоступной закладку PageControl ?   Найти похожие ветки 

 
ЮРИЙ_К ©   (2003-09-11 10:27) [0]

Уважаемые коллеги! Подскажите, как поступить в данной ситуации. Есть PageControlс тремя закладками. Мне нужно, чтобы по некому условию, третья закладка была недоступна, подчеркиваю, не невидна, а недоступна, при этом, чтобы ее Caption был стандартно затенен как принедоступности. Делал следующее:

MyLAbel - поле из базы, тип Boolean;

if ((Sender as TPageControl).ActivePageIndex = 2) then
AllowChange := MyLAbel.Value;

и так

if ((Sender as TPageControl).ActivePage = TabSheet1) then
AllowChange := MyLAbel.Value;

и так

if ((Sender as TPageControl).ActivePage = TabSheet1) and MyLAbel.Value then
AllowChange := true
else
AllowChange := False;

Короче, никак не работает. Нажимаю на первую, вторую... Стоит нажать на третью закладку - все блокируются. В чем здесь не правильно сделано?

ЗЫ: Обрабатывается событие PageControl2Changing(Sender: TObject; var AllowChange: Boolean);


 
ZEE ©   (2003-09-11 10:35) [1]

if TPageControl(Sender).TabIndex = 2
then AllowChange := MyLAbel.Value
else AllowChange := true;


 
ЮРИЙ_К ©   (2003-09-11 10:43) [2]

Не, все-равно не работает, перейдя на третью- клинят все ! 8-(
Такое ощущение, что событие onChanging не работает, почему пускает нажать на закладку. Ведь оно должно срабатывать ешшо до переключения


 
ZEE ©   (2003-09-11 10:54) [3]

var i:integer = 0;// глобальная переменная
...
procedure TForm1.PageControl1Change(Sender: TObject);
begin
if (TPageControl(Sender).TabIndex=2)and(not MyLAbel.Value) then
begin
TPageControl(Sender).TabIndex:=i;
end;
i:=TPageControl(Sender).TabIndex;
end;


 
ЮРИЙ_К ©   (2003-09-11 11:12) [4]

Ага, ну это легкий способ обмана, точнее не пускать и все. Мне все-же интересно, почему AllowChange не работает? Но всеравно спасибо 8-).


 
ЮРИЙ_К ©   (2003-09-11 11:13) [5]

Ага, ну это легкий способ обмана, точнее не пускать и все. Мне все-же интересно, почему AllowChange не работает? Но всеравно спасибо 8-).


 
Кщд   (2003-09-11 11:18) [6]

а у TabSheet.Enabled выставлять?... не помогает?


 
ZEE ©   (2003-09-11 11:18) [7]

> почему AllowChange не работает?
это действительно странно. вообщето он работает только уже после того как TabIndex изенился (и соотв. дальше Change перестает работать), а надо бы чтоб проверял до изменения...
если очень надо OnChanging юзать, то надо покапться в исходниках, что-нить там поменять (например наследника своего сделать) и дальше пользовать ...


 
ZEE ©   (2003-09-11 11:19) [8]


> Кщд (11.09.03 11:18) [6]
> а у TabSheet.Enabled выставлять?... не помогает?

это помогает "задисаблить" сам TabSheet, а не кнопочку по кот. на него попадаешь


 
Rol   (2003-09-11 11:22) [9]

>ZEE
мои извинения. невнимательность.


 
AlexSV ©   (2003-09-11 11:54) [10]

> ЮРИЙ_К © (11.09.03 11:13) [5]
> почему AllowChange не работает?


Потому что при установке AllowChange в False Вы не сможете выйти из активного TabSheet.
Дословно(из help"a): Use an OnChanging event handler to prevent the user from leaving a tab setting until certain conditions have been met.
Так что вариант > ZEE © (11.09.03 10:54) [3] это не легкий способ обмана а вариант решения вопроса.


 
ЮРИЙ_К ©   (2003-09-15 08:49) [11]

Наверное это и правильно. С двуия закладками - все работало, почему-то. Как сталкнулся с тремя - обломс 8-(



Страницы: 1 вся ветка

Текущий архив: 2003.09.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
14-82467
k-man
2003-09-05 18:34
2003.09.25
Вот так бывает...


3-82162
Hooch
2003-09-03 12:22
2003.09.25
был ли модифицирован DataSet ?


6-82379
b0bi
2003-07-28 17:39
2003.09.25
Как получить html страницу и сохранить её в файл


1-82291
Micah'GF
2003-09-15 16:59
2003.09.25
Компонент с цветами


1-82235
LeNa19
2003-09-10 23:25
2003.09.25
создание обработчиков событий в runtime