Главная » 2013 » Январь » 28 » Borland C++ Builder 6 для начинающих (Статья одиннадцатая)
16:15
Borland C++ Builder 6 для начинающих (Статья одиннадцатая)

Для компонента формы событие OnClick наступает, если пользователь щелкнул на пустом месте формы или на недоступном компоненте.
Создайте новое приложение и поместите на форму одну кнопку Button1. Откройте для нее в инспекторе объектов закладку событий Events и щелкните дважды левой кнопкой мыши на поле правее события OnClick. Откроется инспектор кодов и появится заготовка программного кода для функции обработки события OnClick, создаваемая автоматически средой разработки Borland C++ Builder 6. Она имеет вид:
void __fastcall TForm1:: Button1Click(T0bject *Sender)
{
}

Параметр Sender данного события содержит объект, в котором произошло событие, и может быть использован для извлечения информации о том, какой компонент сформировал событие OnClick.
Впишите между фигурными скобками функции обработки события OnClick для кнопки Button1 следующую программную строку:

ShowMessage("Событие OnClick произошло в "+((TControl *)Sender)->Name);


Аналогичные действия выполните для формы Form1, после чего запустите приложение. В результате при возникновении события OnClick на кнопке или форме будет формироваться окно сообщения с информацией о компоненте, в котором произошло данное событие. Проверьте реакцию программы на щелчок левой кнопкой мыши по кнопке, нажатие клавиш пробел и Enter и другие действия пользователя программы.

 

Другое событие — OnDblClick наступает, если пользователь осуществил двойной щелчок, т. е. дважды нажал и отпустил основную кнопку мыши с коротким интервалом, когда указатель мыши находился на компоненте. К одному и тому же компоненту нельзя написать обработчики событий OnClick и OnDblClick, поскольку первый из обработчиков всегда перехватит щелчок мыши. Параметр Sender для событияOnDblClick может быть использован аналогично примеру, описанному выше.


Самым часто используемым и уже знакомым нам событием является OnClick. Обычно событие OnClickнаступает, если пользователь нажал и отпустил левую кнопку мыши в тот момент, когда указатель мыши находился на компоненте. Кроме того, это событие происходит в следующих случаях:
• пользователь нажал клавишу пробела, когда кнопка или индикатор были в фокусе;
• пользователь нажал клавишу Enter, а активная форма имеет кнопку по умолчанию, указанную свойствомDefault;
• пользователь нажал клавишу Esc, а активная форма имеет кнопку прерывания, указанную свойством Cancel;
• пользователь нажал клавиши быстрого доступа к кнопке или индикатору;
• пользователь выбрал элемент в сетке, дереве, списке или выпадающем списке, нажав клавишу со стрелкой;
• приложение установило в True свойство Checked кнопки RadioButton;
• приложение изменило свойство Checked индикатора CheckBox;
• вызван метод Click элемента меню.
Как видим, данное событие может происходить в большинстве случаев, недаром оно является одним из самых распространенных.

Довольно часто в программах необходимо определять, какую клавишу на клавиатуре нажал пользователь, для того, чтобы назначить выполнение определенных действий в соответствии с нажатой клавишей. Для этих целей хорошо подходят следующие события, описываемые ниже.
Событие OnKeyDown наступает, если компонент находится в фокусе при нажатии пользователем любой клавиши, включая функциональные и специальные, такие как Shift, Alt и Ctrl. В обработчик события передаются кроме обычного параметра Sender, указывающего на компонент, в котором произошло событие, такие параметры, как Key и Shift. Параметр Key позволяет определить код нажатой клавиши клавиатуры. Для большинства клавиш имеются символьные имена API Windows. Коды клавиш и соответствующих им символьных имен приведены в табл. 2.

Табл.2.1              На основном поле клавиатуры

КлавишаДесят. кодHEX кодСимвольное имя
F11120x70VK_F1
F21130x71VK_F2
F31140x72VK_F3
F41150x73VK_F4
F51160x74VK_F5
F61170x75VK_F6
F71180x76VK_F7
F81190x77VK_F8
F91200x78VK_F9
F101210x79VK_F10
пробел320x20VK_SPACE
Backspace80x8VK_BACK
Tab90x9VK_TAB
Enter130x0DVK_RETURN
Shift160x10VK_SHIFT
Ctrl170x11VK_CONTROL
Alt180x12VK_MENU
CapsLock200x14VK_CAPITAL
Esc270x1BVK_E5CAPE
Insert450x2DVK_INSERT
PageUp330x21VK_PRIOR
PageDown340x22VK_NEXT
End350x23VK_END
Home360x24VK_HOME
Стрелка ←370x25VK_LEFT
Стрелка ↑380x26VK_UP
Стрелка →390x27VK_RIGHT
Стрелка ↓400x28VK_DOWN
Delete460x2EVK_DELETE
PrintScreen440x2CVK_SNAPSHOT
ScrollLock1450x91VK_SCROLL
0 )480x30     ---        
1 !490x31     ---    
2 @500x32     ---       
3 #510x33     ---       
4 $520x34     ---    
5 %530x35     ---    
6 ^540x36     ---    
7 &550x37     ---    
8 *560x38     ---    
9 (570x39     ---    
` ~1920xС0     ---    
- _1890xBD     ---    
= +1870xBB     ---    
[ {2190xDB     ---    
] }2210xDD     ---    
; :1860xBA     ---    
' "2220xDE     ---    
\ |2200xDC     ---    
, <1880xBC     ---    
. >1900xBE     ---    
/ ?1910xBF     ---    
a A650x41     ---    
b B660x42     ---    
с С670x43     ---    
d D680x44     ---    
e E690x45     ---    
f F700x46     ---    
g G710x47     ---    
h H720x48     ---    
i I730x49     ---    
j J740x4A     ---    
k K750x4B     ---    
l L760x4C     ---    
m M770x4D     ---    
n N780x4E     ---    
o O790x4F     ---    
p P800x50     ---    
q Q810x51     ---    
r R820x52     ---    
s S830x53     ---    
t T840x54     ---    
u U850x55     ---    
v V860x56     ---    
w W870x57     ---    
x X880x58     ---    
y Y890x59     ---    
z Z900x5A     ---    
Win (Л)910x5BVK_LWIN
Win (Пр)920x5CVK_RWIN

 

Табл.2.2      На дополнительном поле клавиатуры 
при выключенном индикаторе NumLock

КлавишаДесят. кодHEX кодСимвольное имя
0960x60VK_NUMPAD0
1970x61VK_NUMPAD1
2980x62VK_NUMPAD2
3990x63VK_NUMPAD3
41000x64VK_NUMPAD4
51010x65VK_NUMPAD5
61020x66VK_NUMPAD6
71030x67VK_NUMPAD7
81040x68VK_NUMPAD8
91050x69VK_NUMPAD9
*1060x6AVK_MULTYPLY
+1070x6BVK_ADD
-1080x6CVK_SUBTRACT
.1090x6DVK_DECIMAL
/1100x6EVK_DIVIDE
n N780x4E ---
o O790x4F ---

 

Параметр Shift является множеством, которое может быть пустым или включать символьные значения, описываемые в табл. 3.

Таблица 3
Символьное значение
Назначение
ssShiftНажата или отпущена клавиша Shift
ssAltНажата или отпущена клавиша Alt
ssCtrlНажата или отпущена клавиша Ctrl

Другое событие — OnKeyPress наступает, если компонент находится в фокусе при нажатии пользователем клавиши символа. Параметр Key в обработчике этого события имеет тип char и соответствует символу нажатой клавиши. Функциональные клавиши и специальные клавиши типа Shift, Alt и Ctrl не вызывают этого события. Нажатие таких комбинаций клавиш как, например, Shift+A, генерирует только одно событиеOnKeyPress, при котором параметр Key равен "А". Поскольку параметр Key передается в обработчик события как переменная, его можно изменять, передавая для дальнейшей обработки другой символ. В некоторых программах этот прием полезно использовать.
Для того, чтобы распознавать комбинации клавиш или клавиши, не соответствующие символам, необходимо использовать обработчики событий OnKeyDown и OnKeyUp.Продолжение следует...

Категория: Новини | Просмотров: 1193 | Добавил: Andre99 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]