![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как программно запретить переключение между страницами PageContro
billybons © (2002-08-08 07:50:00)Существует ли способ для сабжа ? TabSheet1.Enabled переключение не запрещает :(
ЮЮ (2002-08-08 08:52:00) [1]>Странный какой-то способ, уж извините...
Этот способ не позволяет входить на TabSheet-ы, у котрых Enabled=False. О чем и спрашивалось первоначально. Это при детализации выяснилось, что нужно совсем другое. Отсюда и странности.
billybons (2002-08-08 08:40:00) [2]
> Юрий Зотов
благодарю
Юрий Зотов (2002-08-08 08:30:00) [3]Странный какой-то способ, уж извините...
Из справки:
Set the AllowChange parameter to False to prevent the change.
То есть:
procedure TForm1.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
AllowChange := not Включен_режим_редактирования
end;
И больше ничего не нужно.
billybons (2002-08-08 08:13:00) [4]
> ЮЮ
аааа , извини, сразу не вЪехал
billybons (2002-08-08 08:10:00) [5]Да нет , хотелось бы по включению режима редактирования на одной закладке сделать невозможным переключение на другую. Пока ничего умнее , кроме как преключать остальные TabSheet-ы Visible в false , не придумал, а хотелось бы чтоб они оставались видны, но переключение на них было бы невозможно.
ЮЮ (2002-08-08 08:02:00) [6]procedure TForm1.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
//запоминаем где были
if PageControl1.ActivePage.Enabled
then PageControl1.tag:=PageControl1.TabIndex;
end;
procedure TForm1.PageControl1Change(Sender: TObject);
begin
//возвращам туда, откуда пытались прийти
if not PageControl1.ActivePage.Enabled
then PageControl1.ActivePage:=PageControl1.Pages[PageControl1.tag]
end;
ЮЮ (2002-08-08 07:54:00) [7]TTabControl.OnChanging