Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Tab Control -? [D6, D7, 95/98, 2000, XP]


Страницы:   1 2

TIF ©   (2007-09-15 13:21:00) 

Здравствуйте.

Вопрос такой: когда нажимаю TAB, то происходит фокусировка на Таб Контрол, и потом можно передвигаться по его вкладкам (с помоью "стрелка влево", "стрелка вправо"). Надо: как-то запретить такой переход, чтобы нельзя было с помощью клавиатуры переходить с одной вкладки на другую.

Пожалуйста, помогите, а то уже месяц бьюсь на этим, но никто не может ничего дельного сказать.


TIF   (2007-10-15 11:52:00) [1]


> я уж всё равно решение нашёл :-)


вроде :-)


TIF   (2007-10-13 15:26:00) [2]


> Могу предложить внятно описать задание


я уж старался, описал по-моему очень понятно. я уж всё равно решение нашёл :-)


Игорь Шевченко   (2007-10-12 12:24:00) [3]


> хотелось бы, но что можете предложить?


Могу предложить внятно описать задание


TIF   (2007-10-12 12:08:00) [4]


> может не мучить пользователя и использовать вместо таб-контрола
> что-то другое ?


хотелось бы, но что можете предложить?


ASoft   (2007-10-11 15:15:00) [5]


TIF ©   (11.10.07 14:59) [14]
> а мне нужна блокировка, которая сработает лишь тогда, когда
> юзер попытается выполнить "незаконную" операцию, т.е. перейти
> на следующую вкладку.

ну, может тогда OnChanging(Sender: TObject; var AllowChange: Boolean) подойдет?
> юзер попытается выполнить "незаконную" операцию
AllowChange:=False;


Dennis I. Komarov   (2007-10-11 15:12:00) [6]

if not HaveRights(User) then .....Enable:=false; И все тут :)


Игорь Шевченко   (2007-10-11 15:08:00) [7]


> когда юзер попытается выполнить "незаконную" операцию, т.
> е. перейти на следующую вкладку


может не мучить пользователя и использовать вместо таб-контрола что-то другое ?


TIF   (2007-10-11 14:59:00) [8]


> так а почему бы TabVisible = false не сделать?


а прикол в том, что вкладок будет, например, 50 или больше. Придётся тогда прописывать визибл для каждой, а это просто ужас...

можно, конечно, выполнить поиск всех вкладок, но этот способ менее рациональный и будет выполняться много раз при работе с программой, а мне нужна блокировка, которая сработает лишь тогда, когда юзер попытается выполнить "незаконную" операцию, т.е. перейти на следующую вкладку. Если попыток не будет, то эта процедура вообще не выполнится.


clickmaker   (2007-10-02 16:29:00) [9]


> [12] TIF ©   (02.10.07 16:24)

так а почему бы TabVisible = false не сделать?


TIF   (2007-10-02 16:24:00) [10]


> может вам нужен просто запрет выбора другой закладки при
> определенном условии?


Вкладки закрыты (накрыты поверх) панелью, т.е. они невидимы, и щёлкать по ним нельзя, но мне нужно ещё запретить переход по вкладкам с помощью клавиатуры


ASoft   (2007-10-02 13:00:00) [11]


> TIF ©   (15.09.07 13:21)

может вам нужен просто запрет выбора другой закладки при определенном условии?
Действительно [7], зачем так извращаться...:)


clickmaker   (2007-10-02 11:15:00) [12]


> [9] TIF ©   (02.10.07 10:53)

это не нужно отслеживать.
Это стиль окна

const
 TCS_FOCUSNEVER = $8000;

 SetWindowLong(PageControl1.Handle, GWL_STYLE,
   GetWindowLong(PageControl1.Handle, GWL_STYLE) or TCS_FOCUSNEVER);


TIF   (2007-10-02 10:53:00) [13]

не понял, как это можно отслеживать...


TIF   (2007-09-29 15:25:00) [14]


> TCS_FOCUSNEVER ?


а как это отслеживать?


Германн   (2007-09-28 15:20:00) [15]


> Пожалуйста, помогите, а то уже месяц бьюсь на этим

И стоило ли целый месяц так извращаться над стандартным поведением стандартного компонента?


clickmaker   (2007-09-28 14:45:00) [16]

TCS_FOCUSNEVER ?


TIF   (2007-09-28 14:10:00) [17]

СПАСИБО! Этот способ работает, но возник ещё нюанс:

переход по вкладкам осуществляется при нажатии ctrl+tab и ctrl+tab+shift.

Хорошо бы заблокировтаь и их...


{RASkov}   (2007-09-15 14:25:00) [18]

Хм... Впрочем, сейчас проверил.... нормально вроде....
хотя фик знает как там нужно автору :)


{RASkov}   (2007-09-15 14:22:00) [19]

Неее [1] не верно.... так как там вообще стрелки вправо-влево запрещаются во всем ТабКонтроле...)


{RASkov}   (2007-09-15 14:07:00) [20]

>  with TWMKey(Mes) do
>  if (CharCode=VK_LEFT) or ( TWMKey(Mes).CharCode=VK_RIGHT)
> then CharCode:=0 else OldWndProc(Mes);

ошибки нет, но забыл убрать :)
 with TWMKey(Mes) do
  if (CharCode=VK_LEFT) or (CharCode=VK_RIGHT) then CharCode:=0 else OldWndProc(Mes);


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо