Çàî÷íîå äèñòàíöèîííîå îáðàçîâàíèå ñ ïîëó÷åíèåì ãîñóäàðñòâåííîãî äèïëîìà ÷åðåç Internet










Ïîëó÷èòü èíôîðìàöèþ î ïîñòóïëåíèè
 
Ãëàâíàÿ Íîâîñòè Êàðòà ñàéòà Ôîòîàëüáîì Ãîñòåâàÿ êíèãà Êîíòàêòû

 

Ñîáûòèÿ êëàâèàòóðû äëÿ âèçóàëüíûõ êîìïîíåíòîâ

Åùå îäíèì âàæíûì ñðåäñòâîì, ñ ïîìîùüþ êîòîðîãî ïîëüçîâàòåëü ìîæåò óïðàâëÿòü ðàáîòîé ïðèëîæåíèÿ, ÿâëÿåòñÿ êëàâèàòóðà. Ïðè âñåé êàæóùåéñÿ ñëîæíîñòè ýòîãî òåõíè÷åñêîãî óñòðîéñòâà ñóùåñòâóþò âñåãî òðè ñîáûòèÿ, ñâÿçàííûõ ñ êëàâèàòóðîé:

- OnKeyDown – íàæàòèå ëþáîé êëàâèøè;
- OnKeyPress – íàæàòèå êëàâèø ASCII-ñèìâîëîâ;
- OnKeyUp – îòïóñêàíèå ëþáîé êëàâèøè.

Òîëüêî àêòèâíûé êîìïîíåíò, êîòîðûé èìååò ôîêóñ ââîäà, ìîæåò îáðàáàòûâàòü ñîáûòèÿ êëàâèàòóðû (èç ýòîãî ñëåäóåò, ÷òî ýòî ìîãóò áûòü òîëüêî ïîòîìêè êëàññà TWinControl). Åñëè àêòèâíûõ ýëåìåíòîâ íåò, òî ñîáûòèÿ îò êëàâèàòóðû áóäåò ïîëó÷àòü ôîðìà. Êðîìå òîãî, ìîæíî íàñòðîèòü ðàáîòó ïðèëîæåíèÿ òàê, ÷òîáû ñîáûòèÿ êëàâèàòóðû âñåãäà ïåðåõâàòûâàëà ôîðìà, à íå àêòèâíûé ýëåìåíò óïðàâëåíèÿ. Äëÿ ýòîãî äîñòàòî÷íî óñòàíîâèòü ñâîéñòâî KeyPreview ôîðìû â true.

Ïðè âîçíèêíîâåíèè ñîáûòèé îò êëàâèàòóðû äëÿ àêòèâíîãî êîìïîíåíòà âûçûâàþòñÿ ñîîòâåòñòâóþùèå ïðîöåäóðû èõ îáðàáîòêè. Ñîáûòèå OnKeyPress îáû÷íî èñïîëüçóåòñÿ â òîì ñëó÷àå, êîãäà íåîáõîäèìà ðåàêöèÿ íà íàæàòèå îäíîé íåôóíêöèîíàëüíîé (ñèìâîëüíîé) êëàâèøè íà êëàâèàòóðå. Íàïðèìåð, îíî íå âîçíèêàåò ïðè íàæàòèè òàêèõ êëàâèø, êàê Shift èëè F4. Ñîáûòèÿ OnKeyDown è OnKeyUp ÷àùå âñåãî èñïîëüçóþòñÿ äëÿ îïðåäåëåíèÿ íàæàòèÿ êîìáèíàöèè êëàâèø, à òàêæå íàæàòèÿ ðàçëè÷íûõ ôóíêöèîíàëüíûõ êëàâèø.

Ðàññìîòðèì îáðàáîòêó ñîáûòèé êëàâèàòóðû íà ïðèìåðå.

Äîïóñòèì, íåîáõîäèìî ñîçäàòü ïðèëîæåíèå ñ ôîðìîé, â çàãîëîâêå êîòîðîé ìîæíî áûëî áû âèäåòü, êàêàÿ ñèìâîëüíàÿ êëàâèøà áûëà íàæàòà, à íà ìåòêå Label, ðàçìåùåííîé íà ôîðìå, îòîáðàæàëñÿ áû êîä îòïóùåííîé êëàâèøè. Âûõîä èç ïðèëîæåíèÿ äîëæåí îñóùåñòâëÿòüñÿ ïî íàæàòèþ êëàâèøè F10. Äëÿ ðåøåíèÿ ïîñòàâëåííîé çàäà÷è, ïðåæäå âñåãî, íóæíî óñòàíîâèòü ñâîéñòâî ôîðìû KeyPreview = true. Òàêèì îáðàçîì, âñå ñîáûòèÿ îò êëàâèàòóðû áó-äåò ïîëó÷àòü ôîðìà. À ÷òîáû ôîðìà îáðàáàòûâàëà ñîáûòèÿ, êàê óêàçàíî âûøå, òðåáóþòñÿ ñëåäóþùèå îáðàáîò÷èêè ñîáûòèé:

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);

begin

Form1.Caption:= 'Íàæàòà êëàâèøà: ' + Key;

end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

begin

if Key = VK_F10 then Form1.Close;

end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);

begin

Label1.Caption:= 'Êîä íàæàòîé êëàâèøè: ' + IntToStr(Key);

end;

 ïðåäñòàâëåííûõ îáðàáîò÷èêàõ ñîáûòèé ïàðàìåòð Key ïîçâîëÿåò óçíàòü, êàêàÿ êëàâèøà áûëà íàæàòà, à çíà÷åíèå ïàðàìåòðà Shift äàåò âîçìîæíîñòü îïðåäåëèòü, áûëè ëè íàæàòû êëàâèøè Alt, Ctrl, Shift, à òàêæå êíîïêè ìûøè.

 îáðàáîò÷èêå ñîáûòèÿ OnKeyDown äëÿ ïðîâåðêè íàæàòèÿ êëàâèøè F10 èñïîëüçóåòñÿ ñòàíäàðòíàÿ êîíñòàíòà VK_F10, êîòîðàÿ ñîäåðæèò êîä äàííîé êëàâèøè.  Delphi ñóùåñòâóåò ïîëíûé íàáîð òàêèõ êîíñòàíò äëÿ êàæäîé êëàâèøè. Èõ ïîëíûé ïåðå÷åíü ìîæíî íàéòè â ñïðàâî÷íîé ëèòåðàòóðå.



 
     
   
 


Ïðèãëàøàåì ïðèíÿòü ó÷àñòèå â êðóãëîì ñòîëå!
ïîäðîáíåå   >>>
 

Èíñòèòóò Ìåíåäæìåíòà, Ýêîíîìèêè è Èííîâàöèé íà÷èíàåò íàáîð íà êóðñû ïîâûøåíèÿ êâàëèôèêàöèè!
ïîäðîáíåå   >>>
 

Óâàæåìûå ñòóäåíòû ÀÍÎ ÂÏÎ ÈÌÝèÈ!
ïîäðîáíåå   >>>
 

Íà÷èíàåòñÿ íàáîð íà êóðñû ïîâûøåíèÿ êâàëèôèêàöèè!
ïîäðîáíåå   >>>
 

Ïðèãëàøàåì ïðèíÿòü ó÷àñòèå â êîíôåðåíöèÿõ!
ïîäðîáíåå   >>>
 


âñå íîâîñòè...

 


Ðàññûëêè Subscribe.Ru
Ñîâðåìåííîå îáðàçîâàíèå
Ïîäïèñàòüñÿ ïèñüìîì