Форум: "Основная";
Текущий архив: 2003.09.25;
Скачать: [xml.tar.bz2];
ВнизКак сделать недоступной закладку 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.013 c