Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.009 c
3-82108
P0tia
2003-09-04 16:48
2003.09.25
Как узнать номер последней непустой ячейки в EXCEL


1-82300
AndyGee
2003-09-14 14:55
2003.09.25
CreateProcess и перенаправление стандартного ввода-вывода


8-82346
super_alex
2003-05-26 13:42
2003.09.25
Мигает TImage? Что делать?


3-82075
NewD
2003-09-05 13:48
2003.09.25
ADODATASET выдает ошибку при установке в clUseServer


14-82452
Alex1979
2003-09-09 12:43
2003.09.25
Откуда мона скачать Bounds Checker v6.03 Delphi?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский