Перевірка дозволу на переміщення C + + Builder

Випадком, протилежним відходом зі сторінки, є заборона користувачу вибору певної сторінки по клацанню на її закладці в PageControl Цей випадок складніший, ніж попередній Microsoft в своєю безмежною мудрості в Windows 95 не надала керуючому елементу сторінкового діалогу можливості не дозволяти вибір заданої сторінки Деякі сторінкові діалоги, що прийшли з третім рук, надають таку можливість, але все, що написано з використанням стандартного Windows 95 Tab Control, не дозволяє так робити CBuilder, природно, де тільки можливо використовує зашиті в операційній системі керуючі елементи для забезпечення сумісності з іншими додатками Тому ви не можете просто взяти і зробити сторінку недоступною

Насправді можливо зробити так, щоб сторінка поводилася як недоступна Це непросто, тому ми й не розглядаємо цього докладно Загалом, те, що вам треба зробити, це створити новий «підклас» (Компонент, що успадковує від) обєкта PageControl і відстежувати повідомлення про натискання кнопки миші (WM_LBUTTONDOWN) на закладці сторінок Коли ви перехопіть це повідомлення, визначте, на закладці який саме сторінки був проведений клацання Якщо сторінка не повинна бути доступна, не давайте керуючому елементу сторінкового діалогу отримати повідомлення про натискання кнопки миші

Для обробки випадку переходу на сторінку, а не з неї, ми опрацюємо інша подія PageControl У цьому випадку ми додамо обробник для повідомлення OnPageChange Давайте розглянемо черговий приклад, в якому це здійснюється для заборони переходу на сторінку

Перейдіть на другу сторінку діалогу, або змінивши властивість ActivePage обєкта PageControl в Object Inspector, або ж просто клацнувши на закладці другої сторінки на формі у вікні редактора форм На відображену чисту сторінку покладіть дві кнопки Першу озаглавьте «Сторінка 3 дозволена», а другий – «Сторінка 3 заборонена» Якщо користувач натисне на першу кнопку, йому буде дозволено перейти на третю сторінку Натискання на другу кнопку заборонить користувачеві перехід на третю сторінку Все просто і ясно На рис 413 показана оновлена ​​друга сторінка нашого PageControl

Рис 413 Друга сторінка сторінкового діалогу

Додайте обробник для першої кнопки (Сторінка 3 дозволена), а в нього додайте наступний код:

void __fastcall TPageDlg::Button1Click(TObject *Sender)

{

FbAllowPageThree = true

}

Так само додайте обробник і для другої кнопки з наступним кодом:

void __fastcall TPageDlg::Button2Click(TObject *Sender)

{

FbAllowPageThree = false

}

Тепер змініть конструктор форми, додавши в нього ініціалізацію логічної змінної так, щоб спочатку третя сторінка була дозволена

__fastcall TPagesDlg::TPagesDlg(TComponent*  AOwner)

:TForm(AOwner)

{

FnCurTab = 0 FbAllowPageThree = true

}

Джерело: Теллес М – Borland C + + Builder Бібліотека програміста – 1998

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*