Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Послідовність фокусування елементів

При проектуванні програми важливо правильно визначити послідовність табуляції віконних компонентів. Під цим розуміється послідовність, в якій перемикається фокус з компоненту на компонент, коли користувач натискає клавішу табуляції Tab.

Це важливо, оскільки у ряді випадків користувачу зручніше працювати не з мишею, а з клавіатурою.

Властивість форми ActiveControl, встановлена в процесі проектування, визначає, який з розміщених на формі компонентів буде у фокусі при активізації форми. В процесі виконання ця властивість змінюється і показує той компонент, який в даний момент знаходиться у фокусі.

Послідовність табуляції задається властивостями TabOrder компонентів. Первинна послідовність табуляції визначається просто тією послідовністю, в якій розміщувалися елементи на формі. Першому елементу привласнюється значення TabOrder = 0, другому 1 і т.д. Якщо на формі є панелі, фрейми і інші контейнери, що включають інші компоненти, то послідовність табуляції складається незалежно для кожного компоненту-контейнера. Наприклад, для форми буде послідовність, що включає деяку панель як один компонент. А вже усередині цієї панелі буде своя послідовність табуляції, що визначає послідовність отримання фокусу її дочірніми віконними компонентами.

Кожен елемент, що управляє, має унікальний номер TabOrder усередині свого батьківського компоненту. Тому зміна значення TabOrder якогось елементу на значення, що вже існує у іншого елементу, приведе до того, що значення TabOrder всіх подальших елементів автоматично зміняться, щоб не допустити дублювання. Якщо задати елементу значення TabOrder, більше, ніж число елементів в батьківському компоненті, він просто стане останнім в послідовності табуляції.

Через те, що при зміні TabOrder одного компоненту можуть мінятися TabOrder інших компонентів, встановлювати ці властивості по черзі в окремих компонентах важко. Тому в середовищі проектування C++Builder є спеціальна команда Edit/TabOrder, що дозволяє в режимі діалогу задати послідовність табуляції всіх елементів.

Є і програмна можливість перемикання фокусу — це метод SetFocus. Наприклад, якщо ви хочете перемкнути в якийсь момент фокус на поле Edit2, ви можете зробити це оператором:

Edit2->SetFocus;

Іноді зручніше користувачу, що закінчив введення в одному полі введення, натиснути клавішу Enter і автоматично перейти до іншого елемента. Це можна зробити, обробляючи подію натиснення клавіші OnKeyDown. Наприклад, якщо після введення даних у Edit1 користувачу треба перейти у Edit2, то обробник події OnKeyDown для Edit1 можна зробити наступним:

void_fastcallTForm1::Edit1KeyDown(TObject *Sender,

WORD &Key,TShiftState Shift)

{

if (Key == VK__RETURN)

Edit2->SetFocus);

}

 

Контрольні питання:

 

1. Які вимоги пред’являються до графічного інтерфейсу користувача?

2. Які стилі вікон програм Вам відомі? Поясніть їх особливості.

3. Чого потрібно дотримуватися при виборі кольорів і шрифтів програми?

4. Яким чином можна покращити компонування компонентів на формі?

5. Чим визначається послідовність фокусування елементів?

 

 

<== предыдущая лекция | следующая лекция ==>
Линейные дифференциальные уравнения второго порядка с постоянными коэффициентами | Ход работы
Поделиться с друзьями:


Дата добавления: 2014-01-15; Просмотров: 517; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.